/******************************************************************************* * File Name : HIDO_Input.h * Description : * Created on : 2018Äê4ÔÂ26ÈÕ * Author : www.hido-studio.com *******************************************************************************/ #ifndef _INPUT_H_ #define _INPUT_H_ /******************************************************************************* * Include Files * *******************************************************************************/ #include "HIDO_TypeDef.h" /******************************************************************************* * Macro * *******************************************************************************/ #define CMD_LENGTH 100 #define HISTORY_MAX_NUM 10 /******************************************************************************* * Type Definition * *******************************************************************************/ typedef enum { INPUT_LOGIN_STATE_USERNAME, INPUT_LOGIN_STATE_PASSWORD, INPUT_LOGIN_STATE_SUCCESS, }HIDO_InputLoginStateEnum; typedef struct InputStruct { struct InputStruct *m_pstNext; HIDO_UINT8 m_u8DirectionState; HIDO_UINT8 m_u8InputState; HIDO_InputLoginStateEnum m_eLoginState; HIDO_UINT32 m_u32LastInputTick; HIDO_CHAR m_acInputUserName[16]; HIDO_CHAR m_acInputPassWord[64]; HIDO_UINT32 m_u32CmdLen; HIDO_INT32 m_i32CmdIndex; HIDO_UINT32 m_u32CmdTabLen; HIDO_INT32 m_i32CmdTabIndex; HIDO_UINT32 m_u32CmdTabChange; HIDO_UINT32 m_u32HistoryReadIndex; HIDO_INT32 m_i32HistoryWriteIndex; HIDO_UINT32 m_u32HistoryCnt; HIDO_CHAR m_acCmdBuf[CMD_LENGTH]; HIDO_CHAR m_acCmdTabBuf[CMD_LENGTH]; HIDO_CHAR m_acHistoryList[HISTORY_MAX_NUM][CMD_LENGTH]; HIDO_CHAR m_acHistoryExchange[CMD_LENGTH]; HIDO_INT32 (*m_fnPrintf)(const HIDO_CHAR *_pcFmt, ...); HIDO_INT32 (*m_fnPuts)(const HIDO_CHAR *); HIDO_INT32 (*m_fnPutc)(HIDO_UINT8); HIDO_INT32 (*m_fnGetc)(HIDO_UINT8 *); }HIDO_InputStruct; /******************************************************************************* * Global Function * *******************************************************************************/ HIDO_INT32 HIDO_InputUserVerify(HIDO_CHAR *_pcUserName, HIDO_CHAR *_pcPassWord); HIDO_VOID HIDO_InputRegister(HIDO_InputStruct *_pstInput); HIDO_BOOL HIDO_InputIsUserLogin(void); HIDO_VOID HIDO_InputPoll(void); HIDO_INT32 HIDO_InputUserHello(HIDO_CHAR *_pcBuf, HIDO_UINT32 _u32BufSize); #endif /* _INPUT_H_ */