This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于无线传感网络的数据管理

ZigBee可以用于无线传感网络,如果节点非常多的时候,比如温度采集网络,由大量的节点,每一个节点的温度数据都要报告给协调器,那么如果终端节点通过SendReport定时报告数据的话,怎么确定协调器的接收endpoint呢?

总不能协调器上一个endpoint对应一个温度终端节点吧?那样协调器的endpoint肯定不够用的。

协调器收到SendReport后,怎么区分是哪个终端节点发的呢?

  • endpoint 表征的是一个应用。每个节点绑定时都用同样的协调器endpoint就好了。协调器可以在应用层做区分。

    协调器收到的report 结构如下,你可以用地址,也可以在report的attr中增加可用于区分的属性,

    typedef struct
    {
    osal_event_hdr_t hdr; // OSAL header
    zclFrameHdr_t zclHdr; // ZCL header parsed
    uint16 clusterId; // Cluster ID
    afAddrType_t srcAddr; // Sender's address
    uint8 endPoint; // destination endpoint
    void *attrCmd; // pointer to the parsed attribute or command; must be freed by Application
    } zclIncomingMsg_t;