/*******************************************************************************
|
* 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_ */
|