Кодек полезной нагрузки Base64 (конечный узел B-L072Z-LRWAN1) - PullRequest
0 голосов
/ 22 января 2019
  • Я использую узел 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 instancele», я не могу декодировать данные с помощью моей функции php, которую я представил, у меня есть такой результат: result of decoding of two exemple

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

#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 "

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

...