注册命令
FreeRTOS_CLI.h
1 | |
FreeRTOS-Plus-CLI 是一个可扩展的框架, 应用程序写入器可以通过该框架定义并注册自己的命令行输入命令。实现用户自定义命令行为的函数必须使用一个特定的接口, 如单独页面的描述所示。
本页介绍了FreeRTOS_CLIRegisterCommand(),它是用于向 FreeRTOS-Plus-CLI 注册命令的 API 函数。注册命令的方法是将实现命令行为的函数与文本字符串关联起来, 并将关联情况告知 FreeRTOS-Plus-CLI。然后,FreeRTOS-Plus-CLI 将在每次输入命令文本字符串时自动运行该函数。读完这一页你就会明白。
注意:代码中出现的FreeRTOS_CLIRegisterCommand()原型是一个指向CLI_Command_Definition_t类型常量结构体的常量指针。此处删除了常量限定符, 以使原型更易于阅读。
参数:
pxCommandToRegister
正在注册的命令,由CLI_Command_Definition_t类型的结构体定义。该结构体如此表下方所示。
返回:
- 如果命令成功注册,则返回
pdPASS。 - 如果由于没有足够的FreeRTOS 堆可用于创建新列表项而导致命令无法注册,则返回
pdFAIL。
CLI_Command_Definition_t
命令由CLI_Command_Definition_t类型的结构体定义, 结构体如下所示。代码中的注释描述了结构体成员。
1 | |
CLI_Command_Definition_t 结构体
示例
一种 FreeRTOS-Plus-CLI 特色演示实现了文件系统 “del” 命令。命令定义如下。
1 | |
文件系统 del 命令的定义
注册此命令后:
- 每次用户键入“del”时都会执行 prvDelCommand()。
- 输出”del <filename>: Deletes <filename> from the diskrn”来描述用户键入“help”时的del命令。
- del 命令需要一个参数(被删除文件的名称)。如果输入参数的数量不是1,FreeRTOS-Plus-CLI将输出错误字符串,而不是执行prvDelCommand()。
然后使用以下函数调用向 FreeRTOS-Plus-CLI 注册 del 命令:
1 | |
使用 FreeRTOS-Plus-CLI 注册 xDelCommand 结构体
注册命令
https://blog.zhaosn.top/FreeRTOS-plus-CLI/04-Registering-a-command/