I use JN-AN-1216-Zigbee-3-0-IoT-ControlBridge as coordinator , the coordinator permits a ZED join zigbee network by authentication,one coordinator allows only 8 ZEDs join zigbee network.
To meet the needs mentioned above,i have some questions as below:
1.Do i need to change ZNC_MAX_TCLK_DEVICES to 8? If not,what should i do ?
2.If 8 ZEDs have been join to one coordinator, how can my coordinator application code get the MAC addresses of these 8 ZEDs and their link KEYs(this link KEY is that ZED get thought ZPS_eAplZdoRequestKeyReq) by the stack API?
3. ZPS_eAplZdoAddReplaceLinkKey( u64DeviceAddress, au8Key, ZPS_APS_UNIQUE_LINK_KEY);
if(bCredPresent)
{
DBG_vPrintf(TRACE_APP, "\nu64Addr:0x%llx has been in the net before",u64DeviceAddress);
asTclkStruct[u16Location].u16TclkRetries = 0xFFFF; What does this 0xFFFF mean?Pleas explain it in detail.
}
4.About bool_t zps_bGetFlashCredential(uint64 u64IeeeAddr,AESSW_Block_u* puKey,uint16 *pu16Index,bool_t ,bool_t bUpdate ) , please tell me means of the bTcCred and the bUpdate or provide the menu documentation for this function.
Hi Pan Jun,
1. Do I need to change ZNC_MAX_TCLK_DEVICES to 8? If not, what should I do?
Yes, the Coordinator will reject the joining process for device number 9, in this case.
2. If 8 ZEDs have been joined to one coordinator, how can my coordinator application code get the MAC addresses of these 8 ZEDs and their link KEYs(this link KEY is that ZED gets thought ZPS_eAplZdoRequestKeyReq) by the stack API?
We do not provide a specific API to get the MAC address, but You can get if you define
APPSRC += appZpsExtendedDebug.c in the makefile.
Then you can print the tables, for example vDisplayAddressMapTable. Look at the appZpsExtendedDebug.c file.
3. ZPS_eAplZdoAddReplaceLinkKey( u64DeviceAddress, au8Key, ZPS_APS_UNIQUE_LINK_KEY);
if(bCredPresent)
{
DBG_vPrintf(TRACE_APP, "\nu64Addr:0x%llx has been in the net before",u64DeviceAddress);
asTclkStruct[u16Location].u16TclkRetries = 0xFFFF; What does this 0xFFFF mean?Pleas explain it in detail.
}
The code is checking if the credential is present roll back to confirm that key is used and not install code.
if(bCredPresent)
{
DBG_vPrintf(TRACE_APP, "\nu64Addr:0x%llx has been in the net before",u64DeviceAddress);
asTclkStruct[u16Location].u16TclkRetries = 0xFFFF; What does this 0xFFFF mean?Pleas explain it in detail.
}
4.About bool_t zps_bGetFlashCredential(uint64 u64IeeeAddr,AESSW_Block_u* puKey,uint16 *pu16Index,bool_t ,bool_t bUpdate ) , please tell me means of the bTcCred and the bUpdate or provide the menu documentation for this function.
bTcCred Trust Center Credential and bUpdate update or not.
Mario
3. ZPS_eAplZdoAddReplaceLinkKey( u64DeviceAddress, au8Key, ZPS_APS_UNIQUE_LINK_KEY);
if(bCredPresent)
{
DBG_vPrintf(TRACE_APP, "\nu64Addr:0x%llx has been in the net before",u64DeviceAddress);
asTclkStruct[u16Location].u16TclkRetries = 0xFFFF; What does this 0xFFFF mean?Pleas explain it in detail.
}
The code is checking if the credential is present roll back to confirm that key is used and not install code.
Is the above sentence an explanation for asTclkStruct[u16Location].u16TclkRetries = 0xFFFF ?
4.About bool_t zps_bGetFlashCredential(uint64 u64IeeeAddr,AESSW_Block_u* puKey,uint16 *pu16Index,bool_t ,bool_t bUpdate ) , please tell me means of the bTcCred and the bUpdate or provide the menu documentation for this function.
bTcCred Trust Center Credential and bUpdate update or not.
I still do not understand your explanation to bTcCred and bUpdate, would you tell me more specific:
What does bTcCred=TRUE mean? How to process that function(zps_bGetFlashCredential) when bTcCred=TRUE?
What does bTcCred=FALSE mean?How to process that function(zps_bGetFlashCredential) when bTcCred=FALSE?
What does Trust Center Credential ?
What to be update when bUpdate=TRUE? Or how to process that function(zps_bGetFlashCredential) when bUpdate=TRUE?
Would you tell me more specific for above all question(2,3,4)!
Hi Pan Jun,
ZPS_u64NwkNibGetMappedIeeeAddr((void*)ZPS_pvAplZdoGetNwkHandle(),thisNib->sTbl.psNtActv[i].u16Lookup));//thisNib->sTbl.pu16AddrLookup[i]));
Hi Mario:
If a ZED join a network by a router , how to get this ZED IeeeAddr on CIE, It should not to able to use
ZPS_u64NwkNibGetMappedIeeeAddr((void*)ZPS_pvAplZdoGetNwkHandle(),thisNib->sTbl.psNtActv[i].u16Lookup))
to get IeeeAddr,because this API use the neighber table to get IeeeAddr ,but this ZED is not in the CIE neighber table.
The vPrintAPSTable that is in the app_serial_command.c file shows the key for each joined device.
There is not this file in the SDK or AN which i use!
Is the above sentence an explanation for asTclkStruct[u16Location].u16TclkRetries = 0xFFFF ?u16TclkRetries is the number of retries that were attempted to negotiate the link key between the Trust Centre and the node.
What does 0xFFFF mean? Are the retries 0xFFFF times? It is impossible to retry so many times!
Hi Pan,
appZpsExtendedDebug.c could help you to find the devices that are joined to the CIE.
C:\NXP\bstudio_nxp\sdk\JN-SW-4170\Components\ZigbeeCommon\Source
What does 0xFFFF mean? Are the retries 0xFFFF times? It is impossible to retry so many times!
The code is defining the maximum value, that is because is not using an install code.
Regards,
Mario
Hi Mario:
Thank you very much for your reply.
If a ZED join a network by a router , how to get this ZED IeeeAddr on CIE, It should not to able to use
ZPS_u64NwkNibGetMappedIeeeAddr((void*)ZPS_pvAplZdoGetNwkHandle(),thisNib->sTbl.psNtActv[i].u16Lookup))
to get IeeeAddr,because this API use the neighber table to get IeeeAddr ,but this ZED is not in the CIE neighber table.
In your reply to the first question, you do not seem to understood what I mean. I mean,if a ZED join a network by a router instead of directly by CIE, how to get the IeeeAddr of this ZED on CIE?(This ZED has been directly connected to router)
Hi Pan Jun,
The above function in the appZpsExtendedDebug.c can only get the ZED device address directly connected to the CIE, but can not get the ZED address connected to the ROUTER, because there is no record of the ZED device connected to the ROUTER in the CIE neighbor table.
If you want to know what are the devices that the router has, send a Management LQI request to the router direction.
If the response message mentions that the router has more than two, send again the Mgmt LQI request, but increase the index and you will get the devices information.
Mario
Hi Mario:
Thank you very much for your reply!
Hi Pan Jun,
I'm sorry for the late update. I reproduce your issue and I am working on it.
Could you please confirm the SDK and the AN version that you are working on?
Regards,
Mario
Hi Mario:
Sorry to see your reply until now , The SDK is JN-SW-4170(Build Number 1745) , The AN is JN-AN-1216-Zigbee-3-0-IoT-ControlBridge(Version is 1010).
Would please NXP engineer reply my question ,my project is very tight and I need answers urgently!
Through my question please Moderators ,my project is very tight and I need answers urgently.!