Я работаю над установлением лора-связи между шлюзом (шапка 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
в этом контексте. Любая помощь/рекомендации будут высоко оценены. Я также хотел бы знать, делаю ли я правильные изменения или смотрю в правильном направлении или нет.
Спасибо
'\n'
), но это полностью на ваше усмотрение. - person Nominal Animal   schedule 09.01.2019