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.

[参考译文] CC2538:可以在运行时更改设备类型

Guru**** 2587345 points
Other Parts Discussed in Thread: CC2538, Z-STACK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/655551/cc2538-can-change-the-device-type-at-the-run-time

部件号:CC2538
主题中讨论的其他部件: Z-stack

您好,

能否在CC2538中更改运行时的Zigbee设备类型。

我的意思是在 运行时Zed至ZR和ZR至Zed的更改要么保持在网络中的旧工厂设置,要么重新在板载上运行"确定"。

如果在3.0 中可以做到这一点,请告诉我,这很有帮助。

谢谢你

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

    您好,

    这在Z-Stack HA示例应用中是不可能实现的,主要是因为它在Zigbee网络环境中并不真正起作用。 在Zigbee网络中,您需要在"切换"设备类型之前先将设备重置为出厂新设备,从而有效地使其成为新的网络设备,您无法保留旧的网络配置。

    ZNP Z-Stack项目确实允许选择运行时Zigbee逻辑设备类型,因此我想您可以使用此项目来设计一个可以切换类型的节点,但您需要在更改节点类型之前重新设置该节点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,JasonB:
    您的意思是,设备类型可以更改ZC/ZR/ZT,但在更改类型之前,如果设备处于网络中,则必须重置出厂设置(如果设备尚未连接到任何网络,则无需连接)并更改设备类型,再次将机载重置为网络是。
    如果我的理解是写入,如何在恢复出厂设置后更改设备类型。
    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以参考 sunmaysky.blogspot.tw/.../set-logical-device-type-to-coordinator.html ,它介绍了如何在SOC模式下切换ZC和ZR。 如果您需要这种功能,我建议您使用ZAP-ZNP体系结构,当ZAP启动ZNP时,您可以从ZAP切换到Zed,ZR或ZC。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在CC2538使用IAR,因此在SOC中,我可以执行Zed和ZR。
    我的需求是设备始终为Zed,当我想要使任何Zed具有ZR时,我的"ZC Ls方面 的"或ZC的最大设备列表超过"。
    我们的定制设备正在制造中,用于开发目的。 所以,现在我们无法更改设计

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

    您似乎想动态地执行此操作,答案是否定的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Chen:
    我不想动态地,
    在启动或重新启动时,定义任何宏也很好。 我不希望在运行时更改。在CC2538中,以任何方式将设备类型从Zed更改为ZR都是正常的。 或者通过使用UART接口进行任何更改也很好
    谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试在ZC和ZR之间转换角色,但没有尝试Zed。 如果需要在Zed和ZR之间切换,可能的方法是使用ZNP或使用外部闪存来存储两个不同的FW,一个用于Zed,另一个用于ZR。 当您需要切换角色时,您可以从外部闪存重新加载固件以进行切换。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的设备是Zed,我想以任何方式使其成为具有相同应用程序映像的ZR。
    因此,您在链接中分享了" sunmaysky.blogspot.in/.../set-logical-device-type-to-coordinator.html
    他们正在尝试在ZC至ZR wrt按钮按下之间进行操作。
    就像我将在闪存中保留存储一个主位一样,如果它指向Zed_Val,I将以Zed启动;如果它指向ZR_Val,I将以ZR启动。
    是否成功。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为这是可能的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Chen:
    我尝试让ZR和ZC与您共享的链接相同:sunmaysky.blogspot.in/.../set-logical-device-type-to-coordinator.html

    但它总是以ZC开头,

    到“Z 1.2 4.2a”中的“示例光源的协调器项目”。 Z-stack 3.0 项目为定义的函数提供了一些未定义的错误,所以我这样做了。

    我尝试通过重新启动和/或通过按向上按钮(始终以ZC开头)打开主板来执行此操作

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

    我建议您调试为什么它总是以协调员身份启动。

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

    您好,Chen:

    现在似乎工作正常,如果我只是启动或重新启动EZ模式,则指示灯呈蓝色闪烁,而通过按UP按钮重新启动,则EZ模式上的指示灯不闪烁

    请检查捕获和告诉我。

    e2e.ti.com/.../13.zip

    谢谢你

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

    我在Z-Stack 3.0 项目中尝试的操作相同,但我遇到了以下错误:

    错误[Li005]:"Bdb_setNodeJoinLinkKeyType"没有定义[引用自APSMEDE_CB.o (EndDevice.A)]

    Error[Li005]:No definition for "bdb_tcLinkKeyExchangeAttemempt"[referenced from E:\Raghu\KIKO_Projects\KIKO_point\Project\ZStack\HomeAutomation\

    KikoPoint\CC2538\EndDevice - OTAClient - ImageA - withBootloader\Obj\bdb.o]

    Error[Li005]:No definition for "bdb_nwkDiscoveryAttemempt"[referenced from E:\Ragho\KIKO_projects\KIKO_point\Project\ZStack\HomeAutomation\KikoPoint\

    CC2538\EndDevice - OTAClient - ImageA - withBootloader\Obj\ZApp.o]

    Error[Li005]:No definition for "bdb_nwkAssocAttemt"[referenced from E:\Ragho\KIKO_projects\KIKO_point\Project\ZStack\HomeAutomation\KikoPoint\CC2538\

    EndDevice - OTAClient - ImageA - withBootloader\Obj\ZApp.o]

    Error[Li005]:No definition for "AIB_MaxBindingTime"[referenced from E:\Raghu\KIKO_projects\KIKO_point\Project\ZStack\HomeAutomation\KikoPoint\CC2538\

    EndDevice - OTAClient - ImageA - withBootloader\Obj\ZDObject.o]

    谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您尝试的意思是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在Z-Stack 3.0 项目的链接中进行了相同的更改。 因此,在构建时获取上述错误
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有使用Z-Stack 3.0 进行此类测试的经验。 您必须自行调试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Chen:

    下面在"ZGlobals.h"中的更改(红色添加文字)仅给出这些错误。 在链接器的adder "AllDevice.a"中,代替"oitions --> Linker"中的"EndDevice.a",还在"Options -->C/C++ Compiler --> Extra Options"中添加了"f8wRouter.cfg"。请给出一些建议

    #IF 0

    #if !已定义( ZStack_device_build )

     #IF已定义( ZDO_Coordinator )

      #define ZStack_device_build (device_build_Coordinator)

     #Elif已定义( RTR_Nwk )

      #define ZStack_device_build (device_build_router)

     #否则

      #define ZStack_device_build (device_build_ENDDEVICE)

     #endif  

    #endif

    #否则

      #define ZStack_device_build (dev_type+1)

    #endif

     

    错误:

    错误[Li005]:"Bdb_setNodeJoinLinkKeyType"没有定义[引用自APSMEDE_CB.o (AllDevice.A)]

    Error[Li005]:No definition for "bdb_tcLinkKeyExchangeAttemempt"[referenced from E:\Raghu\KIKO_Projects\KIKO_point\Project\ZStack\HomeAutomation\
    KikoPoint\CC2538\EndDevice - OTAClient - ImageA - withBootloader\Obj\bdb.o]

    Error[Li005]:No definition for "bdb_nwkDiscoveryAttemempt"[referenced from E:\Ragho\KIKO_projects\KIKO_point\Project\ZStack\HomeAutomation\KikoPoint\
    CC2538\EndDevice - OTAClient - ImageA - withBootloader\Obj\ZApp.o]

    Error[Li005]:No definition for "bdb_nwkAssocAttemt"[referenced from E:\Ragho\KIKO_projects\KIKO_point\Project\ZStack\HomeAutomation\KikoPoint\CC2538\
    EndDevice - OTAClient - ImageA - withBootloader\Obj\ZApp.o]

     

    谢谢你

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

    您好,Chen:

    在“Z-Sta 1.2 .2a SampleLight终端设备”中,我尝试通过向其他线程提出建议,从Zed更改为ZR。

    但始终在调试结束后,将其启用为ZR,而不是以Zed启动

    注:添加了绿色文本  

     ZDEP.c中的更改

    UINT8 dev_type=3;

    UINT16 NV_DEVE_TYPE=0x0401;

    //////////////////////////////////////////////////////////

    void ZAppDetermineDeviceType( void )

     UINT8 dev_type_reset=3;

     OSAL_NV_ITE_INIT (0x0401,1,空);

     OSAL_NV_READ(0x0401,0,1,&DEP_TYPE);

     OSAL_NV_WRITE (0x0401,0,1,&DEP_TYPE_RESET);

     如果(dev_type!=1)

      dev_type=3;

     如果(dev_type=3)

      zgDeviceLogicalType = ZG_DEVICETYPE_ENDDEVICE;

     否则,如果(dev_type==1)

      zgDeviceLogicalType = ZG_DEVICETYPE_ROUTER;

    ////////////////////

    }

     ZGlobal.h中的更改


    extern uint8 dev_type;

    #IF 0
    #if !已定义( ZStack_device_build )
    #IF已定义( ZDO_Coordinator )
    #define ZStack_device_build (device_build_Coordinator)
    #Elif已定义( RTR_Nwk )
    #define ZStack_device_build (device_build_router)
    #否则
    #define ZStack_device_build (device_build_ENDDEVICE)
    #endif
    #endif
    #否则
    #define ZStack_device_build (dev_type+1)
    #endif

     

     zcl_samplelight.c中的更改

    IF (KEY & HAL_KEY_SW_3)

    #IF 0
    NLME_SendNetworkStatus( zclSampleLight_DstAddr.addr.shortAddr,
    NLME_GetShortAddr(),NWKSTAT_NONTREE_LINK_FAILURE,FALSE);
    #否则
    UINT8 Newdev_type=1;
    OSAL_NV_ITE_INIT (0x0401,1,空);
    OSAL_NV_WRITE (0x0401,0,1,&Newdev_type);
    SystemReset();
    #endif

     

    谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我告诉您,我没有ZR和Zed之间角色变化的经验。 您必须自行调试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,我在“选项--> C/C++编译器-->处理器-->定义的符号”中定义了“ZG_build_joining_type”
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的项目中是否包含bdb.c和bdb.h?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,您可以看到附加的bdb映像

    谢谢你

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

    错误[Li005]:"Bdb_setNodeJoinLinkKeyType"没有定义[引用自APSMEDE_CB.o (AllDevice.A)]

    Error[Li005]:No definition for "bdb_tcLinkKeyExchangeAttemempt"[referenced from E:\Raghu\KIKO_Projects\KIKO_point\Project\ZStack\HomeAutomation\
    KikoPoint\CC2538\EndDevice - OTAClient - ImageA - withBootloader\Obj\bdb.o]


    Error[Li005]:No definition for "bdb_nwkDiscoveryAttemempt"[referenced from
    E:\Raghu \KIKO_Projects\KIKO_Point\Project\ZStack\HomeAutomation\KikoPoint\
    CC2538\EndDevice - OTAClient - ImageA - withBootloader\Obj\ZApp.o]


    Error[Li005]:No definition for "bdb_nwkAssocAttemt"[referenced from
    E:\Raghu \KIKO_Projects\KIKO_Point\Project\ZStack\HomeAutomation\KikoPoint\CC2538\
    EndDevice - OTAClient - ImageA - withBootloader\Obj\ZApp.o]

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以跳过ZGlobals.h中的修改以修复此错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Chen:
    我还面临一个问题,所有Z-Stack 1.2 示例开关和示例指示灯作为ZR与我的ZC连接。
    我尝试重新安装Z-Stack Home 1.2 .2a,并调试了项目“样例交换机终端设备”和“样例光终端设备”,而不更改任何内容,但在连接到我的ZC后,Ubiqua显示它有路由器

    请帮助管理Z-Stack Home 1.2 .2a中的Zed项目
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试重新安装新的Z-Stack Home 1.2 .2a以重建所有内容以再次进行测试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Chen:

    在“Z-St和平 台”(Z-St和平 台) 3.0 项目中,我为Zed和ZR进行了配置。

    正如您所建议的那样,但让我的应用程序始终以路由器的形式启动的一个因素是:

    添加

    "-f $PROJ_DIR$\..\..\Tools\CC2538DB\f8wRouter.cfg" 到选项--> C/C++编译器-->额外选项-->命令行选项

    如果我不添加此项,我收到 以下错误:

    错误[Li005]:没有"Glink_status_jiting_mask"的定义[引用自Nwk_util.o (AllDevice.A)]

    通过添加“E:\Raghu\KIKO_Projects\KIKO_point\Project\ZStack\Libraries\CC2538\bin\EndDevice.A”(位于“E:\Raghu\KIKO_Projects\KIKO_point\Project\ZStack\Libraries\CC2538\bin\AllDevice.A”的实例),可以避免上述错误。
    通过设置此选项,我的设备将始终为终端设备。

    因此,对于所有设备配置,我都需要您的帮助

    请给我建议以覆盖此项

    谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经告诉您,我没有这样做的经验,所以我无能为力。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Chen:
    最后,我满足了我的需求。
    现在,我的设备可以同时用作Zed和ZR。 我通过"Z-Stack 3.0 ","使用引导加载程序的示例交换机终端设备OTA客户端映像A"实现了这一点
    感谢您的宝贵支持。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    干杯!