Thread 中讨论的其他器件:Z-stack
在 ZNP 设备上使用 MT_AppCnfBDBAddInstallCode 将安装代码添加到 TC 时、返回 ZApsTableFull (0xb2)的状态。 ZNP 出厂时已重置、在添加安装代码之前未添加任何节点。 我跟踪了代码、找不到 返回 ZApsTableFull 的位置、可能它在 APSME_AddTCLinkKey 中? 有什么想法来解释这个 zStatus 值? 谢谢。
此致、
水阳
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在 ZNP 设备上使用 MT_AppCnfBDBAddInstallCode 将安装代码添加到 TC 时、返回 ZApsTableFull (0xb2)的状态。 ZNP 出厂时已重置、在添加安装代码之前未添加任何节点。 我跟踪了代码、找不到 返回 ZApsTableFull 的位置、可能它在 APSME_AddTCLinkKey 中? 有什么想法来解释这个 zStatus 值? 谢谢。
此致、
水阳
您好、Shuyang、
假设您已经使用 APP_CNF_BDB_SET_JOINUSESINSTALLCODEKEY 将 zgAllowInstallCodes 设置为 ZG_IC_MOUSE_USED, ZApsTableFull 表示在使用给定的扩展地址搜索器件时找不到条目。 该设备应在加入网络之前进行初始化。 请记住、安装代码对于每个连接设备都是唯一的、不适用于 TC 本身。 因此、您应该确保为 APP_CNF_BDB_ADD_INSTALLCODE 提供正确的 IEEEAddress、且 LSB 在前。 如果这些建议不起作用、请提供机器翻译命令的内容以供进一步评估。
此致、
Ryan
您好、Ryan 和 Aries、
感谢您的回复。 我们遵循了 Ryan 提到的步骤、这个问题只发生在客户的一些电路板上、因此我认为它与堆栈设置有关。
我刚刚获得了有关该问题的另一条信息、即 ZDSECMGR_TC_DEVICE_MAX 在此项目中设置为128、而 ZDSECMGR_TC_DEVICE_MAX 保持为40。 这是否会导致 zApsTableFull 错误?
我对 "安装代码"键条目还有另一个问题: 如果由于主机的操作不当而在条目中添加了错误的安装代码、由于从未使用过此安装代码、它不会被擦除、它是否会导致安装代码表已满并阻止正常加入设备? 如果是这样、我们是否有清理安装代码表的方案?
此致、
水阳
您好、Shuyang、
如果 填充了 ZDSECMGR_TC_DEVICE_MAX、则可以在 APSMT_AddTCLinkKey 中生成 ZApsTableFull。 请注意,如果 zgAllowInstallCodes 等于 ZG_IC_SUPPORTED_NOT_REQUIRED,则可以检查“安装代码”表,以验证加入设备在无线发送之前是否具有 NWK 密钥,但这不是必需的。 否则、对于 ZG_IC_UST_USE_USDEused、必须提供安装代码。
如果 在 APP_CNF_BDB_ADD_INSTALLCODE 命令中使用相同的扩展地址、则只 需使用新的安装代码更新相同的 ZCD_NV_EX_TCLK_IC_TABLE 条目。 支持高达 ZDSECMGR_TC_DEVICE_IC_MAX 的唯一扩展地址、并且可以通过使用 SYS_OSAL_NV_READ 读取 NV 表并使用 SYS_OSAL_NV_DELETE 删除不正确的条目来跟踪这些地址。
此致、
Ryan
安装代码在 ZCD_NV_EX_TCLK_IC_TABLE 内进行索引、 并可使用 APSME_AddTCLinkKey 进行添加。 也可以从 APSMG_SearchTCLinkKeyEntry 中搜索条目以发现其索引(使用扩展地址搜索)、从而使用 APSMG_EraseICEntry 将其删除。
由于此用例涉及 ZNP 固件、因此可以定义 MT_SYS_KEY_MANAGEMENT、从而访问 MT_ZdoRemoveLinkKey。
此致、
Ryan