/******************************************************************************* * 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; }