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.

[参考译文] CC1352P:尝试以 RFD 形式加入网络的 FFD

Guru**** 668880 points
Other Parts Discussed in Thread: SYSCONFIG, Z-STACK, CC2430, SIMPLELINK-CC13X2-26X2-SDK
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/862796/cc1352p-ffd-trying-to-join-network-as-a-rfd

器件型号:CC1352P
Thread 中讨论的其他器件:SysConfigZ-stackCC2430SIMPLELINK-CC13X2-26X2-SDK

我们最近将应用移植到 SDK3.30、现在看到了几种新的奇怪行为。  这是其中之一。

根据所连接的鲨鱼捕获、您可以看到设备发出信标请求、然后发送关联请求、但请求关联为 RFD。  (见第21至27段)

如果将器件关联为错误类型的器件、则器件会重置、然后重试。

最终、它以 FFD 的形式发送关联请求、然后完成密钥交换并正常运行。 (参见帧256 - 295)

SDK3.20堆栈未发生这种情况。

BDB 的设置方式是否发生了变化?

我们的设备可以是协调器或路由器。  

//定义以包括协调器和路由器功能
#define Zstack_device_BUILD (device_build_Coordinator | device_build_router)

 在以下代码中、我们首先调用设置默认 bdb 参数(MyApp_initParameters)

然后、一旦我们知道我们的设备类型(协调器或路由器)和用户指定的 PAN_ID、 我们就会调用  MyApp_SetPanId() 、它使用所需 的调试模式调用 Zstackapi_BdbStartCommissioningReq()

此时、它开始发送信标请求、并出于某种原因将其关联为一个 RFD、如 Wireshark 捕获中所示。

如果想了解这种情况的发生原因、我们将不胜感激。

-Bill

静态空 MyApp_initParameters (void)
{
ZStack_bdbSetAttributeReq_t ZStack_bdbSetAttrReq ={0};

ZStack_bdbSetAttrReq.ha_bdbCommissioningGroupID = true;
Zstack_bdbSetAttrReq.bdbCommissioningGroupID = BDB_DEFAULT_TRUSING_GROUID;

ZSTACK_bdbSetAttrReq.ha_bdbPrimaryChannelSet = true;
Zstack_bdbSetAttrReq.bdbPrimaryChannelSet = BDB_DEFAULT_PRIMARY_CHANNEL;

ZSTACK_bdbSetAttrReq.has _bdbScanDuration = true;
Zstack_bdbSetAttrReq.bdbScanDuration = BDB_DEFAULT_SCAN_DURATION;

if (isCoordinatorMode())
{
Zstack_bdbSetAttrReq.has _bdbJoinUsesInstallCodeKey =真;
Zstack_bdbSetAttrReq.bdbJoinUsesInstallCodeKey = BDB_DEFAULT_JOIN_USS_INSTALL_CODE_KEY;

Zstack_bdbSetAttrReq.has _bdbTrustCenterNodeJoinTimeout = true;
Zstack_bdbSetAttrReq.bdbTrustCenterNodeJoinTimeout = BDB_DEFAULT_TC_NODE_JOIN_TIMEOUT;

Zstack_bdbSetAttrReq.ha_bdbTrustCenterRequireKeyExchange = true;
Zstack_bdbSetAttrReq.bdbTrustCenterRequireKeyExchange = BDB_DEFAULT_TC_require_key_exchange;

Zstack_bdbSetAttrReq.ha_bdbSecondaryChannelSet =真;
Zstack_bdbSetAttrReq.bdbSecondaryChannelSet = 0x00000000;//协调器的次要通道集为零
//因此它们只尝试在上启动网络
//主通道集
}
else //(isRouterOrRepeater Mode)
{
Zstack_bdbSetAttrReq.ha_bdbSecondaryChannelSet =真;
Zstack_bdbSetAttrReq.bdbSecondaryChannelSet = BDB_DEFAULT_SEARE_CHANNEL;//允许路由器使用辅助通道
//在搜索要加入
的网络时设置}

Zstackapi_BdbSetAttributeReq( MyApp_ZstackId,&Zstack_bdbSetAttrReq );

//在空闲模式下启动 bdb 以查看其是否从 NV
Zstack_bdbstartCommissioning&t Zstack_bStartStringReq 恢复;
zstack_bdbStartCommissioningReq.commissioning_mode = Zstintrintrintrintrintrinacuatedr (mydtrintrintrintrintraduatedr
)







//如果加入新的 PAN,
//在启动网络之前设置全局 panid
if (( MyApp_nvPanID != 0xFFFF )&&( MyApp_nvPanID !=所需的 PanID ){

//保存新的 panID
nvId.systemID = NVINTF_SYSID_ZStack;
nvId.subId = ZCD_NV_PANID;
nvId.itemID = ZCD_NV_EX_legacy;
myApp_nvPanID =所需的 PanID;
Zstack_user0Cfg.nvFps.writeItem( nvId、sizeof( uint16 )、&rechedPanID );

//要强制"新建"加入,请执行 RadioRestart
ForceRadioRestart();
}

否则
{
//仅在尚未启动网络且 PAN ID 有效的情况下启动网络,
if (所需的 PanID <= MAX_PAN_ID && RadioHasJoined()== false)
{
Zstack_bdbStartCommissioningReq_t Zstack_bdbStartCommissioningReq;

//更新堆栈的 Pan ID
if (MyApp_nvPanID == 0xFFFF)
{
nvId.systemID = NVINTF_SYSID_ZStack;
nvId.subId = ZCD_NV_PANID;
nvId.itemID = ZCD_NV_EX_legacy;
myApp_nvPanID =所需的 PanID;
Zstack_user0Cfg.nvFps.writeItem( nvId、sizeof( uint16 )、&rechedPanID );
}

//更新堆栈的器件逻辑类型 nv
if (zgDeviceLogicalType!= MyApp_DeviceLogicalType)
{
nvId.systemID = NVINTF_SYSID_ZStack;
nvId.subId = ZCD_NV_logical_type;
nvId.itemID = ZCD_NV_EX_legacy;
zgDeviceLogicalType = MyApp_DeviceLogicalType;
Zstack_user0Cfg.nvFps.writeItem( nvId,sizeof( zgDeviceLogicalType ),&zgDeviceLogicalType );
}

//启动或加入 PAN
if (!bdb_isDeviceNonFactoryNew())
{
if (MyApp_DeviceLogicalType == ZG_DEVICETYPE_Coordinator)
{
zstack_bdbStartCommissioningReq.commissioning_mode = BDB_TUSITING_MODE_NWK_Formation;
Zstackapi_BdbStartCommissioningReq (MyApp_ZstackId、&ZStack_bdbStartCommissioningReq);
}
其他
{
zstack_bdbStartCommissioningReq.commissioning_mode = BDB_T调试_MODE_NWK_TOCOING;
Zstackapi_BdbStartCommissioningReq (MyApp_ZstackId、&ZStack_bdbStartCommissioningReq);
}
}

}

e2e.ti.com/.../SDK3.30-RFD-Assoc-Req.pcapng.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我看到您使用以下代码来设置设备逻辑类型、我建议您在调用这些代码时检查是否有问题。

    nvId.systemID = NVINTF_SYSID_ZStack;
    nvId.subId = ZCD_NV_logical_type;
    nvId.itemID = ZCD_NV_EX_legacy;
    zgDeviceLogicalType = MyApp_DeviceLogicalType;
    Zstack_user0Cfg.nvFps.writeItem( nvId,sizeof( zgDeviceLogicalType ),&zgDeviceLogicalType );
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    调用 对 ZCD_NV_logical_type 的读取或写入时、我没有收到错误。

     zgDeviceLogicalType 设置为 ZG_DEVICETYPE_ROUTER。

    ZDO_Config_Node_Descriptor.LogicalType 也= ZG_DEVICETYPE_router。

    器件将尝试关联为 RFD、然后自动尝试成功的 FFD。  

    在哪里可以设置正在构建/发送关联请求的断点?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以尝试在"ZMacAssociateReq"中设置一个断点来跟踪和调试它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的。  我似乎一直在跟踪它...

    • 路由器发出信标请求并听到一组不同的信标。  一些来自我们的旧 ZigBee HA、一些来自我们的"非安全"Zigbee Pro、另一些来自这种新型 ZigBee 3.0网络。  都位于不同的平底锅上、有时还会位于不同的通道上。
    • 出于某种原因、它选择 ZigBee HA 网络(即使它不是正确的 PAN)并发送关联请求作为 RFD、因为堆栈配置文件不匹配。  
    • 路由器获得关联 resp (zstackmsg_CmdIDs_dev_State_change_IND)、但请注意、它不是 FFD ( _NIB.CapabilityFlags & CAPINFO_DEVICETYPE_FFD = 0)、并重置以重试。
    • 下次发送信标请求并选择正确的网络/PAN 时、会再次以 RFD 的形式发送关联请求、然后再次拒绝该请求并重试。
    • 它再次尝试、选择错误的 PAN、但这次与 stackProfile 匹配。  这一次它以 FFD 形式发送关联请求,但再次失败,因为它不是正确的 PAN。
    • 最后,它再次尝试,选择正确的 PAN,将 关联请求作为 FFD 发送并成功(有时)。

    是的、这很好。  问题似乎是由于路由器试图将设备连接到错误的 PAN 中。  自移植到3.30 SDK 以来、我们没有更改代码、因此堆栈中的内容似乎有所更改。  但是、由于这是随机的、并且取决于它能听到的其他网络、因此它可能一直被打破。

    问题可能在于我们试图强制路由器使用特定 PAN 的方式。  我们不会预定义 ZDAPP_CONFIG_PAN_ID、因为我们不想对 PAN 进行硬编码。

    我们所做的是在 调用 Zstackapi_BdbStartCommissioningReq()之前读取一些 Dip 开关(所需的 PanID)并写入 ZCD_NV_PANID。

    //如果
    (所需的 PanID <= MAX_PAN_ID && RadioHasJoined()== false)
    {ZStack_BDBStartCommissioningReq_t
    ZStack_BDBStartCommissioningReq;
    
    nvId.systemID = NVINTF_SYItem_ZStack;nvCnvCnv_CLUSCID_CLUSTER.nvId=nv0nv_CLUSCnvId_CLUSCnvId_CLUSCn_CLUSBINID.CnA
    ;
    nvId.itemID nvId_CLUSCnvId_nvId_CLUSBIN_CLK_CLUSBIN_CLUS
    sizeof (uint16),&rechedPanID);
    
    //仅当 PAN 未执行 NV_RESTORE
    时才启动或加入 PAN if (!bdb_isDeviceNonFactoryNew())
    {
    zstack_bdbStartCommissioningReq.commissioning_mode = BDB_T调试_MODE_NWK_TOCOING;
    Zstackapi_BdbStartCommissioningReq (H8Interface_ZstackId、&ZStack_BdbStartCommissioningReq);
    }
    
    

    注:在第一次上电时,或者如果 PAN dipswitches 发生变化,我们将调用 Zstackapi_BdbResetLocalActionReq()以进入 Factory New 状态。

    同样、这一切都在3.20 SDK 中相当可靠地运行。   

    从3.20到3.30的大部分更改都是使用.syscfg 来定义硬件和堆栈。  因此、我还在连接.syscfg、以查看您是否认为某项配置不当会导致这种行为。

    如果您在这里看到任何内容、请告诉我。  我们在这方面已经进行了将近一年的时间、这是对堆栈/工具链所做的第二大改变。  我们已经没有时间(也没有信心)让这一切正常工作。

    谢谢、

    -Bill

    e2e.ti.com/.../2845.ZFR183x_5F00_PWB.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    使用3.20 SDK 时、是否还在其他网络附近运行了器件?

    除其他标准外、BDB 函数 bdb_filterNwkDisc 应过滤出与 zgConfigPANID 指定的 PANID 不匹配的信标。
    您能否看到在功能结束时是否过滤掉了未标出的信标?

    尽管 zgConfigPANID 使用 ZDAP_CONFIG_PANID 进行初始化、但如果启动选项(zgReadStartupOptions ())未指示 ZCD_STARTOPT_DEFAULT_CONFIG_STATE (请参阅 zgInit 的开头)、则会被 NV 项目 ZCD_NV_PANID 覆盖。
    您的函数 ForceRadioRestart 是否写入启动选项? 如果是、您在其中写入了什么值?

    此致、
    Toby

     

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Bill、

    您是否能够根据 Toby 的反馈和您最近的调查提供更新?  此问题似乎与 SysConfig 文件无关、但 Z-Stack 3.5.0的一项新功能集成了多页 NV 驱动程序 :http://dev.ti.com/tirex/content/simplelink_cc13x2_26x2_sdk_3_30_00_03/docs/zigbee/release_notes_zigbee_3_5_0.html 

    移植应用程序时、是否将文件添加到导入的默认 v3.30示例?  我不建议您在 主文件之外修改 ZStack_user0Cfg、而是可以对 ZCD_NV_PANID 使用 osal_NV_WRITE、  对 writeReq.panID 使用 Zstackapi_sysConfigWriteReq。  bdb.c 和 zcl_sampleapps_ui.c 中提供了示例  请告知我们已取得的任何进展。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Toby/Ryan、

    实际上、我一直到年底才离开办公室、因此我无法运行任何测试。

    当我完成端口时、我开始使用 ZR_generic 应用程序、重新排列了内容并添加了我们的文件。   

    我们注意到 NV 系统发生了变化。  我们的其他工程师之一看到了运行我们的 NV 空间的例外情况。 今天早上刚刚更新了...

    我的 VMA ZFR 无线电今天早上没有加入 ZigBee 网络。 将调试器连接到无线电我看到函数 NVOCMP_newItem 在“超出 NV”时失败。  

    但我们一直在 代码中专门使用 ZStack_user0Cfg。  都是相关的。  我们是否只需将这些替换为 osal_nv_init/read/write? 甚至对于我们的专有 NVS 呢?

    -Bill

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您还可以参考门锁/门锁控制器项目、获取有关如何修改应用 NV 存储器的示例。  我还建议用户指南 的"非易失性存储器项目"部分:http://dev.ti.com/tirex/content/simplelink_cc13x2_26x2_sdk_3_30_00_03/docs/zigbee/html/zigbee/z-stack-overview.html#non-volatile-memory-items

    以下是最新的迁移指南: http://dev.ti.com/tirex/content/simplelink_cc13x2_26x2_sdk_3_30_00_03/docs/zigbee/html/zigbee-guide/zstack3.4.0-to-zstack3.5.0.html 

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Bill、

    跟进此帖子以进行澄清:OSAL_NV_WRITE 硬编码系统 ID 为栈、因此不会用于应用 NV 项目(在本例中将使用 zclport_writeNV)。  由于可以选择系统 ID、因此函数指针可用于任一情况。  我已经向软件开发团队确认您应该能够在这种情况下使用 nvFps.writeItem、我之前的建议是因为我之前没有看到在主文件之外使用 Zstack_user0Cfg。

    如果器件尝试关联为 RFD、则认为它是 ZED。  因此、我要特别假设 NV 项目 ZCD_NV_logical_type、ZCD_NV_PANID 和 ZCD_NV_NIB 发生损坏。  您可以通过删除 NV 运行时命令来测试此情况、这也会验证 SysConfig 和 CUI 设置不是影响因素。  Zstackapi_sysNWkInfoReadReq() 是否返回正确的器件类型?  使用 LaunchPad 并对 v3.30开箱即用型通用应用示例进行少量修改、是否有任何方法可以轻松复制此问题?  我还想知道您是否可以使用 zstackmsg_CmdIDs_BDB_filter_NWK_descriptor_IND 来过滤可用网络、请参阅 Zigbee 安全 SLA 以了解更多详细信息: http://dev.ti.com/tirex/content/simplelink_academy_cc13x2_26x2sdk_3_30_01_00/modules/zigbee/zigbee_04_security/zigbee_04_security.html

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ryan、

    如上所述、路由器正尝试将其关联为 RFD、因为它选择的网络的堆栈配置文件不匹配。  我在这里遇到了一个断点。

    void ZDUP_NodeProfileSync (uint8_t stackProfile)
    {
    if (ZDO_Config_Node_Descriptor.CapabilityFlags & CAPINFO_DEVICETYPE_FFD)
    {
    if ( stackProfile != zgStackProfile ) 
    {
    ZDO_Config_Node_Descriptor.LogicalType = NodeType_device;
    ZDO_Config_Node_Descriptor.CapabilityFlags = CAPINFO_DEVICETYPE_RFD | CAPINFO_POWER_AC | CAPINFO_RCVR_ON_IDLE;
    NLME_SetBroadcastFilter( ZDO_Config_Node_Descriptor.CapabilityFlags );
    }
    }
    
    

    问题是为什么设备首先选择与此 HA 网络关联?  我们使用 DIP 开关设置 PAN ID。  我们使用这些 DIP 开关来设置 zgApsUseExtendedPANID 和 zgConfigPANID (及其关联的 NVS)可能是这样吗?   自 CC2430问世以来、我们基本上一直采用相同的方式来实现这一目标。  直到该最新端口连接到3.30 SDK 为止、它一直工作正常。   

    您是否有一个示例程序、用户可以在运行时指定协调器和路由器的 PAN ID (如通过 CUI)?    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、这是 CUI 的一项功能: http://dev.ti.com/tirex/content/simplelink_cc13x2_26x2_sdk_3_30_00_03/docs/zigbee/html/zigbee/application_overview.html#pan-id-screen 

    我强烈建议查看 zcl_sampleapps_ui.c 的 uiActionProcessConfigurePanId、我仍然注意到附加代码中没有任何一个使用 Zstackapi_sysConfigWriteReq 进行 writeReq。[has_panID/panID]

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将看 一下 uiActionProcessConfigurePanId。   我还将尝试使用 Zstackapi_sysConfigWriteReq、而不是显式写入 NVS。  最后、我没有看到任何差异、但值得一试。

    我确实注意到的一点是、示例程序不会设置/使用 zgApsUseExtendedPANID。  我们已将其设置为协调器上的 MFR_ID+PANID、但将其保留为路由器的默认设置。  (例如、PANID=33、扩展 PANID 设置为00:12:4b:01:00:00:21)  

    我记得这是我们旧的医管局系统所必需的。  不确定原因、但我们在2430、2530和现在的1352代产品中一直无问题地继续这样做。

    这是否会使事情混乱?   。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请记住、NV 存储器用于重新启动、而不一定是在当前运行时采取的措施。  我不能想象在 ZC 上设置 zgApsUseExtendedPANID 会导致此特定问题、但我尚未对其进行测试或评估。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    从我可以看到的内容来看、我认为设置外部 Pan ID 也不会导致问题。

    我要附加一些来自我的调试会话的屏幕截图以及显示行为的 Wireshark 捕获。 由于所有的断点、这些并不是同时进行的、但我认为它清楚地表明出现了问题。   zgConfigPANID == 33 (整个会话),但路由器会尝试以 RFD 和 FFD 的形式加入不同的网络。

    再说一次、我要等到1/3去试验任何东西才会在办公室工作。  但是、如果您有任何建议、我会在我回来时给出建议。  

    我要尝试的一件事是运行 Launchpad ZR_Doorlock 应用、并将其 PAN 配置为加入我们的网络并查看它在混合网络环境中的行为。

    -Bill

    /cfs-file/__key/communityserver-discussions-components-files/158/SDK3.30-Join-Issues.docx

    /cfs-file/__key/communityserver-discussions-components-files/158/2548.SDK3.30-RFD-Assoc-Req.pcapng.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ryan、

    我能够使用开箱即用的 ZR_Doorlock 应用程序重新创建此方案。  已按照所附字文件和参考 Wireshark 捕获中所示配置了 ZR Doorlock。

    /cfs-file/__key/communityserver-discussions-components-files/158/SDK3.30-Join-Issues-12_2D00_27_2D00_19.docx

     /cfs-file/__key/communityserver-discussions-components-files/158/WireSharkScans.zip 

    我将尝试在 zstackmsg_CmdIDs_BDB_filter_NWK_descriptor_IND 中过滤掉不需要的网络。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bill、

    感谢您执行这些步骤、我还观察到 ZR 加入了错误的 PAN ID 网络。  SIMPLELINK-CC13X2-26X2-SDK v3.30和 v3.40项目均会发生这种情况。  当同一信道上存在两个或多个 Zigbee 网络时、似乎会发生这种情况。  我还可以看到 ZR 加入了 Z-Stack HA 1.2.2a 网络、尽管它没有关联为 RFD。  我将与软件开发团队合作、找出根本原因和任何可行的解决方法。  到目前为止,我发现 bdb_filterNwkDisc 在递减 ResultCount 的同时不正确地递增 I,这会导致返回错误数量的可接受网络。  我在 bdb.c 中进行了以下更改、并取得了初步成功

    void bdb_filterNwkDisc (void)
    {
    networkDesc_t* pNWkDESC;
    uint8_t I = 0;
    uint8_t ResultCount = 0、ResultTotal = 0; //更改此行
    
    pBDBListNwk = NWK_getNWKDEScList ();
    NWK_DESC_LIST_RELEASE ();
    
    pNWKDESC = pBDBListNwk;
    while (pNWKDESC)
    {
    ResultCount++;
    pNWKDESC = pNWKDESC->nextDESC;
    }
    ResultTotal = ResultCount; //添加此行
    
    if (pBDBListNwk)
    {
    pNWKDESC = pBDBListNWK;
    
    if (pNWKDESC)
    {
    对于(i = 0;i < ResultTotal;i++,pNWKDESC = pNWKDESC->nextDESC) //更改此行
    ... 

    请 尽可能分享 zstackmsg_CmdIDs_BDB_filter_NWK_descriptor_IND 调查结果、但我认为这不会缓解问题。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ryan、 

    感谢您确认问题。

    但首先... SDK3.40???!! 我仍在尝试移植到 SDK3.30。

    我还看到有一个新的 CCS。 是否还需要更新此内容?

    总之、这是我添加到我们的应用程序中的内容、它看起来很有效...

    案例 zstackmsg_CmdIDs_BDB_filter_NWK_descriptor_IND:
    {
    /*删除不想加入的网络的用户逻辑
    *可以使用 Zstackapi_BdbNWKDEScFreeReq 发布要删除的网络
    *
    // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvjci 开始 vvvvvvvvvvvvvvv
    networkDesc_t *pNetworkDesc;
    networkDesc_t *pNextNetworkDesc;
    
    pNetworkDesc =(networkDesc_t *)(pMsg->pReq);
    while (pNetworkDesc!=空)
    {
    pNextNetworkDesc = pNetworkDesc->nextDesc;
    if (pNetworkDesc->panId!= My_panIdSwValue || //输出网络不在正确的 PAN 上
    pNetworkDesc->stackProfile!= 2|| //输出非 ZigbeePro 网络
    pNetworkDesc->routerCapacity == false) //输出没有容量的网络
    {
    Zstack_bdbNwkDescFreeReq_t bdbNwkDescFreeReq;
    bdbNwkDescFreeReq.nodeDescToRemove = pNetworkDesc;
    Zstackapi_BdbNwkDescFreeReq (My_ZstackId、&bdbNwkDescFreeReq);
    }
    pNetworkDesc = pNextNetworkDesc;
    }
    //^^^^^^^^^^^^^ JCI 结束^^^^^^^^^^^^^^^^^^^^
    
    Zstackapi_BdbFilterNwkDescComplet( H8Interface_ZstackId );
    }
    中断;
    
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Bill、

    SIMPLELINK-CC13X2-26X2-SDK 保持每季度更新一次、而 v3.40由于假日季提前发布。  如发行说明中所示、Z-Stack 3.6.0仅进行维护、因此移植应比以前的 SDK 更新更简单。  它有几个错误修复、但不引入任何新功能: http://dev.ti.com/tirex/content/simplelink_cc13x2_26x2_sdk_3_40_00_02/docs/zigbee/release_notes_zigbee_3_6_0.html 

    两个 SDK 中都存在一个已知问题、并在以下常见问题解答 中进行了说明:https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz/f/156/t/864899 

    由于 v3.30也可随时投产、因此您完全可以决定是否需要移植到 v3.40。  虽然可能并不重要、但我绝对建议使用 SDK 发行说明 http://dev.ti.com/tirex/explore/node?node=ADCz5HzpcJSUujy4TFI3Ig__pTTHBmu__LATEST 中所述的 CCS 版本 

    我很高兴听到您的申请正在取得进展。

    此致、
    Ryan