我正在致力于在网关(RPI3 + LoRa hat)和节点(RPi3 + LoRa hat)之间建立 lora 通信。由于我想在没有 TTN 的情况下建立通信 channel ,因此我尝试了以下示例来设置两者之间的通信: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(由于 unsugned char 的范围为 0-255)。所以我需要扩展这个范围,以便我可以发送更长的消息。进行此更改后,控制台中不会打印任何消息。 writeBuf() 中的 for 循环从 0-n 开始,然后从 99-n 连续进行,控制台上没有打印任何发送消息。因此,接收者永远不会收到任何消息。我了解 unsigned Short
和 unsigned char
之间的区别。但是,我无法理解在这种情况下 unsigned Short
和 unsigned char
之间的区别。任何帮助/指导将不胜感激。我还想知道我是否正在做出正确的改变或寻找正确的方向。
谢谢
最佳答案
对于欧洲 863-870MHz 频段,应用程序数据包大小在最慢数据速率的 51 字节和更快速率的 222 字节之间变化。比照。 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 个字节(包括 header 字节)。
关于c - LoRa通信中unsigned Short和unsigned char的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54102362/