两个节点绑定的问题
我的理解,节点为了节能,节点通信都是定时睡眠+轮询。但是,在一个网络里,某两个节点绑定后,他们没有通过第三个点连接,这两个节点如果通信的话,接收数据的点,是不是应该一直保持接收状态啊?还是其他方式传输的?
你是说zigbee吗? 如果是coordinator和router都是主电源供电,一般是需要处于接收状态的。ED不路由,所以可以电池供电和周期性唤醒睡眠。采用polling方式,ED的父节点则会缓存到ED的数据,当ED轮询时转发数据给ED.
Coordinator
•Starts a non-beaconed PAN
•Allows other devices to join it
•Buffers messages for sleeping End Devices
•Provides binding and address-table services
•Routes messages
•Dynamically repairs routing
•Can have I/O capability
•Manages security
•Radio always on
Router
•Does not own or start PAN (Scans to find a network to join)
•Allows other devices to join it after PAN has been started
•Routes messages
•Dynamically repairs routing
•Buffers messages for sleeping End Devices
•Support secure messaging
•Can have I/O capability
•Radio always on
End Device
•Does not:
–route messages
–own or start network
–allow other devices to join it
•Scans to find a PAN to join
•Polls parent to get messages (can be disabled)
•Can be mobile
•Radio/CPU can sleep
谢谢TY解答,
嗯,coordinator和router都是保持RX状态,ED都是polling他们获得数据。但对于绑定的这种间接通信,AB是ED, C是AB的parent,假设A和B有binding了,A是源绑定,那么实际通信的情况是,如果A发信息给B,是A先发给C,C在转发给B了对吧?
另外还想请教一个问题,对于OSAL的消息列队,A和B通信,A的发送功率大于B,但我的理解,当B给A发送很多消息,而B又发送不出去,就堆积在列队里,那如果超出了预设值,会不会直接指针跳飞了?