接下来,传感器网络收集数据的处理方式由网关客户端部分决定。有些客户端准备了通用的传感器数据显示客户端软件,但基本来说,客户端软件需要按照应用专门准备,或是在转换数据格式后嵌入现有系统。
另外,使用自主传感器、在传感器节点内加入应用的固有处理时需要开发传感器节点软件。这时需要用到传感器节点的软件开发环境。能够在何种语言环境下开发?OS是什么?利用无线网络协议的API情况如何?这些对于提高开发效率非常重要。
把传感器节点与现有设备连接,像无线调制解调器那样使用时无需开发传感器节点软件,需要的是通过某一接口与作为无线调制解调器工作的传感器节点进行数据交换。对于RS232C等1对1通信形态的无线化,在直接无线发送 UART(UniversalAsynchronousReceiverTransmitter)来源数据的“穿透”模式下也可以使用,如果是使用 RS485的主从式通信这种1对N通信形态,那么就必须把无线网络内的发送对象告知无线调制解调器。
问:系统开发的重点是什么?另外,软件开发人员在编写源代码时需要注意哪些地方?
宫本:对于内存容量与处理速度等硬件资源有限的传感器节点,编程需要注意数据存储位置、读取写入时机的整体平衡。
以通过无线通信接收数据并且中继转发至其他节点为例,由于接收缓存有限,因此在写满前必须进行发送处理。但另一方面,从自身的传感器读取数据的处理也在进行,因此,如果二者不能均衡处理,数据就会丢失,降低整个网络的流量。
编程水平当然需要注意,在最初设计系统时,估算可行的数据传输率和节点数也非常重要。
而且,为了减轻传感器节点的负荷,把复杂处理留给服务器的方式同样有效。但是,作为系统架构,如果不能确定哪种格式的数据由哪层处理的策略,扩展性就会出现问题。