- Я использую узел 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, которую я представил, у меня есть такой результат:
Я заметил, что в «конечном узле»В программе "есть функция, которая делает это перед отправкой данных:
#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 "
Спасибо за вашу помощь:).