完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
各位ti的大侠、各位zigbee高手,我现在在使用Z-Stack Home 1.2.2a.44539协议栈+自己的应用,但是我发现一个非常棘手的问题:
步骤:1、烧录了一个coordinator、一个router、一个enddevice(休眠模式1秒钟询问一次),router(shortADD为R1)和enddevice(shortADD为E1)的父节点都是coordinator。通过串口可以控制route和enddevice,收发正常; 2、将coordinator断电,enddevice会自动rejoin到router上,enddevice的shortADD变为E2,等几分钟后再把coordinator重新上电; 3、通过串口使用地址E2就无法控制enddevice了,使用R1控制路由还是正常的; 4、我使用sniffer查看数据包,发现在使用E2控制enddevice时,并没有发送NWK route request(0x01)这个路由发现包。但是如果使用原来的E1发送的话就会通过sniffer看到有: 我觉得很奇怪,想请问各位,这种情况正常吗?有解决的办法吗?控制enddevice |
|
相关推荐
12个回答
|
|
|
补充一下:在3中我可以通过enddevice按键给coordinator发送数据,接受的很正常
|
|
|
|
|
|
补充:
1、我的发送函数: uint8 option = AF_DISCV_ROUTE; dstAddr.addrMode = afAddr16Bit; dstAddr.endPoint = GENERICAPP_ENDPOINT; dstAddr.addr.shortAddr = destAdd; AF_DataRequest(&dstAddr, &GenericApp_epDesc, GENERICAPP_CLUSTERID, dataLength, buf, &GenericApp_TransID, option, AF_DEFAULT_RADIUS); 2、第3步中通过E2控制不了enddevice,通过sniffer也看不到数据包发出来! 3、我的配置: coordinator: ZTOOL_P1 HAL_LCD=FALSE NV_INIT NV_RESTORE router: ZTOOL_P1 HAL_LCD=FALSE NV_INIT NV_RESTORE enddevice: POWER_SAVING NWK_AUTO_POLL ZTOOL_P1 HAL_LCD=FALSE NV_INIT NV_RESTORE |
|
|
|
|
|
因为你加了NV_RESTORE,协调器在关联表中保存了节点信息,你断电后,节点跳到路由器上去,变成路由器的子节点,你 再次上电协调器,协调器还认为节点是他的子节点,你通过协调器发数据给这个节点,显然不可能成功,因为没有收到节点的data request 怎么可能发出去! |
|
|
|
|
|
|
|
|
|
|
站着幻想 发表于 2018-6-1 01:12 谢谢!确实是这样的! |
|
|
|
|
|
|
|
|
|
|
|
OK,忙就对了^ ^,我自己也先琢磨下,您有空再发过来下呗。 |
|
|
|
|
|
在最新的Z-Stack Home 1.2.2a协议栈,如果老的父设备收到子设备通过新的父设备转发出来的消息以后,老的父设备会把子设备信息删除,认为子设备已经换了父设备了。 你可以使用Device Announce,或者其他的数据告诉协调器。
|
|
|
|
|
wenlonghbo 发表于 2018-6-1 01:58 @VV 你好,Z-Stack Mesh 1.0.0 也有这样的功能吗?如果老的父设备收到子设备通过新的父设备转发出来的消息以后,老的父设备会把子设备信息删除,认为子设备已经换了父设备了。 |
|
|
|
|
wenlonghbo 发表于 2018-6-1 01:58 VV,我还是有个疑问,因为在coordinator掉电,enddevice重连上router的时候地址已经从E1变成E2了,这个时候coordinator重新上电,我用串口通过coordinator给E2发数据的时候coordinator应该不知道E2这个地址啊,根据TI文档的说明coordinator在查找了邻居表和关联表之后没找到这个地址的话就会找路由表,如果路由表也没找到的话就会发路由request的,但是为什么发布出来呢?因为我的理解是coordinator应该不知道E2的存在啊,所以coordinator应该发路由request的,实在是想不通啊! |
|
|
|
|
siyu922 发表于 2018-6-1 02:34 是啊,同问, |
|
|
|
|
siyu922 发表于 2018-6-1 02:34 |
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 10:05 , Processed in 1.111248 second(s), Total 97, Slave 80 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3666