/*******************************************************************************
|
* File Name : MsgPack.h
|
* Description :
|
* Created on : 2019Äê11ÔÂ5ÈÕ
|
* Author : www.hido-studio.com
|
*******************************************************************************/
|
|
#ifndef APL_MSGPACK_H_
|
#define APL_MSGPACK_H_
|
/*******************************************************************************
|
* Include Files *
|
*******************************************************************************/
|
#include "HIDO_Typedef.h"
|
#include "Module.h"
|
|
/*******************************************************************************
|
* Macro *
|
*******************************************************************************/
|
#define MSG_FLAG(n) (1 << (n))
|
|
/*******************************************************************************
|
* Type Definition *
|
*******************************************************************************/
|
typedef struct
|
{
|
HIDO_UINT8 m_au8Data[1024];
|
HIDO_UINT32 m_u32Len;
|
} ST_MsgPackage;
|
|
typedef enum
|
{
|
MSG_TYPE_ACK,
|
MSG_TYPE_PARAM_CONFIG,
|
MSG_TYPE_MODBUS_CONFIG,
|
MSG_TYPE_POWER_CTRL,
|
MSG_TYPE_CLEAN_DEVICE,
|
MSG_TYPE_SWITCH,
|
MSG_TYPE_UPDATE,
|
} E_MsgType;
|
|
typedef struct
|
{
|
#define FENCE_FLAG_1 MSG_FLAG(0)
|
#define FENCE_FLAG_2 MSG_FLAG(1)
|
#define FENCE_FLAG_3 MSG_FLAG(2)
|
#define FENCE_FLAG_4 MSG_FLAG(3)
|
#define FENCE_FLAG_5 MSG_FLAG(4)
|
|
HIDO_UINT32 m_u32Flag;
|
HIDO_DOUBLE m_dLat;
|
HIDO_DOUBLE m_dLon;
|
HIDO_FLOAT m_fSpeed;
|
HIDO_FLOAT m_fDir;
|
} ST_LocationData;
|
|
typedef struct{
|
|
HIDO_FLOAT accel_x;
|
HIDO_FLOAT accel_y;
|
HIDO_FLOAT accel_z;
|
HIDO_FLOAT gyro_x;
|
HIDO_FLOAT gyro_y;
|
HIDO_FLOAT gyro_z;
|
HIDO_FLOAT roll;
|
HIDO_FLOAT pitch;
|
HIDO_FLOAT yaw;
|
} ST_IMUData;
|
|
typedef struct
|
{
|
HIDO_CHAR msg_id[64];
|
HIDO_UINT64 timestamp;
|
HIDO_CHAR device_id[64];
|
HIDO_CHAR data_type[16];
|
HIDO_CHAR gps_raw[256];
|
ST_IMUData imu_data;
|
} ST_ReportGps;
|
|
typedef struct
|
{
|
#define FLAG_LOCATION MSG_FLAG(0)
|
#define FLAG_STATUS MSG_FLAG(1)
|
#define FLAG_TEMP MSG_FLAG(2)
|
#define FLAG_CHARGE_STATE MSG_FLAG(3)
|
#define FLAG_BATTERY_LEVEL MSG_FLAG(4)
|
#define FLAG_CHARGE_VOLTAGE MSG_FLAG(5)
|
#define FLAG_SAFE_CODE MSG_FLAG(6)
|
#define FLAG_FAULT_CODE MSG_FLAG(7)
|
|
HIDO_UINT32 m_u32Flag;
|
ST_LocationData m_stLocation;
|
HIDO_UINT32 m_u32Status;
|
HIDO_FLOAT m_fTemp;
|
HIDO_UINT8 m_u8ChargeState;
|
HIDO_UINT8 m_u8BatteryLevel;
|
HIDO_FLOAT m_fChargeVoltage;
|
HIDO_UINT32 m_u32SafeCode;
|
HIDO_UINT32 m_u32FaultCode;
|
} ST_ReportData;
|
|
|
typedef struct
|
{
|
#define F_CNT 5
|
|
#define FLAG_B MSG_FLAG(0)
|
#define FLAG_DUF MSG_FLAG(1)
|
#define FLAG_FxE(n) MSG_FLAG(2 + (n))
|
#define FLAG_FxB(n) MSG_FLAG(7 + (n))
|
#define FLAG_L MSG_FLAG(12)
|
#define FLAG_V MSG_FLAG(13)
|
#define FLAG_URL MSG_FLAG(14)
|
#define FLAG_MD5 MSG_FLAG(15)
|
#define FLAG_VSU MSG_FLAG(16)
|
#define FLAG_IP MSG_FLAG(17)
|
#define FLAG_VT MSG_FLAG(18)
|
#define FLAG_FCT MSG_FLAG(19)
|
#define FLAG_ATX MSG_FLAG(20)
|
#define FLAG_ATY MSG_FLAG(21)
|
#define FLAG_ATZ MSG_FLAG(22)
|
#define FLAG_AZMT MSG_FLAG(23)
|
|
HIDO_UINT32 m_u32Flag;
|
HIDO_UINT32 m_u32B;
|
HIDO_UINT32 m_u32DUF; /* ÖÜÆÚ£¬µ¥Î»·ÖÖÓ */
|
HIDO_UINT32 m_au32FxE[5]; /* ÇøÓòxʹÄÜ */
|
HIDO_UINT32 m_au32FxBCnt[5]; /* ÇøÓòxµã¸öÊý */
|
HIDO_UINT32 m_u32L; /* É豸±¨Ê§ÖÃλ */
|
HIDO_CHAR m_acV[16]; /* Ó²¼þÉ豸Զ³ÌÉý¼¶ */
|
HIDO_CHAR m_acURL[128];
|
HIDO_CHAR m_acMD5[36];
|
HIDO_UINT32 m_u32VSU; /**/
|
HIDO_CHAR m_acIP[32];
|
HIDO_FLOAT m_fVT; /* ËÙ¶ÈãÐÖµ */
|
HIDO_UINT32 m_u32FCT; /* ƵÂʱ仯ãÐÖµ */
|
HIDO_UINT32 m_u32ATX; /* XÖá¼ÓËÙ¶ÈãÐÖµ */
|
HIDO_UINT32 m_u32ATY; /* YÖá¼ÓËÙ¶ÈãÐÖµ */
|
HIDO_UINT32 m_u32ATZ; /* ZÖá¼ÓËÙ¶ÈãÐÖµ */
|
HIDO_UINT32 m_u32AZMT; /* ZÖá¼ÓÕ𶯷ù¶ÈãÐÖµ */
|
|
} ST_CtrlData;
|
|
/*******************************************************************************
|
* Global Function *
|
*******************************************************************************/
|
HIDO_INT32 MsgPack_ReportGps(ST_MsgPackage *_pstPackage, ST_ReportGps *_pstReportGps);
|
HIDO_INT32 MsgPack_Parse(HIDO_CHAR *_pcJson, ST_CtrlData *_pstCtrl);
|
|
#endif /* APL_MSGPACK_H_ */
|