如何在FreeRTOS-Plus-CLI中添加一个自己的命令行

第一作者:姚伟民
根据上一篇添加完成后,下面就是添加一个自己的命令行。其实添加一个命令行格式很简单,就是按照demo中的数据格式添加一个结构体,然后在注册函数中注册就可以使用了。

第一步:添加自己的结构体

/* The structure that defines command line commands.    A command line command should be defined by declaring a const structure of this type. */
typedef struct xCOMMAND_LINE_INPUT
{
     const char * const pcCommand; /* The command that causes pxCommandInterpreter to be executed.  For example "help".              Must be all lower case. */
     const char * const pcHelpString; /* String that describes how to use the command.  Should start with the command itself, and end with "\r\n".  For example "help: Returns a list of all the commands\r\n". */
     const pdCOMMAND_LINE_CALLBACK pxCommandInterpreter;
/* A pointer to the callback function that will return the output generated by the command. */
     int8_t cExpectedNumberOfParameters; /* Commands expect a fixed number of parameters, which may be zero. */
} CLI_Command_Definition_t;

参考实际格式:

/* Structure that defines the "task-stats" command line command.  This generates
a table that gives information on each task in the system. */
static const CLI_Command_Definition_t xTaskStats =
{
     "task-stats", /* The command string to type. */
     "\r\ntask-stats:\r\n Displays a table showing the state of each FreeRTOS task\r\n",
      prvTaskStatsCommand, /* The function to run. */
     0 /* No parameters are expected. */
};

于是按葫芦画瓢自己写一个自己的命令“whatbook”吧!如下:

static const CLI_Command_Definition_t xWhatbook =
{
     "whatbook", 
     "\r\nwhatbook:\r\n Displays a string "I Love ZML!"\r\n",
      prvWhatbookCommand, /* The function to run. */
     0 /* No parameters are expected. */
};

第二步:实现上面数据结构后,然后写数据结构中的回调函数。

static BaseType_t prvWhatbookCommand( char *pcWriteBuffer, size_t xWriteBufferLen, const char *pcCommandString )
{
 BaseType_t xReturn;
 /* Remove compile time warnings about unused parameters, and check the
 write buffer is not NULL.  NOTE - for simplicity, this example assumes the
 write buffer length is adequate, so does not check for buffer overflows. */
 ( void ) pcCommandString;
 ( void ) xWriteBufferLen;
 configASSERT( pcWriteBuffer );
 /* The first time the function is called after the command has been
 entered just a header string is returned. */
 sprintf( pcWriteBuffer, "I Love ZML!!!\r\n" );
 xReturn = pdFALSE;
 return xReturn;
}

第三步:注册数据结构。

FreeRTOS_CLIRegisterCommand( &xWhatbook );

至此,就完成了一个命令whatbook的实现。在串口工具输入whatbook,就返回如下打印信息:
>
I Love ZML!!!
[Press ENTER to execute the previous command again]
>

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值