我正在努力在网关(RPI3 + LoRa帽子)和节点(RPi3 + LoRa帽子)之间建立lora通信。由于我想在没有TTN的情况下建立通信通道,因此尝试了以下示例在两者之间建立通信:https://github.com/dragino/rpi-lora-tranceiver/blob/master/dragino_lora_app/main.c
该代码在发送器和接收器端均适用。这意味着在发送方,要发送的消息正在控制台上打印。在接收方,正在显示收到的消息。
这对于短信很有效。但是,我想发送一条600字节长的消息。为了发送此长消息,我对writeBuf()
参数的typedef进行了如下编辑:
static void writeBuf(byte addr, byte *value, unsigned short len) {
我进行了此更改是因为byte len
将消息发送限制为255(由于未建议使用的char范围为0-255)。因此,我需要扩展此范围,以便可以发送更长的消息。进行此更改后,不会在控制台中打印任何消息。 writeBuf()
中的for循环从0-n开始,然后连续从99-n开始,控制台上没有打印发送消息。因此,接收方永远不会收到任何消息。我了解unsigned short
和unsigned char
之间的区别。但是,在这种情况下,我无法理解unsigned short
和unsigned char
之间的区别。任何帮助/指导将不胜感激。我还想知道我是在进行正确的更改还是在寻找正确的方向。
谢谢
答案 0 :(得分:1)
对于欧洲863-870MHz频段,应用程序包的大小在最慢的数据速率为51字节与在更快的速率为222字节之间变化。 cf. https://www.thethingsnetwork.org/forum/t/limitations-data-rate-packet-size-30-seconds-uplink-and-10-messages-downlink-per-day-fair-access-policy/1300
在包含标头字节的消息中,您绝对不能超过255个字节。