2017-02-03 3 views
0

Мне удалось получить узел для связи с Android-приложением. Сообщение отправляется от узла к шлюзу. Используя node-red, шлюз публикует сообщение для брокера mqtt, и я подписываюсь на нужную тему, чтобы получить это сообщение в своем приложении для Android.Расшифровка полезной нагрузки msg, проходящая через шлюз шлюза lorawan multitech

Единственная проблема, с которой я сталкиваюсь сейчас, это то, что я никогда не понимал, что msg закодирован, и теперь я совсем потерялся. Я получаю массив байтов на стороне приложения, и я не уверен, что следующий шаг, который я должен предпринять, чтобы читать это сообщение.

This is the kind of payload I'm getting

Debug output for received message

Спасибо за помощь!

+0

Вы можете обновить вопросы с некоторыми примерами данных, чтобы мы знали, с чем мы работаем. – hardillb

ответ

0

Фактически вы получаете байты от Node-Red. Вы можете либо преобразовать полученные байты в String на Android, либо изменить тип данных вашего входного узла лоры от Bytes до UTF-8.

enter image description here

+0

Знаете ли вы, есть ли простой способ конвертировать байты или UTF-8 в строку на Android? Или, может быть, есть ли способ сделать это прямо на узловом краю? Большое спасибо за ответ, вы спасаете меня снова! – lhbortho

+0

Добро пожаловать! Было бы здорово, если бы вы могли опубликовать несколько примеров данных, полученных в Android. –

+0

Я добавил пример полезной нагрузки, которую я получаю в вопросе. – lhbortho

0

У меня есть функция, чтобы декодировать его:

var x = Buffer.from(msg.payload.raw,"base64").toString() 
    msg.Decrypted = parseFloat(x) 
    return msg; 

В этом Instructable я объяснил, как декодировать сообщения Lora в узле красного https://www.instructables.com/id/Lora-Temperature-Dashboard/

Смежные вопросы