ZigBee和Android的智能移动监控系统设计
从应用层来看,信息采集与传输子系统中存在信息采集节点和网关节点两种设备。信息采集系统与传输子系统的Profile ID为INFO_GATH ER_PRF。信息采集结点和网关节点的端点号均被配置成INFO_GATHER_EPT。
信息采集与传输子系统的两种数据类型如图7所示。信息采集节点和网关节点之间存在两种数据的交互:环境信息数据和用户命令数据。信息采集结点向网关节点发送环境信息数据时采用的簇ID为ENV_INFO_CLU,网关节点向信息采集节点传达用户命令时使用的簇ID为USR_CMD_CLU。
Profile ID号、端点号和簇ID都是ZigBee协议定义的重要的配置信息,请参见ZigBee协议。
环境信息数据和用户命令数据最终都将填充到类型为aflncomingMSGPacket_t的结构体中,其定义如下:
该结构中clusterId填充的就是簇ID,endPoint填充的就是端点号,Profile ID隐藏在变量srcAddr中。变量cmd填充的就是与应用相关的数据,如环境信息编码和用户命令编码。
2.2 信息处理与控制子系统
信息处理与控制子系统是在Android智能移动平台上研发的。Android智能平台体系从上到下由应用程序、应用程序框架、外部库、Andr oid运行时库、硬件抽象层HAL(Hardware Abstraction Laycr)和Linux内核组成。
Android智能移动平台的研发需要借助Eclipse、NDK和JNI等工具和方法。信息处理与控制子系统的MVC模式如图8所示。本文是按MVC模式研发信息处理与控制子系统的。
Android应用程序的设计必须要遵循单线程模型。当Android应用程序启动时,Android系统会同时启动一个对应的主线程即UI线程,用于处理与用户界面UI(User Interface)相关的事件。UI线程不是线程安全的。
此设计需要将环境信息实时地显示在Android应用程序上,同时需要及时地将用户操作转换成用户命令发送至信息采集与传输子系统。冈此,为了避免阻塞UI线程,设计了一个守候线程并采用了基于zbHandler的消息传递机制。UI线程和守候线程的关系如图9所示。
守候线程是借助于本地方法获取Linux底层驱动环境信息的。信息处理与控制子系统中的本地方法被封装在一个名为ZigBeeJni的类中,其定义如下:
结语
本文研究了基于ZigBee网络和Android智能移动平台的监控系统的设计。经过严格的测试,本系统能够完成对环境信息的实时监测,并能及时地响应用户发出的各种控制命令,系统的设计达到了预期的目标。
监控系统 设计 移动 智能 Android ZigBee 相关文章:
- 基于WiMAx的武警部队无线视频监控系统(05-11)
- 无线基站或变电站网络数字监控系统(03-20)
- 详解:无线监控系统在应用中的六大问题(02-18)
- 基于CDMA 1X的远程监控系统设计(05-07)
- 基于Zigbee技术的温室大棚监控系统(06-04)
- 深入无线视频监控系统 智能应用或呈爆发式增长(06-29)