//1、给各个终端分配一个簇ID【用来发送】(以区分是哪个设备发来的消息)在Samp
// App.h中定义并修改簇的最大值。
//2、给每个终端写一个点播函数(目的地址为0x0000【即:协调器】),发送函数的
// 簇ID号改为自己的簇ID号,任何你可以在数据发送缓冲区写入你想要的数据(比
// 如:温度采样值,红外状态等。)并写入欲发送的数据长度。写完函数后在Samp
// App.c(或其他地方)声明函数。
//3、{”该步骤实现双向通信中的 【终端->协调器(终端数据的发送)】“}。
// 在函数【uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )】
// 的条件语句“if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT ){···}”中
// 添加周期性欲发送的数据(即:各个终端的点播函数)【注:最好给每个终端发
// 送的数据分配不同的时间,这样产生竞争的现象会少。】
//4、{”该步骤实现双向通信中的 【终端->协调器(协调器数据的接收)】“}。
// 在函数【void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )】的sw
// itch()语句”switch ( pkt->clusterId ){case xxID:...;break;}“中写入对应
// 的终端号的发送簇ID,然后对该数据做相应的处理和显示等。
//5、给各个终端分配一个簇ID【用来接收】(以区分是哪个设备来接收发来的消息)
// 在SampApp.h中定义并修改簇的最大值。【注:每个终端需注释掉别的终端接收的
// ID号】。
//6、{”该步骤实现双向通信中的 【协调器->终端(协调器数据的发送)】“}。
// 在第4步的协调器接收完数据后并做完相应的处理或显示后。添加以下语句:
// #if defined(ZDO_COORDINATOR)
// SampleApp_SendPeriodicMessage_SendTo_XX_EndPoint();
// #endif
// 即:以协调器的广播的方式发送给所有的终端,在各个终端烧程序的时候可以注释
// 掉不是发送给自己的簇ID【即:实现了协调器点播的功能】。
//7、{”该步骤实现双向通信中的 【协调器->终端(终端数据的接收)】“}。
// 在函数【void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )】的sw
// itch()语句”switch ( pkt->clusterId ){case xxID:...;break;}“中写入对应
// 的终端号的接收簇ID,然后对该数据做相应的处理和显示(或者该命令来控制终
// 端的某些设备)等。
//8、【特别注意】:在协调器下载程序时如果是点播,并且目的地址是0X0000(即:协
// 调器自己)的话,要在在函数【uint16 SampleApp_ProcessEvent( uint8 task_id
// , uint16 events )】的条件语句“if ( events & SAMPLEAPP_SEND_PERIODIC_MSG
// _EVT ){···}”中注释掉所有的点播函数!【载程序时各个终端载自己的代码就
// OK】。
// App.h中定义并修改簇的最大值。
//2、给每个终端写一个点播函数(目的地址为0x0000【即:协调器】),发送函数的
// 簇ID号改为自己的簇ID号,任何你可以在数据发送缓冲区写入你想要的数据(比
// 如:温度采样值,红外状态等。)并写入欲发送的数据长度。写完函数后在Samp
// App.c(或其他地方)声明函数。
//3、{”该步骤实现双向通信中的 【终端->协调器(终端数据的发送)】“}。
// 在函数【uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )】
// 的条件语句“if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT ){···}”中
// 添加周期性欲发送的数据(即:各个终端的点播函数)【注:最好给每个终端发
// 送的数据分配不同的时间,这样产生竞争的现象会少。】
//4、{”该步骤实现双向通信中的 【终端->协调器(协调器数据的接收)】“}。
// 在函数【void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )】的sw
// itch()语句”switch ( pkt->clusterId ){case xxID:...;break;}“中写入对应
// 的终端号的发送簇ID,然后对该数据做相应的处理和显示等。
//5、给各个终端分配一个簇ID【用来接收】(以区分是哪个设备来接收发来的消息)
// 在SampApp.h中定义并修改簇的最大值。【注:每个终端需注释掉别的终端接收的
// ID号】。
//6、{”该步骤实现双向通信中的 【协调器->终端(协调器数据的发送)】“}。
// 在第4步的协调器接收完数据后并做完相应的处理或显示后。添加以下语句:
// #if defined(ZDO_COORDINATOR)
// SampleApp_SendPeriodicMessage_SendTo_XX_EndPoint();
// #endif
// 即:以协调器的广播的方式发送给所有的终端,在各个终端烧程序的时候可以注释
// 掉不是发送给自己的簇ID【即:实现了协调器点播的功能】。
//7、{”该步骤实现双向通信中的 【协调器->终端(终端数据的接收)】“}。
// 在函数【void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )】的sw
// itch()语句”switch ( pkt->clusterId ){case xxID:...;break;}“中写入对应
// 的终端号的接收簇ID,然后对该数据做相应的处理和显示(或者该命令来控制终
// 端的某些设备)等。
//8、【特别注意】:在协调器下载程序时如果是点播,并且目的地址是0X0000(即:协
// 调器自己)的话,要在在函数【uint16 SampleApp_ProcessEvent( uint8 task_id
// , uint16 events )】的条件语句“if ( events & SAMPLEAPP_SEND_PERIODIC_MSG
// _EVT ){···}”中注释掉所有的点播函数!【载程序时各个终端载自己的代码就
// OK】。