由于项目loraserver.io,我创建了自己的lorawan网络,所有lora服务器和lora应用服务器均使用go语言编码,因此,在将对象编码为JSON时,默认情况下Go会将字节数组编码为base64
当我使用“ AT slave slave exemple”时,我可以从我的点头到我的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 exemple”时,我无法使用我已经存在的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”中对数据进行编码的人
感谢您的帮助:)。