C ++中嵌入式友好的命令解析器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C ++中嵌入式友好的命令解析器相关的知识,希望对你有一定的参考价值。

我的用例是生成和解析AT命令

我正在寻找类似于Boost.Spirit或https://github.com/ColinH/PEGTL的东西,但对嵌入式环境(mbed OS)友好,并且不需要像前面提到的那样强大。 mbed OS ATParser以另一种方式摆动,对我的品味来说有点太弱/扫描(对于ATParser人来说没有任何不确定性)

Boost.Spirit我无法在这种环境下进行编译,除了有点复杂之外,我还因为类似的原因尝试使用PEGTL而犹豫不决。

答案

下面的项目也许你在寻找:

CMDB:一个命令解释器,支持使用的已定义命令,子系统,宏,帮助和参数解析。

https://developer.mbed.org/users/wvd_vegt/code/CMDB/

另一答案

看起来我正在自己动手。如果它不符合stackoverflow规则,我会在这里发布链接。

另一答案

不是特定于AT,但这看起来很有希望:embedded-commandline

要使用它,看起来像你:

  • 创建一个继承自Outputter的类,它为您的平台实现putchar()puts()成员函数。 (您将对类的实例的引用传递给DumbLineEditorCommandManager构造函数。)
  • 创建从Command派生的类,并为每个命令实现execute()成员函数。
  • 实例化CommandManager。使用每个派生的CommandManager::addCommand()s的实例调用Command
  • 实例化DumbLineEditor,将对CommandManagerOutputter的引用传递给它的构造函数。

以上是关于C ++中嵌入式友好的命令解析器的主要内容,如果未能解决你的问题,请参考以下文章

C预处理器

如何在 C 中创建 AT 命令解析器以获取来自 USART1 的传入字符串?

使用解析器命令设置函数

使用python解析C代码

C ++ XCODE ld:未找到架构x86_64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

Argparser 的一个子解析器,用于两个不同的命令