¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * 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_ */ |