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)
#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)
ZigBee Document 053520r25 (ZIGBEE HOME AUTOMATION PUBLIC APPLICATION PROFILE):
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.