⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cli.h

📁 自动联想命令行处理代码
💻 H
字号:
#ifndef __CLI_H_
#define __CLI_H_

#define K_ENTER   13
#define K_ESC     27
#define K_CTRL_W  23
#define K_CTRL_X  24

enum COMMAND_TYPE
{
    COMMAND_TYPE_KEY = 1,
    COMMAND_TYPE_ULONG,
    COMMAND_TYPE_LONG,
    COMMAND_TYPE_STRING,
    COMMAND_TYPE_IP,
    COMMAND_TYPE_MASK,
    COMMAND_TYPE_MAC,
    COMMAND_TYPE_HEX,
    COMMAND_TYPE_DATE,
    COMMAND_TYPE_TIME,
    COMMAND_TYPE_FLOAT
};

enum SEARCH_MODE
{
    SEARCH_PART,
    SEARCH_FULL
};

#define COMMAND_PARA_NUM 10         // max keyword per command
#define COMMAND_PARA_LEN 20         // max keyword len per command

struct CommandElement
{
    char *CmdKey;                   // node command hint pointer
    char *Help;                     // node command help pointer
    char *Input;                    // node current input buffer pointer

    struct CommandElement *Down;    // down leaf pointer
    struct CommandElement *Right;   // right leaf pointer

    unsigned char Type;             // node type
    unsigned char CmdValue;         // node command value
    unsigned char rev[2];
};

typedef struct CommandElement CommandNode;
typedef struct CommandElement* pCommandNode;

CommandNode *CLI_SearchFirst( CommandNode *p, char *str, unsigned char part );
CommandNode *CLI_SearchNext( CommandNode *p, char *str, unsigned char part );
unsigned char CLI_GetLine( char *str, unsigned char len, unsigned char pos, unsigned char mode, unsigned char *mkey );
unsigned char CLI_AddCommandLine( CommandNode **cmd );
unsigned char CLI_GetCommandLine( unsigned char *command );
char *CLI_GetCommandKey( unsigned char num );
char *CLI_GetCommandName( unsigned char num );
void CLI_ListHelp( void );
void CLI_ListTree( CommandNode *phead, unsigned char pos );

unsigned char VerifyIPAddress( char *str );
unsigned char VerifyTime( char *str );
unsigned char VerifyDate( char *str );

enum CLI_WHICH_COMMAND
{
    CLI_BACKWORD = 10,
    CLI_FORWORD,

    CLI_SHOWDATE,
    CLI_SHOWTIME,
    CLI_SHOWHARDWARE,
    CLI_SHOWSOFTWARE,
    CLI_SHOWBAUDRATE,
    CLI_SHOWIP,
    CLI_SHOWHELP,

    CLI_SETTIME,
    CLI_SETDATE,
    CLI_SETIPADDRESS,
    CLI_SETMAC,
    CLI_SETBAUDRATE,

    CLI_LOADTFTP,
    CLI_LOADXMODEM,
    CLI_LOADPATTFTP,
    CLI_LOADPATXMODEM,

    CLI_LOADBASICXMODEM, 
    CLI_LOADBASICTFTP,   
    CLI_LOADECTENDXMODEM,
    CLI_LOADEXTENDTFTP,

	CLI_BACKUPTFTP,
	CLI_BACKUPXMODEM,

    CLI_COPY,

    CLI_REBOOT,
    CLI_RUN,
    CLI_GO,
    CLI_READMEMORY,
    CLI_WRITEMEMORY,
    CLI_DISPMEM
};

extern void CLI_MAIN( void );

extern void CLI_SetProc( unsigned char key );
extern void CLI_SetTimeProc( void );
extern void CLI_SetDateProc( void );
extern void CLI_SetIPProc( void );
extern void CLI_SetMACProc( void );
extern void CLI_SetBaudrateProc( void );

extern void CLI_ShowProc( unsigned char key );
extern void CLI_ShowDateProc( void );
extern void CLI_ShowTimeProc( void );
extern void CLI_ShowVerHardProc( void );
extern void CLI_ShowVerSoftProc( void );
extern void CLI_ShowBaudRateProc( void );
extern void CLI_ShowIpProc( void );

extern void CLI_LoadProc( unsigned char key );
extern void CLI_LoadProgTftpProc( void );
extern void CLI_LoadProgXmodemProc( void );
extern void CLI_LoadPatchTftpProc( void );
extern void CLI_LoadPatchXmodemProc( void );

extern void CLI_LoadBasicTftpProc( void );
extern void CLI_LoadBasicXmodemProc( void );
extern void CLI_LoadExtendTftpProc( void );
extern void CLI_LoadExtendXmodemProc( void );

extern void CLI_BackupProc( unsigned char key );
extern void CLI_BackupXmodemProc( void );
extern void CLI_BackupTftpProc( void );

extern unsigned long CLI_LoadToRam( unsigned char *p );
extern unsigned long CLI_LoadBin( unsigned char *start_addr, unsigned long dwAllowedMem );

extern void CLI_BurnProc( unsigned char key );
extern void BurnFlash( unsigned short *dst, unsigned short *src, unsigned long size );

extern void CLI_SystemProc( unsigned char key );
extern void CLI_RebootProc( void );
extern void CLI_RunProc( void );
extern void CLI_GoProc( void );
extern void CLI_ReadMemProc( void );
extern void CLI_WriteMemProc( void );
extern void CLI_DispMemProc( void );

extern void CLI_CopyProc( void );

extern void CLI_DispMem( unsigned char *addr );

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -