增加命令执行的返回值
Change-Id: Id5d21241846007a93c97c4e76acd2b14b7d26b7c
This commit is contained in:
parent
c3f12c0334
commit
7c8a4b2f85
|
@ -86,15 +86,16 @@ void loop() {
|
|||
#### 使用说明
|
||||
##### 注册自定义命令
|
||||
```C
|
||||
static void cmd_echo(int argc, char* argv[])
|
||||
static int cmd_echo(int argc, char* argv[])
|
||||
{
|
||||
if(param_check(1, argc, argv))
|
||||
{
|
||||
printf("%s\r\n", argv[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cmd_example(int argc, char* argv[])
|
||||
static int cmd_example(int argc, char* argv[])
|
||||
{
|
||||
uint8_t i;
|
||||
if(param_check(1, argc, argv))
|
||||
|
@ -121,6 +122,7 @@ static void cmd_example(int argc, char* argv[])
|
|||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static xcmd_t cmds[] =
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "ex_cmds.h"
|
||||
#include "xcmd.h"
|
||||
|
||||
static void cmd_run(int argc, char* argv[])
|
||||
static int cmd_run(int argc, char* argv[])
|
||||
{
|
||||
if(argc >= 2)
|
||||
{
|
||||
|
@ -11,6 +11,7 @@ static void cmd_run(int argc, char* argv[])
|
|||
{
|
||||
xcmd_print("usage: run \"cmd\"\n");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static xcmd_t cmds[] =
|
||||
|
|
|
@ -53,15 +53,16 @@ static uint8_t param_check(int need, int argc, char*argv[])
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void cmd_echo(int argc, char* argv[])
|
||||
static int cmd_echo(int argc, char* argv[])
|
||||
{
|
||||
if(param_check(1, argc, argv))
|
||||
{
|
||||
xcmd_print("%s\r\n", argv[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cmd_example(int argc, char* argv[])
|
||||
static int cmd_example(int argc, char* argv[])
|
||||
{
|
||||
uint8_t i;
|
||||
if(param_check(1, argc, argv))
|
||||
|
@ -88,9 +89,10 @@ static void cmd_example(int argc, char* argv[])
|
|||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cmd_history(int argc, char* argv[])
|
||||
static int cmd_history(int argc, char* argv[])
|
||||
{
|
||||
uint16_t len = xcmd_history_len();
|
||||
|
||||
|
@ -111,9 +113,10 @@ static void cmd_history(int argc, char* argv[])
|
|||
break;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cmd_delete_cmd(int argc, char* argv[])
|
||||
static int cmd_delete_cmd(int argc, char* argv[])
|
||||
{
|
||||
int res = 0;
|
||||
if (argc == 2)
|
||||
|
@ -124,13 +127,13 @@ static void cmd_delete_cmd(int argc, char* argv[])
|
|||
goto error;
|
||||
}
|
||||
}
|
||||
return;
|
||||
return 0;
|
||||
error:
|
||||
xcmd_print("Too many parameters are entered or there is no command\r\n");
|
||||
return;
|
||||
return -1;
|
||||
}
|
||||
|
||||
static void cmd_delete_key(int argc, char* argv[])
|
||||
static int cmd_delete_key(int argc, char* argv[])
|
||||
{
|
||||
int res = 0;
|
||||
if (argc == 2)
|
||||
|
@ -141,8 +144,10 @@ static void cmd_delete_key(int argc, char* argv[])
|
|||
goto error;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
error:
|
||||
xcmd_print("Too many parameters are entered or there is no command\r\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
@ -152,7 +157,7 @@ static int cmd_ctr_q(void* pv)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void cmd_print_color(int argc, char* argv[])
|
||||
static int cmd_print_color(int argc, char* argv[])
|
||||
{
|
||||
xcmd_print(TX_DEF "txt_color = DEF \r\n" TX_DEF);
|
||||
xcmd_print(TX_RED "txt_color = RED \r\n" TX_DEF);
|
||||
|
@ -170,7 +175,7 @@ static void cmd_print_color(int argc, char* argv[])
|
|||
xcmd_print(BK_YELLOW "background_color = BK_YELLOW" BK_DEF "\r\n");
|
||||
xcmd_print(BK_BLUE "background_color = BK_BLUE" BK_DEF "\r\n");
|
||||
xcmd_print(BK_WHITE "background_color = BK_WHITE" BK_DEF "\r\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static xcmd_t cmds[] =
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef void(*cmd_func_t)(int argv, char* argc[]);
|
||||
typedef int(*cmd_func_t)(int argv, char* argc[]);
|
||||
typedef int(*cmd_key_func_t)(void *data);
|
||||
|
||||
typedef struct __cmd
|
||||
|
@ -98,9 +98,9 @@ int xcmd_unregister_key(char *key);
|
|||
/**
|
||||
* @description: 手动执行命令
|
||||
* @param {char* } str:命令
|
||||
* @return {uint8_t} 返回参数的个数
|
||||
* @return {uint8_t} 返回执行结果
|
||||
*/
|
||||
uint8_t xcmd_exec(char *str);
|
||||
int xcmd_exec(char *str);
|
||||
|
||||
/**
|
||||
* @description: 打印字符串
|
||||
|
|
12
src/xcmd.c
12
src/xcmd.c
|
@ -164,10 +164,11 @@ static int xcmd_get_param(char* msg, char*delim, char* get[], int max_num)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void xcmd_cmd_match(int argc, char*argv[])
|
||||
static int xcmd_cmd_match(int argc, char*argv[])
|
||||
{
|
||||
xcmd_t *p = g_xcmder.cmd_list.head;
|
||||
uint8_t flag = 0;
|
||||
int ret = -1;
|
||||
while(p)
|
||||
{
|
||||
if(strcmp(p->name, argv[0]) == 0)
|
||||
|
@ -182,7 +183,7 @@ static void xcmd_cmd_match(int argc, char*argv[])
|
|||
break;
|
||||
}
|
||||
}
|
||||
p->func(argc, argv);
|
||||
ret = p->func(argc, argv);
|
||||
break;
|
||||
}
|
||||
p = p->next;
|
||||
|
@ -195,6 +196,7 @@ static void xcmd_cmd_match(int argc, char*argv[])
|
|||
{
|
||||
xcmd_print("cmd \"%s\" does not exist\r\n", argv[0]);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void xcmd_key_match(char* key)
|
||||
|
@ -522,7 +524,7 @@ void xcmd_history_slider_reset(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
uint8_t xcmd_exec(char* str)
|
||||
int xcmd_exec(char* str)
|
||||
{
|
||||
int param_num = 0;
|
||||
char *cmd_param_buff[XCMD_PARAM_MAX_NUM];
|
||||
|
@ -531,9 +533,9 @@ uint8_t xcmd_exec(char* str)
|
|||
param_num = xcmd_get_param(temp, " ", cmd_param_buff, XCMD_PARAM_MAX_NUM);
|
||||
if(param_num >0)
|
||||
{
|
||||
xcmd_cmd_match(param_num, cmd_param_buff);
|
||||
return xcmd_cmd_match(param_num, cmd_param_buff);
|
||||
}
|
||||
return param_num;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int xcmd_key_register(xcmd_key_t *keys, uint16_t number)
|
||||
|
|
|
@ -11,12 +11,13 @@
|
|||
#include "xcmd.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
static void cmd_clear(int argc, char* argv[])
|
||||
static int cmd_clear(int argc, char* argv[])
|
||||
{
|
||||
xcmd_print("\033c");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cmd_help(int argc, char* argv[])
|
||||
static int cmd_help(int argc, char* argv[])
|
||||
{
|
||||
xcmd_t *p = xcmd_cmdlist_get();
|
||||
while(p)
|
||||
|
@ -24,9 +25,10 @@ static void cmd_help(int argc, char* argv[])
|
|||
xcmd_print("%-20s %s\r\n",p->name, p->help);
|
||||
p = p->next;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cmd_keys(int argc, char* argv[])
|
||||
static int cmd_keys(int argc, char* argv[])
|
||||
{
|
||||
xcmd_key_t *p = xcmd_keylist_get();
|
||||
while(p)
|
||||
|
@ -35,9 +37,10 @@ static void cmd_keys(int argc, char* argv[])
|
|||
xcmd_print("%s\r\n",p->help);
|
||||
p = p->next;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cmd_logo(int argc, char* argv[])
|
||||
static int cmd_logo(int argc, char* argv[])
|
||||
{
|
||||
char *log = "\
|
||||
_ _ ___ __ __ ____ \r\n\
|
||||
|
@ -47,6 +50,7 @@ static void cmd_logo(int argc, char* argv[])
|
|||
xcmd_print("%s", log);
|
||||
xcmd_print("\r\n%-10s %s %s\r\n","Build" ,__DATE__, __TIME__);
|
||||
xcmd_print("%-10s %s\r\n","Version", VERSION);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static xcmd_t cmds[] =
|
||||
|
|
Loading…
Reference in New Issue