完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-5-24 11:32 编辑
我在用zstack开发时碰到这样一个问题,想请教下这是什么原因? 测试环境::一个协调器,一个路由器,一个终端设备,zstack版本是ZStack-CC2530-2.5.1a。 组网的方式是:协调器下挂路由器,路由器下挂终端设备,测试每个设备的广播消息是否发送到其他两个设备。 测试发现协调器和路由器发广播消息终端设备都收不到广播消息,但是终端设备发广播消息路由器和协调器都能收到。如果改下组网方式,把路由器和终端设备都挂在协调器下,测试每个设备发广播消息另外两个设备都能收到广播消息。 请问这是为什么呢? 广播消息发送的代码如下: afAddrType_t dstAddr; char msgData[16]; dstAddr.addr.shortAddr = 0xffff; dstAddr.addrMode = (afAddrMode_t)AddrBroadcast; dstAddr.endPoint = DEVICE_ENDPOINT; AF_DataRequest(&dstAddr, &CModule_epDesc, CMODULE_CLUSTERID, (byte)osal_strlen(msgData) + 1, (byte *)&msgData, &CModule_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS); |
|
相关推荐
8个回答
|
|
|
|
|
|
W好,很高兴看到您的回复。 我的POLL_RATE设置如下。后来我把-DRFD_RCVC_ALWAYS_ON设置为TRUE,把-DRFD_RCVC_ALWAYS_ON设置为TRUE之后没有加POWER_SAVING NWK_AUTO_POLL这两个宏定义。终端设备可以收到广播消息,但是很奇怪的是协调器发一次广播消息,终端设备会收到两次或者三次相同的广播消息。请问是不是哪里设置的有问题呢? 还想请教下用sniffer packet抓包的时候cc2530 flash的程序被仿真器下载的抓包程序覆盖了,这样其他设备还能通过网络地址发数据到抓包设备吗? /* The number of milliseconds to wait between data request polls to the coordinator. */ -DPOLL_RATE=1000 /* This is used after receiving a data indication to poll immediately * for queued messages...in milliseconds. */ -DQUEUED_POLL_RATE=100 /* This is used after receiving a data confirmation to poll immediately * for response messages...in milliseconds */ -DRESPONSE_POLL_RATE=100 /* This is used as an alternate response poll rate only for rejoin request. * This rate is determined by the response time of the parent that the device * is trying to join. */ -DREJOIN_POLL_RATE=440 |
|
|
|
想变胖的瘦子 发表于 2018-5-22 03:11 因为当路由器收到广播数据以后,也会转发,所以在终端设备上,你会看到收到2条广播数据! |
|
|
|
W,非常感谢您的回复,还有一个现象想麻烦您帮我确认下是否正常? 网路中有一个协调器,一个路由器挂在协调器下,一个终端设备也是挂在协调器下。 先通过协调器发送广播消息,内容为123456,我通过串口打印的数据如下,终端设备收到了两条相同的从协调器发来的广播消息,但是从rssi值可以看出-25dbm是协调器的,-61dbm是路由器转发的,因为我是把协调器和终端设备放在一起的,路由器隔的比较远。这和您说的路由器会转发一致。 bcast by:0000 data:123456 rssi: -25dbm bcast by:0000 data:123456 rssi: -61dbm 再用路由器发送广播消息,内容为AAAAA,终端设备也收到了两条相同的从路由器发来的广播消息,如下所示,这也和您说的一致。 bcast by:9471 data:AAAAA rssi: -63dbm bcast by:9471 data:AAAAA rssi: -23dbm 现在我把路由器断电,再从协调器发广播消息123456,终端设备收到了3条一样的广播消息,如下所示,这是为什么呢?是不是有问题呢? bcast by:0000 data:123456 rssi: -23dbm bcast by:0000 data:123456 rssi: -23dbm bcast by:0000 data:123456 rssi: -24dbm 另外一个问题,如果我从终端设备发广播消息BBBBBB,协调器和路由器都只会收到一次广播消息,为什么终端设备发的广播路由器不会再转发给协调器呢? bcast by:C45C data:BBBBBB rssi: -23dbm |
|
|
|
想变胖的瘦子 发表于 2018-5-22 03:32 你把具体的抓包数据发下来可以吗? 最后一种情况,终端设备自己没有发送广播数据的能力,所以当终端设备需要发广播数据的时候,先把数据发给父设备,然后父设备在广播,所以协调器和路由各收到一条! |
|
|
|
wenlonghbo 发表于 2018-5-22 03:49 W您好, 我用packet sniffer抓包看了广播数据,附件是抓包保存文件。我看了应该是重复收到了广播消息。第一次收到了两次广播数据,按您的分析是路由器广播了一次,所以是两次。第二次收到3次相同数据时我已经把路由器关闭了。麻烦您帮忙确认下问题,谢谢。 我用packet sniffer的时候有两个疑惑: 1、我用的电脑的系统是win7,安装packet sniffer之后开始抓包,发现抓不到任何数据包。后来换到同事的xp系统上,测试能正常抓包。我是在ti官网上下载的packet sniffer安装包。版本是Setup_SmartRF_Packet_Sniffer_2.18.1,不知道你们碰到这种问题? 2、抓包的时候连接debugger之后会下载程序到cc2530,我之前的程序应该是被擦除了。那这样抓包除了抓广播数据包,单播的数据能抓到吗?此时抓包的设备在网络中的网络地址在哪里可以看到? |
|
|
|
想变胖的瘦子 发表于 2018-5-22 04:09 你好, 当把路由器关闭以后,协调器广播出来的数据包是同一个数据包,你可以看到抓包文件里面Broadcast seq.num=0xFD, 三条广播数据的这个值都是一样的。 在协议栈里面如果广播数据的广播半径不等于1,也就是说其他设备收到以后必定会转发的,那么在协议栈里面有一个zgBcastDeliveryTime,当一个设备发送出去广播数据以后,在这个时间内应该会收到其他设备转播过来的这条广播数据,如果这个时间timeout以后还没有其他设备转播数据,此时认为这条广播数据没有发送成功,需要重新发送 zgMaxBcastRetires,这个值就是重新发送的次数,协议栈里面默认值是2,uint8 zgMaxBcastRetires = MAX_BCAST_RETRIES; 所以你会看到发了三条广播数据。 1, 应该没这个问题,我在用的也是win7的,相关的配置,驱动都对的吧 2,广播和单播都是在软件上做的配置,硬件只要符合同样的调制解调的,在对应的频率下都会收进来的! |
|
|
|
wenlonghbo 发表于 2018-5-22 04:28 明白了,非常感谢您的帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
334 浏览 1 评论
528 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
773 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
649 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1126 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
56浏览 29评论
125浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
251浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
200浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
56浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 21:23 , Processed in 0.951134 second(s), Total 61, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号