用户控制程序运行于 android 系统应用层,采用 JAVA 开发。用户控制程序通过接收用户的输入 操作,生成相应的控制指令然后通过 3G、wifi 或以太网发送到智能网关系统。同时,用户控制程序 还接收智能网关程序发送过来的告警指令,并生成相应的告警信息,产生告警。
当打开程序时,从菜单中选择搜索,Zigbee 网络 TOP 图生成模块首先检 查网络连接,当网络正常连接到 Zigbee 智能网关后,首先发送获取协调器节点信息指令,获取到协调器信息:
byte[] ninfo = mProx.syncRequestSYS_APP_MSG( 2, new byte[] {
(byte) (0>>8), (byte) 0, //addr
0x00, 0x01, // cmd
0x00,0x01, 0x00,0x02, 0x00,0x05, 0x00,0x14, 0x00,0x15 });
当 syncRequestSYS_APP_MSG 返回后,如果 ninfo!=null,则 ninfo 中保存获取到的协调器信 息,否则获取协调器信息失败,zigbee 网络搜索结束。获取到协调器信息后通过以下代码
Message msg = Message.obtain();
msg.what = MSG_NEW_NETWORK;
msg.arg1 = 1;
HashMap<String, Node> h = new HashMap<String, Node>();
h.put("node", nd);
h.put("parent", null);
msg.obj = h;
mMainHandler.sendMessage(msg);
生成协调器节点并通知主线程在屏幕上显示出来。 当找到协调器后,程序通过查找与协调器直接连接的相关节点,然后递归搜索,最终搜索完整的网络并绘制出 Zigbee 网络的 TOP 结构。