00001 #ifndef __SHELL_H__ 00002 #define __SHELL_H__ 00003 00004 #define ASCII_NUL 0x00 00005 #define ASCII_SOH 0x01 00006 #define ASCII_STX 0x02 00007 #define ASCII_ETX 0x03 00008 #define ASCII_EOT 0x04 00009 #define ASCII_ENQ 0x05 00010 #define ASCII_ACK 0x06 00011 #define ASCII_BEL 0x07 00012 #define ASCII_BS 0x08 00013 #define ASCII_HT 0x09 00014 #define ASCII_LF 0x0a 00015 #define ASCII_VT 0x0b 00016 #define ASCII_FF 0x0c 00017 #define ASCII_CR 0x0d 00018 #define ASCII_SO 0x0e 00019 #define ASCII_SI 0x0f 00020 #define ASCII_DLE 0x10 00021 #define ASCII_DC1 0x11 00022 #define ASCII_DC2 0x12 00023 #define ASCII_DC3 0x13 00024 #define ASCII_DC4 0x14 00025 #define ASCII_NAK 0x15 00026 #define ASCII_SYN 0x26 00027 #define ASCII_ETB 0x17 00028 #define ASCII_CAN 0x18 00029 #define ASCII_EM 0x19 00030 #define ASCII_SUB 0x1a 00031 #define ASCII_ESC 0x1b 00032 #define ASCII_FS 0x1c 00033 #define ASCII_GS 0x1d 00034 #define ASCII_RS 0x1e 00035 #define ASCII_US 0x1f 00036 #define ASCII_SP 0x20 00037 #define ASCII_DEL 0x7f 00038 //#define ASCII_SQUARE 0x80 00039 00040 #define KEY_HOME 0x48 00041 #define KEY_END 0x4b 00042 #define KEY_PAGE_UP 0x4d 00043 #define KEY_PAGE_DOWN 0x32 00044 #define KEY_PAGE_DOWN2 0x4a 00045 #define KEY_LEFT_ARROW 0x44 00046 #define KEY_RIGHT_ARROW 0x43 00047 #define KEY_UP_ARROW 0x41 00048 #define KEY_DOWN_ARROW 0x42 00049 00050 typedef struct{ 00051 U8 State; 00052 U8 Status; 00053 U8 ExecuteState; 00054 U8 ExecuteItem; 00055 U8 Exit; 00056 }SHELL_CONTROL; 00057 00058 #define ArgumentIdleState 0 00059 #define ArgumentInitialState 1 00060 #define ArgumentRxState 2 00061 00062 #define MeetEscKey 0x01 00063 #define HasEscXkey 0x02 00064 #define HasPageDown 0x04 00065 00066 #define ARGUMENT_ARGV_MAX 10 00067 #define ARGUMENT_INDEX_MAX 250 00068 typedef struct{ 00069 unsigned char State; 00070 unsigned char Status; 00071 unsigned char HasInput; 00072 unsigned char Insert; 00073 unsigned char *pArgv[ARGUMENT_ARGV_MAX]; 00074 unsigned char Argc; 00075 unsigned char Index; 00076 unsigned char Get; 00077 unsigned char Put; 00078 unsigned char Data[ARGUMENT_INDEX_MAX]; 00079 }ARGUMENT_CONTROL; 00080 00081 extern ARGUMENT_CONTROL ArgumentCtrl; 00082 extern SHELL_CONTROL ShellCtrl; 00083 void F_ShellInit(void); 00084 void F_ShellSvc(void); 00085 void F_ShellArgumentInitial(void); 00086 void F_ShellArgumentSvc(unsigned char Data); 00087 void F_ShellArgumentParser(void); 00088 void F_ShellArgumentExecute(unsigned char **Argv,unsigned char Argc); 00089 unsigned char F_ShellArgumentCheck(void); 00090 void F_ShellArgumentReset(void); 00091 void F_ShellArgumentReceive(unsigned char **Argv,unsigned char Argc); 00092 void F_ShellArgumentBs(void); 00093 void F_ShellArgumentDel(void); 00094 void F_ShellArgumentKeyPut(unsigned char); 00095 void F_ShellArgumentIns(void); 00096 void F_ShellArgumentHome(void); 00097 void F_ShellArgumentEnd(void); 00098 void F_ShellArgumentPageUp(void); 00099 void F_ShellArgumentPageDown(void); 00100 void F_ShellArgumentArrowUp(void); 00101 void F_ShellArgumentArrowDown(void); 00102 void F_ShellArgumentArrowLeft(void); 00103 void F_ShellArgumentArrowRight(void); 00104 00105 #endif 00106
1.5.9