CC2530在一个网络中,如何获取目的节点的RSSI值、任意节点的RSSI的值?
TI工程师,你好!
组网时,在一个网络中,终端节点如何其他的终端节点的RSSI,我在终端节点的接收程序里面调用uint8 value=pkt->rssi;,但是获取的RSSI的值是协调器的RSSI的值,而不是终端节点的RSSI的值,我想问一下终端节点如何获取其他终端节点的RSSI的值,或者获取任意终端节点的RSSI的值?谢谢
Hi Leilei,
RSSI的值只能通过和对方进行直接通信时获取,但终端节点只能和其父节点(协调器或路由器)进行直接通信,所以只能获取其父节点的RSSI值。
而与其他终端节点的通信都是通过其父节点进行转发的,所以物理层无法获取其余终端节点的RSSI值。
谢谢了。在一个网络中,一个终端节点采用广播通信方式时,而其他的终端节点都能收到该终端节点的信息,是因为其父节点(协调器或者路由器)转发的原因吗?我通过什么方式可以查看到该信息是由其父节点转发的,而不是其他终端节点直接收到的呢?
首先,终端节点本身是不具备广播能力的,所以如果他要广播,必定是让他的父节点代为广播。
然后,接收方因为终端节点不能直接听到广播信息,所以也是其父节点先代为接收,然后通过单播的方式当终端节点poll的时候转发给他。
通过sniffer抓包就能看到这种现象。
非常感谢,我已经明白了。如果网络中,有多个协调器,而且在NV中设置每个协调器的panid相同,其他终端节点也在NV中设置该panid,通信仍然正常,这是的多个协调器是不是变成的路由节点?
不太明白你的意思。
一个网络中只能有一个协调器,如果有多个协调器且panid相同应该会触发panid conflict。
我知道,在一个网络中只能存在一个协调器,但是这样一种场景如何实现,让终端节点加入指定的协调器,当该终端节点离开该协调器,又能重新加入其它指定的协调器。为了解决这个问题我采用相同panid的协调器
您好!
您说的这一现象我遇到了,但是终端在广播数据时,opinion设置为AF_SKIP_ROUTING,那么其他路由节点收到该广播的信号强度就可以得到了,这又怎么理解呢,既然终端不具有广播能力,那么设置AF_SKIP_ROUTING又怎么可以广播成功
你好:
我想咨询一下,Z-Stack中如何设置无线发送数据包的传输速率,默认的无线传输速率是多少?谢谢
Kanjie.
我用CC2530+CC2591 按照官网的电路搭了起来, 但是发现HGM_EN 为低时,模块可以正常入网,但是HGM_EN 为高时 模块就不能正常入网了。
不知具体什么原因!
另外有没有发现 用WIN8.1 的系统无法在论坛上发帖 和回复。。。。
讨论主题已经不是之前那个了。建议重新开一个帖子询问。
我采用的方法是把所有的设备设置为路由设备,发送选项为AF_SKIP_ROUTING,但是20个路由节点按1-》20-》1。。。循环广播的速率只能达到300ms一个轮回左右,而且串口助手接收到的包有时会出现乱序(本来是需要1-2-3.。。20这样的顺序接收的,结果出现1-16-2-3-17-。。)丢包也比较严重,请问有什么解决把方法吗?
回答得很棒,这才是关键