From 4cdc4b3d488e15b1d6572bdcd61a2ce92d0c8c9b Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 16 五月 2025 18:13:14 +0800 Subject: [PATCH] 成功分离2个测距功能 --- keil/include/components/hido/Include/HIDO_Json.h | 132 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 132 insertions(+), 0 deletions(-) diff --git a/keil/include/components/hido/Include/HIDO_Json.h b/keil/include/components/hido/Include/HIDO_Json.h new file mode 100644 index 0000000..7790c6d --- /dev/null +++ b/keil/include/components/hido/Include/HIDO_Json.h @@ -0,0 +1,132 @@ +/******************************************************************************* + * File Name : HIDO_Json.h + * Description : + * Created on : 2019骞�5鏈�12鏃� + * Author : www.hido-studio.com + *******************************************************************************/ +#ifndef HIDO_JSON_H_ +#define HIDO_JSON_H_ + +/******************************************************************************* + * Include Files * + *******************************************************************************/ +#include "HIDO_TypeDef.h" + +/******************************************************************************* + * Macro * + *******************************************************************************/ +#define MAX_JSON_STRING_LEN 1500 +#define MAX_JSON_NODE_CNT 50 +#define MAX_JSON_ARRARY_NODE_CNT 10 + +/******************************************************************************* + * Type Definition * + *******************************************************************************/ +typedef enum +{ + HIDO_JSON_STATE_IDLE = 0, + HIDO_JSON_STATE_BEGIN, + HIDO_JSON_STATE_END, + HIDO_JSON_STATE_KEY_BEGIN, + HIDO_JSON_STATE_KEY_END, + HIDO_JSON_STATE_VALUE_BEGIN, + HIDO_JSON_STATE_VALUE_END, + HIDO_JSON_STATE_VALUE_ARRARY_BEGIN, + HIDO_JSON_STATE_VALUE_ARRARY_END, + HIDO_JSON_STATE_VALUE_STRING_BEGIN, + HIDO_JSON_STATE_VALUE_STRING_END, + HIDO_JSON_STATE_VALUE_INTEGER_BEGIN, + HIDO_JSON_STATE_VALUE_INTEGER_END, + HIDO_JSON_STATE_VALUE_DOUBLE_BEGIN, + HIDO_JSON_STATE_VALUE_DOUBLE_END, + HIDO_JSON_STATE_VALUE_JSON_BEGIN, + HIDO_JSON_STATE_VALUE_JSON_END, + HIDO_JSON_STATE_VALUE_NULL_BEGIN, + HIDO_JSON_STATE_VALUE_NULL_END, + + HIDO_JSON_STATE_LAST, +}HIDO_JsonStateEnum; + +typedef enum +{ + HIDO_JSON_TYPE_NULL, + HIDO_JSON_TYPE_INTEGER, + HIDO_JSON_TYPE_DOUBLE, + HIDO_JSON_TYPE_ARRARY, + HIDO_JSON_TYPE_STRING, + HIDO_JSON_TYPE_JSON, +}HIDO_JsonTypeEnum; + +typedef struct JsonNodeStruct +{ + HIDO_UINT32 m_u32Len; + HIDO_CHAR *m_pcPtr; +}HIDO_JsonDptr; + +struct HIDO_JsonNode; +typedef struct HIDO_JsonNode +{ + HIDO_JsonTypeEnum m_eType; + HIDO_JsonDptr m_stKey; + HIDO_JsonDptr m_stValue; + HIDO_CHAR *m_pcEnd; + struct HIDO_JsonNode *m_pstNext; +}HIDO_JsonNodeStruct; + +struct HIDO_JsonArraryNode; +typedef struct HIDO_JsonArraryNode +{ + HIDO_JsonNodeStruct *m_pstJson; + struct HIDO_JsonArraryNode *m_pstNext; +}HIDO_JsonArraryNodeStruct; + +typedef struct HIDO_Json +{ + HIDO_CHAR *m_pcJson; + HIDO_UINT32 m_u32Len; + HIDO_UINT32 m_u32RemainingSize; +}HIDO_JsonStruct; + +typedef struct JsonArrayStruct +{ + HIDO_CHAR *m_pcArray; + HIDO_UINT32 m_u32Len; + HIDO_UINT32 m_u32RemainingSize; +}HIDO_JsonArrayStruct; + +typedef struct +{ + HIDO_UINT32 m_u32Hash; + const HIDO_CHAR *m_pcString; + HIDO_JsonNodeStruct *m_pstJson; +}HIDO_JsonKeyStruct; + +/******************************************************************************* + * Global Function * + *******************************************************************************/ +HIDO_VOID HIDO_JsonInit(void); +HIDO_VOID HIDO_JsonTest(void); +HIDO_VOID HIDO_JsonNodeFree(HIDO_JsonNodeStruct *_pstJsonNode); +HIDO_VOID HIDO_JsonArrayNodeFree(HIDO_JsonArraryNodeStruct *_pstJsonArraryNode); +HIDO_JsonNodeStruct *HIDO_JsonJsonParse(HIDO_CHAR *_pcJsonString); +HIDO_JsonNodeStruct *HIDO_JsonGetValue(HIDO_JsonNodeStruct *_pstJsonNodeList, HIDO_CHAR *_pcKey); +HIDO_INT32 HIDO_JsonGetInteger(HIDO_JsonNodeStruct *_pstJsonNodeList, HIDO_CHAR *_pcKey, HIDO_INT32 *_pi32Value); +HIDO_INT32 HIDO_JsonGetFloat(HIDO_JsonNodeStruct *_pstJsonNodeList, HIDO_CHAR *_pcKey, HIDO_FLOAT *_pfValue); +HIDO_INT32 HIDO_JsonGetDouble(HIDO_JsonNodeStruct *_pstJsonNodeList, HIDO_CHAR *_pcKey, HIDO_DOUBLE *_pdValue); +HIDO_INT32 HIDO_JsonGetString(HIDO_JsonNodeStruct *_pstJsonNodeList, HIDO_CHAR *_pcKey, HIDO_CHAR **_ppcValue); +HIDO_INT32 HIDO_JsonGetJson(HIDO_JsonNodeStruct *_pstJsonNodeList, HIDO_CHAR *_pcKey, HIDO_CHAR **_ppcValue); +HIDO_INT32 HIDO_JsonGetJsonArrary(HIDO_JsonNodeStruct *_pstJsonNodeList, HIDO_CHAR *_pcKey, HIDO_JsonArraryNodeStruct **_ppstValue); +HIDO_INT32 HIDO_JsonJsonInit(HIDO_JsonStruct *_pstJsonString, HIDO_CHAR *_pcJsonStringBuf, HIDO_UINT32 _u32JsonStringBufSize); +HIDO_INT32 HIDO_JsonAddInteger(HIDO_JsonStruct *_pstJsonString, HIDO_CHAR *_pcKey, HIDO_INT32 _i32Value); +HIDO_INT32 HIDO_JsonAddString(HIDO_JsonStruct *_pstJson, const HIDO_CHAR *_pcKey, const HIDO_CHAR *_pcValue); +HIDO_INT32 HIDO_JsonAddObject(HIDO_JsonStruct *_pstJsonString, HIDO_CHAR *_pcKey, HIDO_CHAR *_pcValue); +HIDO_INT32 HIDO_JsonAddArraryBegin(HIDO_JsonStruct *_pstJson, HIDO_CHAR *_pcKey, HIDO_JsonArrayStruct *_pstJsonArrry); +HIDO_INT32 HIDO_JsonAddArraryEnd(HIDO_JsonStruct *_pstJson, HIDO_JsonArrayStruct *_pstJsonArrry); +HIDO_INT32 HIDO_JsonAddJsonBegin(HIDO_JsonStruct *_pstJsonString, HIDO_CHAR *_pcKey, HIDO_JsonStruct *_pstSubJsonString); +HIDO_INT32 HIDO_JsonAddJsonEnd(HIDO_JsonStruct *_pstJsonString, HIDO_JsonStruct *_pstSubJsonString); +HIDO_INT32 HIDO_JsonAddIntegerArrary(HIDO_JsonStruct *_pstJsonString, HIDO_CHAR *_pcKey, HIDO_INT32 *_pi32Value, HIDO_UINT32 _u32ArraryCnt); +HIDO_INT32 HIDO_JsonAddStringArrary(HIDO_JsonStruct *_pstJsonString, HIDO_CHAR *_pcKey, HIDO_CHAR **_ppcValue, HIDO_UINT32 _u32ArraryCnt); +HIDO_INT32 HIDO_JsonAddObjectArrary(HIDO_JsonStruct *_pstJsonString, HIDO_CHAR *_pcKey, HIDO_CHAR **_ppcValue, HIDO_UINT32 _u32ArraryCnt); +HIDO_INT32 HIDO_JsonGetIntegerArrary(HIDO_JsonNodeStruct *_pstJsonNodeList, HIDO_CHAR *_pcKey, HIDO_INT32 *_pi32Value, HIDO_UINT32 *_pu32ValueCnt); + +#endif /* HIDO_JSON_H_ */ -- Gitblit v1.9.3