Devitt Dini

Commissioning: Startup Control - BeeKit-code and Home Automation Profile differences

Discussion created by Devitt Dini on Jun 11, 2009
Latest reply on Jun 16, 2009 by Mads Westergreen

I found a difference between the standard definition of Startup Control from the Home Automation Profile and the implementation by the BeeKit-generated-cod. In this code, in files ApplicationConf.h and ZdoApsInterface.h, the 3 Startup Control mode bit can assume values other than the two ones specified by the ZigBee Document 053520r25. I also found that those values do not refer to the same function: "zero" means the device "will not perform any explicit join or rejoin" by the standard but "0x00" means "use association (ZR, ZED only), or form (ZC)" by the Beekit-generate-code; as the same, "three" means the device "will join network by association when join command is indicated by button press sequence" by the standard but "0x03" means silent join by the code.


I'm working to implement the commissioning procedure in my BeeKit Codebase 3.0.2 based application, so I need more info about the existing code and the code that I have to add.





  Start mode to use if this node receives an over-the-air NLME-LEAVE command. See
  ZdoStopMode_t in ApsZdoInterface.h. Note: the restart bit is chosen by the
  over-the-air command, but whether to announce or reset tables is chosen by the
  application. See also ZDO_StartEx().

  DDDx xxxx   - Device type
  xxxS Sxxx   - Startup set
  xxxx xCCC   - Startup control mode

  Default: 0x02 (NVM set, gZdoStartMode_NwkRejoin_c)
#ifndef gZdoStartModeDefault_c
#define gZdoStartModeDefault_c                       0x02





#define gZdoStartMode_Associate_c     0x00 // (default) use association (ZR, ZED only), or form (ZC)
#define gZdoStartMode_OrphanRejoin_c  0x01 // FS specific: use orphan rejoin (ZR, ZED only)
#define gZdoStartMode_NwkRejoin_c     0x02 // use NWK rejoin (ZR, ZED only)
#define gZdoStartMode_FindAndRejoin_c 0x03 // valid for ZR, ZED only, search for network on this and
                                           // other channels, then silent join
#define gZdoStartMode_SilentStart_c   0x04 // already part of the network (no form/join needed)
#define gZdoStartMode_StartMask_c     0x07 // mask for above fields

// form (ZC) or associate join (if ZR or ZED), using NVM if available
#define gZdoStartMode_Default_c       (gZdoStartMode_Associate_c | gZdoStartMode_NvmSet_c)






Startup Control:
3 (three) if un-commissioned, so it will join network by association when join
command is indicated by button press sequence.
0 (Zero) if commissioned. Indicates that the device should consider itself a part of
the network indicated by the ExtendedPANId attribute. In this case it will not
perform any explicit join or rejoin operation.