Topic

FAQ
Login Register
8258 低功耗 pir zigbee 检测到传感器有人,IO唤醒马上发包,网关收不到包,丢包
Mar 01, 2024 09:30

/

A

/A


8258 zigbee sdk,代码流程

1.无人休眠 2分钟

PM_SLEEP_MODE_DEEP_WITH_RETENTION 模式

drv_pm_sleep(sleepMode, wakeupSrc, sleepTime);

2.检测到有人,gpio唤醒,

if(zb_isDeviceJoinedNwk()) //判断是否为true

true然后发包

zcl_iasZone_statusChangeNotificationCmd(SAMPLE_SENSOR_ENDPOINT, &dstEpInfo, 0, &statusChangeNotification);

3、网关只能偶尔收到发的包,大概率丢包。不休眠,则不会丢包


问题:1、是否PM_SLEEP_MODE_DEEP_WITH_RETENTION休眠起来,是要调用什么rejoin的接口,让endpoint设备入网后再发包。

2、zb_isDeviceJoinedNwk 这个为true的时候,也发不了包,是否状态及时刷新。


4 replies
TL_Soyo Mar 04, 2024 10:33
0
/A

你好,

  唤醒后做个定时器去发包呢,抓包看下怎么交互的,正常情况休眠设备唤醒后不需要rejoin就能发包的。

qdkxcc [Author] Mar 04, 2024 17:48
0
/A

唤醒后,为了保持状态及时反馈,是马上给网关去发zcl的包,没用定时器去发包。抓包的情况没有看到zcl的报文出来哦。能给参考代码:休眠设备检测到io唤醒后,马上去发包的流程?  顺便说一下,有时候是休眠时间是120s。

qdkxcc [Author] Mar 04, 2024 18:07
0
/A


情景:1如果是网关距离很远,并且只有一个endpoint。endpoint休眠起来后,发包失败,要怎么检测是否发包失败,然后endpoint发rejoin,重连网关后,再补发包。这个参考代码可以给下吗?保证休眠设备起来后,距离网关远或者网关掉电过的场景下的发包稳定性。

TL_Soyo Mar 05, 2024 14:00
0
/A

请使用休眠终端的工程实现你的需求,该工程会自动管理休眠,在入网成功后休眠唤醒也不会执行rejoin流程。