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 接收窗口。