这篇文章主要讲解了“怎么为AliOS Things应用增加自定义cli命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么为AliOS Things应用增加自定义cli命令”吧!
参数名称
参数描述 | |
char *pwbuf | 当函数执行完成返回时,通过控制台打印出来的字符串指针。可以不传入。 |
int blen | 上述字符串长度 |
int argc | 命令调用时传入的参数长度,没有参数传入时为1 |
char **argv | 传入参数缓存,字符串。第一个有效参数的角标从1开始。 |
接下来填写注册用结构体,以便将命令信息传递给cli服务。按照前所讲的设计,注册结构体信息如下,将结构体拷贝到blink.c文件中。
struct cli_command led_switch_command[] = { { .name = "led_switch", // 命令名称 .help = "[on] turn on led2;[off] trun off led2",// 帮助文本 .function = led_switch // 命令具体执行的函数指针 }};
将cli命令注册到系统中。cli命令注册只需要一个函数如下:
aos_cli_register_commands(&led_switch_command[0],1);
函数需要传入两个参数,参数1为刚刚创建的命令信息体的结构体指针;参数2,为本次需要注册的命令数,也就是说可以一次性注册多个命令,只需要在命令信息结构体中,用数组的方式同时填入几个命令的信息即可。
将上述函数调用加入到blink.c文件application_start函数的如下位置:
aos_cli_register_commands(&led_switch_command[0],1); // 注册cli命令函数 aos_loop_run();
至此,一个cli命令的实现和注册的代码编写部分就完成了。编译并下载至开发板中运行。在cli控制台输入help,看到led_switch命令已注册成功。
# help====Build-in Commands========Support 4 cmds once, seperate by ; ====help : print thisp : print memorym : modify memoryecho : echo for commandexit : close CLIdevname : print device namesysver : system versionreboot : reboot systemtime : system timeota : system ota====User Commands====loglevel : set log leveltasklist : list all thread infodumpsys : dump system infoudp : [ip] [port] [string data] send udp datawifi_debug: wifi debug modemac : get/set mackv : kv [set key value | get key | del key | list]version : show versionled_switch: [on] turn on led2;[off] trun off led2
测试命令是否执行,在命令提示符下输入如下命令,并回车:
#led_switch on
led2点亮
测试参数有效性判断,输入如下指令,不带参数。命令按设计返回错误报警。
## led_switch[1291080]<V> 参数错误
感谢各位的阅读,以上就是“怎么为AliOS Things应用增加自定义cli命令”的内容了,经过本文的学习后,相信大家对怎么为AliOS Things应用增加自定义cli命令这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!