yincheng.zhong
2025-12-13 3c2021441490ae9b93f7a2ef0f379909b589edd9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*******************************************************************************
 * 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;
}