From 67ca69985af9109a0603a1cde71f21b940c059ff Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期四, 15 五月 2025 09:12:53 +0800
Subject: [PATCH] 完全将免布线标签代码移植过来版本

---
 keil/include/components/hido/Include/HIDO_FIFO.h |   85 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 85 insertions(+), 0 deletions(-)

diff --git a/keil/include/components/hido/Include/HIDO_FIFO.h b/keil/include/components/hido/Include/HIDO_FIFO.h
new file mode 100644
index 0000000..78ecb13
--- /dev/null
+++ b/keil/include/components/hido/Include/HIDO_FIFO.h
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * File Name         : HIDO_FIFO.h
+ * Description       :
+ * Created on        : 2018年4月26日
+ * Author            : www.hido-studio.com
+ *******************************************************************************/
+
+#ifndef HIDOLIBRARY_FIFO_HIDO_FIFO_H_
+#define HIDOLIBRARY_FIFO_HIDO_FIFO_H_
+/*******************************************************************************
+ *                              Include Files                                  *
+ *******************************************************************************/
+#include "HIDO_TypeDef.h"
+
+/*******************************************************************************
+ *                                  Macro                                      *
+ *******************************************************************************/
+
+/*******************************************************************************
+ *                             Type Definition                                 *
+ *******************************************************************************/
+typedef struct
+{
+#define FIFO_DATA_DEL_FLAG_UNDEL           0xFF
+#define FIFO_DATA_DEL_FLAG_DEL             0xDE
+    HIDO_UINT8 m_u8DelFlag;
+#define FIFO_DATA_FLAG_USED                0xAB
+#define FIFO_DATA_FLAG_UNUSED              0xFF
+    HIDO_UINT8 m_u8Flag;                                                        /* 标记,固定为0xAB,标识已使用 */
+    HIDO_UINT8 m_u8DataLen;                                                     /* 数据长度,数据的最大长度=m_u32MemberSize-sizeof(ST_FIFOHeader) */
+
+#define FIFO_DATA_TYPE_MID                 0xAC
+#define FIFO_DATA_TYPE_END                 0xED
+    HIDO_UINT8 m_u8Type;                                                        /* 标识是都是一段数据的结束 */
+}HIDO_FIFOHeaderStruct;
+
+typedef struct FIFOStruct HIDO_FIFOStruct;
+typedef struct FIFOInitStruct HIDO_FIFOInitStruct;
+typedef HIDO_INT32 (*HIDO_FIFOReadFunc)(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32Addr, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len);
+typedef HIDO_INT32 (*HIDO_FIFOWriteFunc)(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32Addr, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len);
+typedef HIDO_INT32 (*HIDO_FIFOEraseFunc)(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32Addr);
+typedef HIDO_INT32 (*HIDO_FIFOForEachFunc)(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32Index, HIDO_VOID *_pArg);
+
+struct FIFOStruct
+{
+    HIDO_UINT16 m_u16Reserve;
+    HIDO_UINT32 m_u32SectorSize;                                                  /* 存储介质的sector大小 */
+    HIDO_UINT32 m_u32MemberSize;                                                  /* 成员大小 */
+    HIDO_UINT32 m_u32ColCount;                                                    /* 有多少列,也就是一个sector可以容纳成员的总个数 */
+    HIDO_UINT32 m_u32RowCount;                                                    /* 有多少行,也就是有多少个sector */
+
+    HIDO_UINT32 m_u32CurIndex;                                                    /* 当前索引,记录当前保存到了哪里 */
+    HIDO_UINT32 m_u32TotalCount;                                                  /* 可以存储数据的总个数,= m_u32ColCount*m_u32RowCount */
+    HIDO_UINT32 m_u32StartAddr;                                                   /* 数据保存的起始位置 */
+    HIDO_UINT32 m_u32TotalSize;                                                   /* FIFO的总大小 */
+
+    HIDO_FIFOReadFunc m_fnRead;                                                   /* 介质读取方法 */
+    HIDO_FIFOWriteFunc m_fnWrite;                                                 /* 介质写入方法 */
+    HIDO_FIFOEraseFunc m_fnErase;                                                 /* 介质擦除方法 */
+};
+
+struct FIFOInitStruct
+{
+    HIDO_UINT32 m_u32SectorSize;                                                  /* 存储介质的sector大小 */
+    HIDO_UINT32 m_u32MemberSize;                                                  /* 成员大小 */
+    HIDO_UINT32 m_u32TotalSize;                                                   /* FIFO的总大小 */
+    HIDO_UINT32 m_u32StartAddr;                                                   /* 数据保存的起始位置 */
+
+    HIDO_FIFOReadFunc m_fnRead;                                                   /* 介质读取方法 */
+    HIDO_FIFOWriteFunc m_fnWrite;                                                 /* 介质写入方法 */
+    HIDO_FIFOEraseFunc m_fnErase;                                                 /* 介质擦除方法 */
+};
+
+/*******************************************************************************
+ *                             Global Function                                 *
+ *******************************************************************************/
+HIDO_INT32 HIDO_FIFOInit(HIDO_FIFOStruct *_pstFIFO, HIDO_FIFOInitStruct *_pstInit);
+HIDO_INT32 HIDO_FIFOReadForEach(HIDO_FIFOStruct *_pstFIFO, HIDO_FIFOForEachFunc _fnForEach, HIDO_BOOL _bAsc, HIDO_VOID *_pArg);
+HIDO_INT32 HIDO_FIFOReadMember(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32ReadIndex, HIDO_FIFOHeaderStruct *_pstDataHeader, HIDO_UINT8 *_pu8Data, HIDO_UINT32 *_pu32Len);
+HIDO_INT32 HIDO_FIFODelFrontData(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 _u32FrontIndex);
+HIDO_INT32 HIDO_FIFOGetFrontData(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT32 *_pu32FrontIndex, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32DataSize, HIDO_UINT32 *_pu32Len);
+HIDO_INT32 HIDO_FIFOWrite(HIDO_FIFOStruct *_pstFIFO, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len);
+HIDO_INT32 HIDO_FIFOClean(HIDO_FIFOStruct *_pstFIFO);
+
+#endif /* HIDOLIBRARY_FIFO_HIDO_FIFO_H_ */

--
Gitblit v1.9.3