Кодек полезной нагрузки Base64 (конечный узел B-L072Z-LRWAN1)

  • Я использую узел B-L072Z-LRWAN1 с программным обеспечением " I-CUBE-LRWAN".
  • Я создал свою собственную сеть lorawan благодаря проекту loraserver.io, все серверы lora и сервер приложений lora написаны на языке go, поэтому Go по умолчанию кодирует байтовый массив в base64 при кодировании объекта в JSON.

  • когда я использую "пример ведомого AT", я могу получить правильные данные из моего узла на мою страницу php, которые декодируют массив JSON, а затем я использую эту функцию для декодирования base64:

    $payload = file_get_contents('php://input');
    $var = json_decode($payload,true);
    .
    .
    .
    $data64    = $var['data'];
    $data = base64_decode($data64); // decode function
    

Но когда я использую "Пример End_Node", я не могу декодировать данные с помощью моей функции php, которую я представил, у меня есть такой результат:

Я заметил, что в "программе конечного узла" есть функция, которая делает это перед отправкой данных:

#define LORAWAN_APP_DATA_BUFF_SIZE            64
static uint8_t AppDataBuff[LORAWAN_APP_DATA_BUFF_SIZE];
lora_AppData_t AppData={ AppDataBuff,  0 ,0 };
temperature = 20;    /* in °C * 100 */
pressure    = 30;  /* in hPa / 10 */
humidity    = 40;        /* in %*10     */
uint32_t i = 0;
AppData.Buff[i++] = AppLedStateOn;
AppData.Buff[i++] = ( pressure >> 8 ) & 0xFF;
AppData.Buff[i++] = pressure & 0xFF;
AppData.Buff[i++] = ( temperature >> 8 ) & 0xFF;
AppData.Buff[i++] = temperature & 0xFF;
AppData.Buff[i++] = ( humidity >> 8 ) & 0xFF;
AppData.Buff[i++] = humidity & 0xFF;
AppData.BuffSize = i;
LORA_send( &AppData, LORAWAN_DEFAULT_CONFIRM_MSG_STATE);

эта тема для тех, кто знает, как данные кодируются в обеих версиях " I-CUBE-LRWAN"

Спасибо за вашу помощь:).

0 ответов

Другие вопросы по тегам