- UID
- 872238
|
3.2 Android网络通信
Android完全支持JDK本身的TCP、UDP网络通信的API,可以使用SeverSocket、Socket来建立基于TCP/IP协议的网络通信,也可以使用DatagramSocket、Datagrampacket、MulticastSocket来建立UDP协议的网络通信。本设计采用TCP/IP协议来实现网络通信,通信流程如图6所示。
本设计只实现客户端编程,服务端用SocketTool TCP/IP通信调试工具V2.2在PC端建立。使用Socket来实现客户端的步骤如下:
(1)通过IP地址和端口实例化Socket,请求连接服务器。
(2)获取Socket上的流以进行读写。
(3)把流包装进BufferedReader的实例。
(4)对Socket进行读写
(5)关闭打歼的流程。
关键代码如下:
4 网关的管理功能及实现
网关在应用层实现对WSN的管理,主要包括安全认证、时间统一、监测数据采集、节点定位和远程传输功能,从而实现对现场的实时临控和管理。功能设计如下:
(1)安全认证:协调节点在安全认汪中,将申请节点的ID发给网关,网关查找配置表中的授权入网节;如果该节点ID在表中,则通知协调节点允许入网,否则不允许入网。同时,网关可以显示、添加或修改节点配置表中的授权入网节点。
如图8-1所示,网关插入配置表信息,该实验为四个节点组成的ZigBee网络,节点编号分别为0080E102001BC94D、0080E102001BCE91、0080E102001BC204和0080E102001BCF51.ZigBee组成的无线传感器网络实现点对点通信,网关可以采集到节点数据信息,并用绿灯显示该网络实现的是1号节点和3号节点之间的点对点通信,红灯表明处于非工作状态。
(2)时间统一:在进行时间统一的过程中,首先通过NTP协议对网关校时,并以此时间为基准,把时间发给协调器节点,从而校准协调节点的时间和网内子节点的时间,实现网络中节点的时间统一。如图7(a)所示,网关的最下方显示了NTP协议实现的校时。
(3)监测数据采集:在进行节点定位的过程中,网关可以采集节点数据、提取节点号和RSSI值。如图7(h)所示,上方滚动串口显示了收到的来自ZigBee无线传感器网络的串口数据。
(4)节点定位:ZigBee网络使用RSSI测距法实现节点定位,网关采集节点RSSI值解算出了节点大概位置。
(5)存储监测数据:接收节点监测数据并定期以文件形式保存到本地的SD卡中。如图8-2截取的存储至SD卡的数据传输数据,命名为Bluetooth.txt. |
|