/*******************************************************************************
|
* File Name : MsgPack.c
|
* Description :
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Include Files *
|
*******************************************************************************/
|
#include "MsgPack.h"
|
|
#include "stdio.h"
|
#include "string.h"
|
#include "Module.h"
|
#include "HIDO_Util.h"
|
#include "HIDO_Debug.h"
|
|
/*******************************************************************************
|
* Macro *
|
*******************************************************************************/
|
#define MSG_PACK(package, len, ...) \
|
len += HIDO_UtilSnprintf((HIDO_CHAR *)(package)->m_au8Data + (len), sizeof(package->m_au8Data) - (len), __VA_ARGS__);
|
|
/*******************************************************************************
|
* Type Definition *
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Local Variable *
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Local Function Declaration *
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Local Function *
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Global Function *
|
*******************************************************************************/
|
|
/*******************************************************************************
|
* Function Name : MsgPack_ReportGps
|
* Description :
|
* Input :
|
* Output :
|
* Return :
|
*******************************************************************************/
|
HIDO_INT32 MsgPack_ReportGps(ST_MsgPackage *_pstPackage, ST_ReportGps *_pstReportGps)
|
{
|
HIDO_UINT32 u32Len = 0;
|
|
if (HIDO_NULL == _pstReportGps)
|
{
|
return HIDO_ERR;
|
}
|
|
/* ¹¹Ôìjson */
|
MSG_PACK(_pstPackage, u32Len, "{");
|
MSG_PACK(_pstPackage, u32Len, "\"msg_id\":\"%s\"", _pstReportGps->msg_id);
|
MSG_PACK(_pstPackage, u32Len, ",\"timestamp\":%llu", _pstReportGps->timestamp);
|
MSG_PACK(_pstPackage, u32Len, ",\"device_id\":\"%s\"", _pstReportGps->device_id);
|
MSG_PACK(_pstPackage, u32Len, ",\"data_type\":\"%s\"", _pstReportGps->data_type);
|
MSG_PACK(_pstPackage, u32Len, ",\"gps_raw\":\"%s\"", _pstReportGps->gps_raw);
|
MSG_PACK(_pstPackage, u32Len, ",\"imu_data\":{", _pstReportGps->gps_raw);
|
MSG_PACK(_pstPackage, u32Len, ",\"accel_x\":%.2f", _pstReportGps->imu_data.accel_x);
|
MSG_PACK(_pstPackage, u32Len, ",\"accel_y\":%.2f", _pstReportGps->imu_data.accel_y);
|
MSG_PACK(_pstPackage, u32Len, ",\"accel_z\":%.2f", _pstReportGps->imu_data.accel_z);
|
MSG_PACK(_pstPackage, u32Len, ",\"gyro_x\":%.2f", _pstReportGps->imu_data.gyro_x);
|
MSG_PACK(_pstPackage, u32Len, ",\"gyro_y\":%.2f", _pstReportGps->imu_data.gyro_y);
|
MSG_PACK(_pstPackage, u32Len, ",\"gyro_z\":%.2f", _pstReportGps->imu_data.gyro_z);
|
MSG_PACK(_pstPackage, u32Len, ",\"roll\":%.1f", _pstReportGps->imu_data.roll);
|
MSG_PACK(_pstPackage, u32Len, ",\"pitch\":%.1f", _pstReportGps->imu_data.pitch);
|
MSG_PACK(_pstPackage, u32Len, ",\"yaw\":%.1f", _pstReportGps->imu_data.yaw);
|
MSG_PACK(_pstPackage, u32Len, "}");
|
MSG_PACK(_pstPackage, u32Len, "}");
|
_pstPackage->m_u32Len = u32Len;
|
|
return u32Len;
|
}
|
|
/*******************************************************************************
|
* Function Name : MsgPack_Parse
|
* Description :
|
* Input :
|
* Output :
|
* Return :
|
*******************************************************************************/
|
HIDO_INT32 MsgPack_Parse(HIDO_CHAR *_pcJson, ST_CtrlData *_pstCtrl)
|
{
|
return HIDO_OK;
|
}
|