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

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

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

1,379 次查看
Devitt
Contributor I

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.

 

 

ApplicationConf.h:

 

/*
  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
#endif

 

 

ZdoApsInterface.h:

 

#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):

 

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.

标签 (1)
0 项奖励
回复
1 回复

536 次查看
Mads
Contributor V

 Devitt,

 

You can not compare the starting primitives with the HA spec directly.

 

If you e.g use the ZDO_Start(gSilentRejoinWithNVM_c) which most of the demo applications uses you will see the following behavior:

 

1. if the node has never been on the a network before it will do a discovery and an association join.

2. if the node has valid NVM information (e.g. power cycled while participating in the network) it will silently resume its role in the network.

 

Start up control mode 0 requires a full commisisoning of a the SAS which normally is done through a commissioning cluster, however this cluster is not used in HA. the test is "generic text based on the SAS.

 

Br,

Mads

 

 

 

 

0 项奖励
回复