LoraWAN论坛

标题: ADRACKReq这个位的值为什么不是1 [打印本页]

作者: 大伟    时间: 2019-7-11 16:36
标题: ADRACKReq这个位的值为什么不是1
在LoRaWAN标准V1.1版本中,有如下表格:
[attach]270[/attach]
从上面我们可以看到,常数ADR_ACK_LIMIT的值是32. LoRaWAN里面规定,只要ADR_ACK_CNT这个值大于等于ADR_ACK_LIMIT的值,那么
终端就会将ADRACKReq这个位设置为1,但是从Figure 14里面看,ADR_ACK_CNT的值等于63(已经满足了大于等于ADR_ACK_LIMIT的条件),
但是终端还是没有将将ADRACKReq这个位设置为1,为什么?

作者: 大伟    时间: 2019-7-12 10:12
有人知道吗?
作者: 大伟    时间: 2019-7-15 16:59
大伟 发表于 2019-7-12 10:12
有人知道吗?

真的没人知道吗?难受
作者: GAGA    时间: 2019-11-28 16:31
ADR_ACK_LIMIT+ADR_ACK_DELAY=64,达到限制后还要再尝试32次
作者: BeyondDream    时间: 2025-6-23 09:09
本帖最后由 BeyondDream 于 2025-7-14 08:23 编辑

[attach]618[/attach]

# 如上图示例,它很清晰说明了ADR退避算法
step1 如果 cnt >= LIMIT 置 ADRACKReq=1
step2 功率调到 Default
step3 逐步降低速率直到 Default
step4 NbTrans 和 CahnnelMask 回归 Default

# LoRa设备调节ADR的C代码调用序列:
LoRaMac.c : ProcessRadioRxDone()/ProcessMacCommands()/RegionEU868.c:RegionEU868LinkAdrReq()/RegionCommon.c:RegionCommonLinkAdrReqVerifyParams()
GitHub源代码链接:https://github.com/Lora-net/LoRaMac-node/blob/master/src/mac/region/RegionCommon.c

# LoRa设备ADR退避算法的C代码调用序列:
LoRaMac.c:Send() / LoRaMacAdr.c : LoRaMacAdrCalcNext()/Region.c:RegionGetPhyParam(),RegionInitDefaults()
GitHub源代码链接:https://github.com/Lora-net/LoRaMac-node/blob/master/src/mac/LoRaMacAdr.c
ADR退避算法的逻辑流程图如下

[attach]619[/attach]














欢迎光临 LoraWAN论坛 (http://lora.timeddd.com/) Powered by Discuz! X3.3