Tool/software: WEBENCH® Design Tools
Random Ext PANID is very useful in zigbee network, remember that coordinator should create new random ExtPANID when every generating new network.
add this code when your task init.
extern uint8_t zgExtendedPANID[]; extern uint8_t aExtendedAddress[]; uint8_t defExtPanid[] = ZDAPP_CONFIG_EPID; osal_nv_read( ZCD_NV_EXTENDED_PAN_ID, 0, Z_EXTADDR_LEN, zgExtendedPANID ); if( ( 0 == memcmp( zgExtendedPANID, defExtPanid, Z_EXTADDR_LEN ) ) || ( 0 == memcmp( zgExtendedPANID, aExtendedAddress, Z_EXTADDR_LEN ) ) ) { uint8_t extAddr[8]; uint16_t random = OsalPort_rand(); memcpy( extAddr, aExtendedAddress, 8); //Create the key from the seed uint8_t i; for(i = 0; i < 8; i++) { extAddr[i] ^= (random & 0x000000FF); random >>= 1; zgExtendedPANID[i] ^= extAddr[i]; } osal_cpyExtAddr( _NIB.extendedPANID, zgExtendedPANID ); osal_nv_write( ZCD_NV_EXTENDED_PAN_ID, Z_EXTADDR_LEN, zgExtendedPANID ); }
add this code when your coordinator program rebuild network.
osal_nv_delete( ZCD_NV_EXTENDED_PAN_ID, Z_EXTADDR_LEN ); Zstackapi_bdbResetLocalActionReq(cmdPktTaskId);