// Send the periodic message SampleApp_SendPeriodicMessage(); // Setup to send message again in normal period (+ a little jitter) osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, (SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT + (osal_rand() & 0x00FF)) ); // return unprocessed events return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT); } // Discard unknown events return 0; } SampleApp_ProcessEvent() 函数为应用层事件处理函数,当接收到网络数据(即发生
AF_INCOMING_MSG_CMD事件)时,会调用SampleApp_MessageMSGCB( MSGpkt );处理函数,现在来分析这个函数
void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) { uint16 flashTime; unsigned char *buf; HalLedBlink( HAL_LED_1, 4, 50, 270 ); switch ( pkt->clusterId ) { case SAMPLEAPP_PERIODIC_CLUSTERID: buf = pkt->cmd.Data; HalUARTWrite(MT_UART_DEFAULT_PORT,\ HalUARTWrite(MT_UART_DEFAULT_PORT, buf, 7); HalUARTWrite(MT_UART_DEFAULT_PORT,\ Humi:\ HalUARTWrite(MT_UART_DEFAULT_PORT, buf+7, 7); break; case SAMPLEAPP_FLASH_CLUSTERID: flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] ); HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) ); break; } }
这个函数是协调器要完成的工作,对终端温湿度采集节点发过来的数据进行格式转换后发给串口终
端。
4.实验步骤
? 使用配套 USB 线连接 PC 机和 UP-CUP IOT-6410-II 型设备,设备上电,确保打开 ZIEBEE 模块
开关供电。
? 使用CCD_SETKEY按键选择ZIGBEE仿真器要连接的ZIGBEE设备模块(根据LED指示灯判断)。
TEL: 010-82114870 82114887 82114890 82114944 FAX:总机转828
6
http://www.up-tech.com
博创科技 UP-TECH
? 将系统配套串口线一端连接PC机,一端连接到平台上靠近USB串口(RS232-2)上。 ? 打开物联网无线传感网络部分\\exp\\zstack\\基于ZStack的无线数据(温湿度)传输实验
\\Projects\\zstack\\Samples\\SampleApp\\CC2530DB里的工程,编译下载协调器和终端节点工程。 ??网络组建成功后,通过CCD_SETKEY按键将PC机串口线连接到ZIGBEE协调器模块对应的串口上,打
开串口终端,设置波特率为115200、8位、无奇偶校验、无硬件流模式,即可在超级终端上看到终端节点发送过来的温湿度数据。
实验截图
图5.5.6 串口终端显示
??备注:如果多套实验设备同时在运行此工程实验(局域网中存在多个相同工程编译出来运行的协调器
模块),为避免相同工程的ZIGBEE网络间的组网冲突,需要用户手动更改本工程下的Tools目录下的f8wConfig.cfg文件,将其中默认的ZDAPP_CONFIG_PAN_ID=0xFFFF宏 更改为唯一的特定值(0-0x3FFF之间),重新编译下载相应工程,运行。这样可以避免各个ZIGBEE网络(协调器)的冲突。
TEL: 010-82114870 82114887 82114890 82114944 FAX:总机转828
7
http://www.up-tech.com
博创科技 UP-TECH