|
查看: 5043|回复: 6

协调器如何判断终端掉线

[复制链接]

3

主题

8

回帖

51

积分

不屈白银

积分
51
发表于 2024-12-25 09:49:40 | 显示全部楼层 |阅读模式 来自 湖南
information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号:
SDK及版本:
我的协调器设备如何去判断我的低功耗终端是否掉线了呢。

29

主题

364

回帖

1167

积分

版主

积分
1167
发表于 2024-12-25 17:05:33 | 显示全部楼层 来自 上海
这个需要应用层去实现。比如:终端设备周期性的上报数据,协调器在几个周期内收不到数据认为其离线。

3

主题

8

回帖

51

积分

不屈白银

积分
51
 楼主| 发表于 2024-12-25 17:31:37 | 显示全部楼层 来自 湖南
TL_YB 发表于 2024-12-25 17:05
这个需要应用层去实现。比如:终端设备周期性的上报数据,协调器在几个周期内收不到数据认为其离线。 ...

噢噢噢 能用那个poll_ctrl去做嘛?

29

主题

364

回帖

1167

积分

版主

积分
1167
发表于 2024-12-25 17:50:01 | 显示全部楼层 来自 上海
当然可以。Poll Control的Check In就是一个周期事件。

3

主题

8

回帖

51

积分

不屈白银

积分
51
 楼主| 发表于 2024-12-26 08:31:11 | 显示全部楼层 来自 湖南
TL_YB 发表于 2024-12-25 17:50
当然可以。Poll Control的Check In就是一个周期事件。

好的 我试试看

3

主题

8

回帖

51

积分

不屈白银

积分
51
 楼主| 发表于 2024-12-26 10:50:44 | 显示全部楼层 来自 湖南
TL_YB 发表于 2024-12-25 17:50
当然可以。Poll Control的Check In就是一个周期事件。

感觉抓不到poll_ctrl的,只有data request 我在网关如何去拿到这个data request的数据呢
20241226104835.png

29

主题

364

回帖

1167

积分

版主

积分
1167
发表于 2024-12-26 19:03:54 | 显示全部楼层 来自 上海
从代码可以看出,你需要往终端的check in interval属性写一个值去触发poll control check in。
static void sampleSensor_zclWriteReqCmd(u16 clusterId, zclWriteCmd_t *pWriteReqCmd)
{
#ifdef ZCL_POLL_CTRL
        u8 numAttr = pWriteReqCmd->numAttr;
        zclWriteRec_t *attr = pWriteReqCmd->attrList;

        if(clusterId == ZCL_CLUSTER_GEN_POLL_CONTROL){
                for(s32 i = 0; i < numAttr; i++){
                        if(attr[i].attrID == ZCL_ATTRID_CHK_IN_INTERVAL){
                                sampleSensor_zclCheckInStart();
                                return;
                        }
                }
        }
#endif
}

本版积分规则

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

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

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

在本版发帖返回顶部