Я работаю над установлением связи между шлюзами (RPI3 + шляпа LoRa) и узлом (RPi3 + шляпа LoRa). Поскольку я хотел бы установить канал связи без TTN, я попробовал следующий пример для настройки связи между ними: https://github.com/dragino/rpi-lora-tranceiver/blob/master/dragino_lora_app/main.c
Код хорошо работает как для отправителя, так и для получателя. Это означает, что на стороне отправителя отправляемое сообщение печатается на консоли. А на стороне получателя отображается полученное сообщение.
Это хорошо работает для коротких сообщений. Тем не менее, я хотел бы отправить сообщение длиной 600 байт. Чтобы отправить это длинное сообщение, я отредактировал typedef аргумента writeBuf()
следующим образом:
static void writeBuf(byte addr, byte *value, unsigned short len) {
Я сделал это изменение, потому что byte len
ограничивал отправку сообщения 255 (из-за диапазона неподтвержденных символов, который составляет 0-255). И поэтому мне нужно было расширить этот диапазон, чтобы я мог отправить более длинное сообщение. После внесения этого изменения в консоли не печатается никаких сообщений. Цикл for в writeBuf()
начинается с 0-n, а затем с 99-n непрерывно, без отправки сообщения на консоль. Следовательно, получатель никогда не получает никакого сообщения. Я понимаю разницу между unsigned short
и unsigned char
. Однако я не могу понять разницу между unsigned short
и unsigned char
в этом контексте. Любая помощь / руководство будет высоко ценится. Я также хотел бы знать, делаю ли я правильные изменения или смотрю в правильном направлении или нет.
Спасибо