Thread 中讨论的其他器件:SysConfig
您好!
是否可以在运行时或启动时在 Zigbee 协调器和 Zigbee 路由器之间切换?
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.
您好!
是否可以在运行时或启动时在 Zigbee 协调器和 Zigbee 路由器之间切换?
SYS_OSAL_NV_WRITE 至 ID 0x87、其中值0为协调器、1为路由器、2为终端设备。 YK 在 博客文章中介绍了此功能。
此致、
Ryan
我尝试了步骤。 协调器工作(它形成网络、UTIL_GET_DEVICE_INFO 命令以 协调器的身份响应 DeviceState。 但是、在这之后更改为路由器对我来说是不可行的。 Util_get_device_info 命令将 DeviceState 作为 DEV_HOLD (0x0)进行响应。
已通过跳过协调器命令再次尝试。 刷写软件后、直接执行 SYS_OSAL_NV_WRITE (ID 0x03和值0x03)-> SYS_RESET (HARD_RESET、0x0)、后跟 SYS_OSAL_NV_WRITE (ID 0x87和值0x01)。 即使在该 UTI_GET_DEVICE_INFO 命令将 DeviceState 作为 DEV_HOLD (0x0)进行响应后、也是如此。 请查看随附的日志以了解相同的日志并提供反馈。
在路由器中发送 BDB 试运转之前、我遵循了给出的确切步骤(命令序列)并启用了允许加入协调器。 然后、路由器加入网络、DeviceState 更改为 DEV_router。
但是、如果在协调器中未启用允许加入、则我可以看到路由器仅发送一帧信标请求(在向路由器发送 BDB 试运转命令后)。 请参阅下面随附的监听器屏幕截图。 我希望至少在特定持续时间(可能是30秒或60秒或任何其他值)内从路由器看到连续信标请求。 如何实现这一点?

定义了 CUI_DISABLE 后禁用 UART UI。 UART 外设可添加到 SysConfig 中、并由 NPITLUT_initializeTransport 进一步配置。 请记住、所有现有的 DMM 项目都定义了其 Zigbee 角色、即"DMM_[zc/zzed]_switch..."、并且不包含 ZNP 功能、因此无法更改这些项目的 Zigbee 角色。 不能 通过 MT API 将 DMM_zc_switch_remote_display_app 更改为路由器角色。 您需要使用第二 个 DMM_zc_switch_remote_display_app 项目来实现 ZR 功能。
此致、
Ryan
不确定您的问题是什么。 您能详细说明吗?
我需要在单个应用中使用 BLE 外设和 Zigbee。
在 Zigbee 中、我需要路由器和协调器(如在 ZNP 应用中进行切换)。
我们是否可以在单个应用中实现所有这3个功能? 2应该一次正常工作(BLE 外设+ Zigbee 协调器和/或 BLE 外设+ Zigbee 路由器)。
可用的 SDK 示例是否可以实现这一点?
我想、我可以拥有 BLE 外设+ Zigbee 协调器(DMM_zc_switch_remote_display_app)和 BLE 外设+ Zigbee 路由器(DMM_ZR_switch_remote_display_app)和 ZNP (Zigbee 协调器和路由器、一次切换)。
我需要将所有这3项都整合到单个应用中。 这是可行的吗?
我的回答与 YK 相似。 可能可以创建 ZNP + BLE DMM 应用、但 TI 尚未对此进行全面调查。 您可以参阅 DMM 集成 SimpleLink Academy 实验 、进一步考虑创建您自己的 DMM 应用。
此致、
Ryan
请尝试参阅 https://sunmaysky.blogspot.com/2019/12/how-to-create-periodic-event-to-toggle.html?m=1 。 在 Zigbee 堆栈中也是如此。
您可以查看 osal_port_timers.h 以了解使用条件。
/********************************************************************* * @fn OsalPortTimers_startTimer * * @brief * * This function is used to create and start a TIRTOS timer. * * * @param uint8_t taskId - task ID to post event to when timer expires * @param uint32_t eventId - event to post * @param uint32_t timeout - timeout in ms * * @return OsalPort status code */ extern uint8_t OsalPortTimers_startTimer(uint8_t taskId, uint32_t eventId, uint32_t timeout);
在 zcl_samples*.c、ZD_app.c 和 bdb.c 中也有使用该方法的示例、可供参考。
此致、
Ryan