CLI
概述
CLI 是一种通过命令行界面与设备或芯片进行交互的方式,用户可以通过输入特定的命令来执行各种操作。
基本原理
CLI 的核心是开源项目 Letter-shell ,Letter-shell 是一个 C 语言编写的可以嵌入在程序中的 shell,可以通过命令行调用,运行程序中的函数。主要的功能有:
支持 tab 键自动补全;
支持 help 显示命令用法;
命令处理函数同 Linux 命令行函数;
添加方便,可随意放置;
支持功能和部分命令裁剪;
支持选择任意串口 (默认使用 UART0,波特率 115200,数据位 8位,停止位 1位,无奇偶校验,无流控)
定义CLI命令
使用 WM_CLI_CMD_DEFINE 定义一条命令,其用法如下:
WM_CLI_CMD_DEFINE(cmd, handler, description, usage)
其中 cmd 为命令名称、 handler 为命令处理函数、 description 为命令描述、 usage 为命令详细说明,如果想裁剪固件体积,可以通过 menuconfig 关闭 usage 功能。
使用示例
添加一个名为 test 的命令
static void cmd_test(int argc, char *argv[])
{
/* do somethings... */
}
WM_CLI_CMD_DEFINE(test, cmd_test, Display test information, test -- Display test information)
其处理函数为 cmd_test , 执行 help 命令可以看到其描述信息 description 为Display test information,执行 help test 命令可以看到其详细用法 usage 为test – Display test information。
处理函数中, argc 表示参数数量, argv 是一个参数指针数组,指向传递给函数的参数字符串,如:argv[0] 是命令的名称,argv[1] 是第一个参数,argv[2] 是第二个参数。