你好,我们现在要做zigbee网络,就是由终端向协调器发送数据的程序不会,希望指教一二

你好,我们现在要做zigbee网络,就是由终端向协调器发送数据的程序不会,希望指教一二,第1张

我用的是ZStack-1.4.3-1.2.1,你好好首历看一下者判搜TI公司给出的例程在Projects\zstack\Samples

\SimpleApp下,主要看SimpleSensor.c和SimpleCollector.c,这里讲了将温度值相互传送的过程

。注意函数zb_SendDataRequest( 0xFFFE,SENSOR_REPORT_CMD_ID, 2, pData, 0,

AF_ACK_REQUEST, 0 )(在SimpleSensor.c中)其中pData是一个数冲旁组,你可以将字符串放入其中

,比如可以

定义 pData[6]="zigbee"那么在SimpleCollector.c中的接收数据函数void

zb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8 *pData )接

收你要的数据

pData。比如:

void zb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8 *pData

)

{

if(pData[0]=='z')

{

HalLedSet( HAL_LED_1, HAL_LED_MODE_ON )//点亮LED1

}

}

学习zigbee关键在于多看官方给出的例程,基本的功能和用法都有

代码不用自己写,直接使用zigbee协议栈的例程就可以,如果你想颂兆清修改局域网络,防止和别猜羡的zigbee组网冲突,可以修改协调器的PANID,对应的终端节点和路由器会在这个PANID局域野前网中组网,可以防止冲突。

根据所使用的栈协议不同而不同,理论上寻址范围是65535,但实际上数量多了之后会产生竞争,导致数据丢失等。你悉芹的判蔽这种方式是典型的星形网络,如掘陆州果仅仅是协调器发命令对终端轮询,那么基本没有限制,1000+也没问题。但如果存在终端同时向协调器发命令的情况,那么50台就可能出错了。因为你没说具体应用环境,那么对你“管理”这个概念我的回答是1000+


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12453881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存