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.

Binding Table - ZigBee

Hi all.

I need some help on joining process.

I would like to read my end devices IEEE address meanwhile I´m getting some trouble to find/use the Binding table.

How my coordinator can be informed every time that a device has joined the network?

Before the device has joined the network is it possible to ask my coordinator if it want it?

How can I access the biding table?

Best regards.

Marconi.

  • When a device joins zigbee network, there is end node announcement and you can add the following codes in ZDApp_InMsgCB() of ZDApp.c to get IEEE address and short address of a new-joined device.

    ZDO_DeviceAnnce_t devAnnce;

    if ( inMsg->clusterID == Device_annce )
      {
        ZDO_ParseDeviceAnnce( inMsg, &devAnnce );
      }

    When a device joins the network, it is impossible to ask coordinator if it wants it. The only way is that coordinator use NLME_LeaveReq() to ask the device to leave after it joins the network.

    For access the binding table, you can have a look at BindingTable.h.

    Regards!

    YK Chen

  • Hi YK Chen,

    Thaks for all your replies.

    You've been very helpful.

    Meanwhile I would like to clarify some doubts:

    Where is the node annoucement that you had mentioned?

    My coordinator never reaches the ZDApp_InMsgCB() function.

    Your ideia is to send a message to ZDApp_InMsgCB() with a clusterID=Device_annce?

    If so, where must I call this function?

    For me the function ZDSecMgrNewDeviceEvent() deals with a new device as we can see on the code bellow:

    ....

       // process new device
        status = ZDSecMgrDeviceNew( &device );

    ....

    Is there another place that the device annoucement is done?

    Concerning the biding table, I didn´t arrive to manage it. It has never been writen.

    How use it? Must I set any DEFINE?

    Up to now I´ve found the AssociatedDevList[] that I can see the devices joined to my network.

    But there is a problem: When I turn OFF a device it still remains on AssociatedDevList[]. How to remove the device from this list?

    What´s the difference between "BindingTable", "AssociatedDevList", "rtgTable" (Routing Table), "neighborTable".

    The only one that I can see something is AssociatedDevList[].

    Br,

    Marconi.