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_ATLite.h | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 110 insertions(+), 0 deletions(-) diff --git a/keil/include/components/hido/Include/HIDO_ATLite.h b/keil/include/components/hido/Include/HIDO_ATLite.h new file mode 100644 index 0000000..99683c9 --- /dev/null +++ b/keil/include/components/hido/Include/HIDO_ATLite.h @@ -0,0 +1,110 @@ +/* + * HIDO_ATLite.h + * + * Created on: 2017年9月5日 + * Author: YIYI + */ + +#ifndef _HIDO_ATLITE_H_ +#define _HIDO_ATLITE_H_ + +#include "HIDO_TypeDef.h" +#include "HIDO_FSM.h" + +/* 执行结果描述 */ +typedef enum +{ + HIDO_AT_EVENT_OK = HIDO_EVENT_EXIT + 1, /* 执行成功 */ + HIDO_AT_EVENT_ERROR, /* 执行失败 */ + HIDO_AT_EVENT_TIMEOUT, /* 执行超时 */ + HIDO_AT_EVENT_SEND_ERROR, /* 发送失败 */ + HIDO_AT_EVENT_LAST, +}HIDO_ATEventEnum; + +typedef struct HIDO_ATLiteDevice HIDO_ATLiteDeviceStruct; +typedef struct HIDO_ATLiteDeviceInitStruct HIDO_ATLiteDeviceInitStruct; + +/* AT指令集描述 */ +typedef struct HIDO_ATLiteCmdSet +{ + const HIDO_CHAR *m_pcCmd; + HIDO_UINT32 m_u32CmdEvent; +}HIDO_ATLiteCmdSetStruct; + +typedef HIDO_INT32 (*HIDO_ATLiteGetcFunc)(HIDO_ATLiteDeviceStruct *, HIDO_CHAR *); +typedef HIDO_INT32 (*HIDO_ATLiteReadLineFunc)(HIDO_ATLiteDeviceStruct *); +typedef HIDO_INT32 (*HIDO_ATLiteOutputFunc)(HIDO_ATLiteDeviceStruct *, HIDO_UINT8 *, HIDO_UINT32 ); + +#define AT_READ_CHAR_LF 0x0A +#define AT_READ_CHAR_CR 0x0D + +typedef enum +{ + AT_RAED_FLAG_NONE = 0, + AT_RAED_FLAG_GET_CR, + AT_RAED_FLAG_GET_LF, +}HIDO_ATReadFlagEnum; + +/* 驱动初始化描述 */ +struct HIDO_ATLiteDeviceInitStruct +{ + HIDO_FSMStruct *m_pstFSM; + const HIDO_ATLiteCmdSetStruct *m_pstAtSets; /* 指令集首地址 */ + HIDO_UINT32 m_u32AtSetsCount; /* 指令集个数 */ + HIDO_ATLiteGetcFunc m_fnGetc; + HIDO_ATLiteReadLineFunc m_fnReadLine; + HIDO_ATLiteOutputFunc m_fnOutput; + HIDO_CHAR *m_pcSendBuf; + HIDO_UINT32 m_u32SendBufSize; + HIDO_CHAR *m_pcLineBuf; + HIDO_UINT32 m_u32LineBufSize; + + HIDO_VOID *m_pUserData; +}; + +/* 驱动方法描述 */ +struct HIDO_ATLiteDevice +{ + HIDO_ATLiteDeviceStruct *m_pstNext; + const HIDO_ATLiteCmdSetStruct *m_pstAtSets; /* 指令集首地址 */ + HIDO_UINT32 m_u32AtSetsCount; /* 指令集个数 */ + + HIDO_ATLiteGetcFunc m_fnGetc; + HIDO_ATLiteReadLineFunc m_fnReadLine; + HIDO_ATLiteOutputFunc m_fnOutput; + + HIDO_CHAR *m_pcSendBuf; + HIDO_UINT32 m_u32SendBufSize; + HIDO_UINT32 m_u32SendLen; + + HIDO_CHAR *m_pcLineBuf; + HIDO_UINT32 m_u32LineBufSize; + HIDO_UINT32 m_u32LineLen; + HIDO_ATReadFlagEnum m_eLineReadFlag; + + HIDO_VOID *m_pUserData; + HIDO_UINT32 m_u32TimerID; + HIDO_FSMStruct *m_pstFSM; + +#define HIDO_AT_LITE_MAX_CMD_COUNT 64 /* 最大AT指令个数 */ +#define HIDO_AT_LITE_MATCH_FLAG_SET 0x01 /* 匹配标记被设置 */ +#define HIDO_AT_LITE_MATCH_FLAG_CLEAR 0x00 /* 匹配标记被清空 */ +#define HIDO_AT_LITE_MATCH_END_CHAR '\0' /* 匹配结束字符 */ + + HIDO_UINT8 m_au8MatchFlag[HIDO_AT_LITE_MAX_CMD_COUNT]; +}; + +HIDO_VOID HIDO_ATLiteRecvReset(HIDO_ATLiteDeviceStruct *_pstATDevice); +HIDO_VOID HIDO_ATLiteEvent(HIDO_ATLiteDeviceStruct *_pstATDevice, HIDO_UINT32 _u32Event, HIDO_VOID *_pArg); +HIDO_INT32 HIDO_ATLiteCmdSend(HIDO_ATLiteDeviceStruct *_pstATDevice, HIDO_UINT32 _u32TimeoutMs, const HIDO_CHAR *_pcCmdFmt, ...); +HIDO_INT32 HIDO_ATLiteDataSend(HIDO_ATLiteDeviceStruct *_pstATDevice, HIDO_UINT32 _u32TimeoutMs, HIDO_UINT8 *_pu8Data, HIDO_UINT32 _u32Len); +HIDO_INT32 HIDO_ATLiteCmdSendOver(HIDO_ATLiteDeviceStruct *_pstATDevice); +HIDO_VOID HIDO_ATLitePoll(void); +HIDO_VOID HIDO_ATLiteClean(HIDO_ATLiteDeviceStruct *_pstATDevice); +HIDO_VOID HIDO_ATLiteDebugOn(void); +HIDO_VOID HIDO_ATLiteDebugOff(void); +HIDO_BOOL HIDO_ATLiteGetDebugFlag(void); +HIDO_INT32 HIDO_ATLiteDeviceInit(HIDO_ATLiteDeviceStruct *_pstDevice, HIDO_ATLiteDeviceInitStruct *_pstInit); +HIDO_INT32 HIDO_ATLiteDeviceRegister(HIDO_ATLiteDeviceStruct *_pstDevice); + +#endif /* _HIDO_ATLITE_H_ */ -- Gitblit v1.9.3