c - LoRa通信中unsigned Short和unsigned char的区别

标签 c raspberry-pi3 unsigned-char lora

我正在致力于在网关(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 Shortunsigned char 之间的区别。但是,我无法理解在这种情况下 unsigned Shortunsigned 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/

相关文章:

c - 指数问题及其 C 表示

在 C 中连接到一个空字符串?

redis - esp32和esp8266客户端如何连接redis数据库

linux - Raspbian 从源代码构建 ncurses 和 vim

c - 移位扩展 ASCII 码

c++ - osx lion 上的 unsigned char 限制为 127?

c - 从命令行读取十六进制到 unsigned char 和 unsigned Short

C: x = !y 是什么意思?

c - 将unsigned char数组转换为uint8_t数组?

linux - rsync 通配符在 bash 脚本中不起作用