ZigBee多机双向通信编程方法【星形网络】

//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】。
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值