|
查看: 1195|回复: 4

Message ZBHCI_CMD_DATA_CONFIRM with status 0xA7 or 0xA9

[复制链接]

19

主题

92

回帖

506

积分

超凡大师

积分
506
发表于 2025-12-27 06:17:05 | 显示全部楼层 |阅读模式 来自 澳大利亚
information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: TLSR8258
SDK及版本:
I have 2 devices which are "sleeping", end-devices. They both have the same code.
When I send the message to the first device to turn it on or off I receive response - 55820000090002 24A5 01 19 0006 A7 43 AA with status code 0xA7
The only information about status code 0xA7 I could find in aps_api.h
APS_STATUS_NO_ACK           = 0xa7

When I send the message to the second device to turn it on or off I receive response - 55820000090002 24A5 01 19 0006 E9 44 AA with status code 0xE9
The only information about status code 0xA7 I could find in tl_zb_mac.h
MAC_STA_NO_ACK             = 0xE9

The devices receive the message because they are turned on or off.

1. What is the reason and is it possible to fix this?
2. Why first device always receives message with status code 0xA7 and the other one always with status code 0xE9?
I understand that it may something to do with that they are slepping devices but why 1 gest 0xA7 and the other one always 0xE9?
And there is no problem with other end-devices with different code/function.


19

主题

92

回帖

506

积分

超凡大师

积分
506
 楼主| 发表于 2025-12-28 07:45:35 | 显示全部楼层 来自 澳大利亚
I found the reason for this issue.
Recent SDKs use DEFAULT_POLL_RATE which is defined for each project. Those 2 device were compiled with one of those SDKs
#define DEFAULT_POLL_RATE                                        (10 * (4 * POLL_RATE_QUARTERSECONDS)) //10 sec.

All other devices I had were compiled a couple of years ago and used SDK with a global definition (for all projects) of POLL_RATE defined in zb_config.h
#define POLL_RATE                                                                        (4 * POLL_RATE_QUARTERSECONDS) //1 sec

So 10 sec polling rate caused the message with status APS_STATUS_NO_ACK or MAC_STA_NO_ACK.

What is a difference between the to status codes 0xA7 and 0xE9? Why one device received always 0xA7 and the other 0xE9?

29

主题

364

回帖

1165

积分

版主

积分
1165
发表于 2026-1-8 10:56:54 | 显示全部楼层 来自 上海
ScreenShot_2026-01-08_103931_340.png

The above figure shows the handshake process of normal communication.
MAC ACK is a point-to-point response, while APS ACK is a message response that can be relayed.


For sleep ZED devices that require frequent message reception, it is recommended that the polling rate not be less than 6 seconds.
Because the time for the parent node to cache messages for SED is 7.68 seconds, the messages will be discarded after timeout.

19

主题

92

回帖

506

积分

超凡大师

积分
506
 楼主| 发表于 2026-1-13 07:29:03 | 显示全部楼层 来自 澳大利亚
TL_YB 发表于 2026-1-8 10:56
The above figure shows the handshake process of normal communication.
MAC ACK is a point-to-point ...

To receive response in more than 6 seconds is a very long delay!

29

主题

364

回帖

1165

积分

版主

积分
1165
发表于 2026-8-10 10:55:58 | 显示全部楼层 来自 江苏

本版积分规则

关注公众号
隐私政策|Telink forum

相关侵权、举报、投诉及建议等,请发 E-mail:forum@telink-semi.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|沪ICP备17008231号-1 |沪公网安备31011502403548号

在本版发帖返回顶部