我的客户在使用 CC1310 TI15.4堆栈时报告了一个可能的问题:当网络中有多个传感器且一个传感器断开关联时、收集器复位、新连接的传感器的短地址将与其余传感器重复。
使用 simplelink_cc13x0_sdk_4_20_02_07重现此问题的步骤:
1.建立一个包含一个收集器和两个传感器的网络, 短地址0x1和0x2将被分配给传感器。
2.按下 LaunchPad 上的按钮、解除传感器0x1的关联。
3.重置收集器。
4.尝试再次关联刚刚离开的传感器,将为传感器分配一个短地址0x2,并且收集器侧将出现安全错误。
我读取 cllc.c 中的代码、发现变量 Cllc_numOfDevices 在电源周期之间不一致。 此变量用于确定 assocIndCb 中新器件的短地址:
if(devInfo.shortAddress == CSF_INVALID_SHORT_ADDR)
{
/* New device, make a new short address */
assocRsp.status = ApiMac_assocStatus_panAccessDenied;
devInfo.shortAddress = Cllc_numOfDevices + CLLC_ASSOC_DEVICE_STARTING_NUMBER;
......
}
在 一个器 件加入后,在 maintainAssocTable()内,Cllc_numOfDevices 会递增,但在下电上电后,Cllc_numOfDevices 会设置为0,这会导致在复位后加入器件时短地址重复。
您能否确认问题并建议修复? 谢谢。
此致、
水阳

