找回密码
 立即注册

微信扫码登录

查看: 251|回复: 3

Message ZBHCI_CMD_DATA_CONFIRM with status 0xA7 or 0xA9

[复制链接]

15

主题

83

回帖

460

积分

璀璨钻石

积分
460
发表于 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.


15

主题

83

回帖

460

积分

璀璨钻石

积分
460
 楼主| 发表于 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?

27

主题

330

回帖

1065

积分

版主

积分
1065
发表于 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.

15

主题

83

回帖

460

积分

璀璨钻石

积分
460
 楼主| 发表于 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!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 |沪公网安备31011502403548号 )

GMT+8, 2026-2-11 19:47 , Processed in 0.092958 second(s), 26 queries .

Powered by Discuz! 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表