ChirpStack 下行 Queue 使用说明
1. 现象说明
使用 ChirpStack 下发 Queue 数据时,如果在设备入网前已经向 Queue 中添加了下行数据, 设备入网后第一次上行可能收不到这部分下行数据。
这是正常现象,不是模组异常。
2. 原因说明
ChirpStack 网络服务器(NS)在设备重新入网后,会清空该设备入网前已经存在的 下行 Queue 数据。因此,入网前添加到 Queue 中的下行数据,不会在入网后继续保留。
也就是说:
设备未入网时添加 Queue 数据
↓
设备执行 Join 并入网成功
↓
NS 清空入网前的 Queue 数据
↓
设备后续 AT+QSEND 上行时,不会收到入网前添加的下行数据
该行为属于网络服务器侧的 Queue 管理特性。此前实际使用时也遇到过该现象, 并已确认与 NS 的处理机制有关。
3. 正确使用方式
建议按以下顺序测试下行 Queue:
1. 设备先完成入网;
2. 确认设备已经 Join Done;
3. 再在 ChirpStack 中添加下行 Queue 数据;
4. 设备执行 AT+QSEND 上行;
5. 设备在 RX1 / RX2 窗口接收 Queue 下行数据。
示例:
AT+QJOIN=1,100
等待 +QEVT:JOIN,DONE
在 ChirpStack 中添加 Queue 下行数据
AT+QSEND=10,0,HelloWorld,1
等待 +QEVT:RECV,...
4. 注意事项
Queue 数据建议在设备入网成功后再添加。
入网前添加的 Queue 数据,入网后可能已被 NS 清空。
如果入网后再添加 Queue 数据,设备需要再次上行,NS 才会尝试下发。
LoRaWAN Class A 设备不会主动接收下行,必须通过上行触发 RX1 / RX2 接收窗口。