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()
成员函数。 (您将对类的实例的引用传递给DumbLineEditor
和CommandManager
构造函数。) - 创建从
Command
派生的类,并为每个命令实现execute()
成员函数。 - 实例化
CommandManager
。使用每个派生的CommandManager::addCommand()
s的实例调用Command
。 - 实例化
DumbLineEditor
,将对CommandManager
和Outputter
的引用传递给它的构造函数。
以上是关于C ++中嵌入式友好的命令解析器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C 中创建 AT 命令解析器以获取来自 USART1 的传入字符串?
C ++ XCODE ld:未找到架构x86_64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)