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