这是最新(主)开发分支的文档。如果您正在查找以前版本的文档,使用左侧的下拉菜单选择所需的版本。

CLI

概述

CLI 是一种通过命令行界面与设备或芯片进行交互的方式,用户可以通过输入特定的命令来执行各种操作。

基本原理

WM_CLI 的核心是开源项目 Letter-shell ,Letter-shell 是一个 C 语言编写的可以嵌入在程序中的 shell,可以通过命令行调用,运行程序中的函数。主要的功能有:

  • 支持 tab 键自动补全;

  • 支持 help 显示命令用法;

  • 命令处理函数同linux命令行函数;

  • 添加方便,可随意放置;

  • 支持功能和部分命令裁剪;

定义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] 是第二个参数。