你好,我这边协调器和终端直接的通信是通过MAC地址通信的,
需要知道终端的在线/离线状态,AssociatedDevList里面的状态只能和
终端的短地址对应起来,如何和MAC地址对应起来?如果不行的话,
用MAC地址通信的时候协调器如何知道终端的在线状态?请给个建议,谢谢!
Viki Shi:
地址管理器里会记录设备的MAC地址及网络短地址,可以让两个地址对应上
user5367314:
回复 Viki Shi:
1.地址管理器怎么看?哪个参数?
2.MAC地址是不变的,短地址即使开启了NV,终端复位了也是会变的,怎么和MAC地址对应?
YiKai Chen:
AssociatedDevList無法知道终端的在线状态,你可以讓终端定期給协调器送信息,如果一段時間沒收到代表离线
user5367314:
回复 YiKai Chen:
1.怎知道协调器连了多少个终端?
2.如果终端通过路由连接协调器的,也可以让终端定期发消息给协调器来判断终端是否在线吧?
3.比如协调器连了30个终端,那要开启30个定时器去挨个判断终端有没有定期发消息来?有什么好的思路没?谢谢
YiKai Chen:
回复 user5367314:
1. 你是要知道多少个终端直接連到协调器,還是要知道少个终端加入到协调器組的網絡?
2. 是的
3. 只要一0个定时器定時觸發,比如每60秒檢查一次30个终端不就好了
user5367314:
回复 YiKai Chen:
想要知道少个终端加入到协调器組的網絡中?(不管有没有路由,如果有路由,则要知道路由+终端的总数量)
YiKai Chen:
回复 user5367314:
那你要在設備入網的時候去紀錄這些資訊,自己用個設備表來維護
user5367314:
回复 YiKai Chen:
1.如何知道多少个终端直接連到协调器?
2.协调器如何知道终端的MAC地址?
YiKai Chen:
回复 user5367314:
1. 协调器的AssociatedDevList里面终端就是直接連到协调器
2. 透過ZDP_IEEEAddrReq去要
user5367314:
回复 YiKai Chen:
当终端定期和网关之间发送心跳包的时候,下面的参数需要怎么处理?全部设为0吗?
/***************************************** The following are for End Devices only***************************************/
-DRFD_RCVC_ALWAYS_ON=TRUE
/* The number of milliseconds to wait between data request polls to the coordinator. */
-DPOLL_RATE=60000/* 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/* Rejoin retry backoff silent period timer duration in milliseconds – default 15 minutes according to HA test spec */
-DREJOIN_BACKOFF=900000/* Rejoin retry backoff scan timer duration in milliseconds – default 15 minutes according to HA test spec */
-DREJOIN_SCAN=900000/* Latest sample apps use LED4 and do not use S1 switch */ /*默认-DENABLE_LED4_DISABLE_S1*/