【问题标题】:Library to manage menus in embedded device for C/C++ [closed]用于管理 C/C++ 嵌入式设备中菜单的库 [关闭]
【发布时间】:2011-03-07 18:26:59
【问题描述】:

我正在寻找一个管理菜单的库。我正在寻找基于配置文件的东西。它不必管理键盘输入或显示,只需管理菜单逻辑。我的想法是这样的:

//menu.xml
<menu>
    <Start />
    <Stop />
    <Configuration displayname="Configure System">
        <Sound type="toggle" />
        <Speed display="Speed related settings">
           <Speedy type="toggle" default="on" />
           <Optimizations type="toggle" />
        </Speed>
    </Configuration>
    <Filesystem>
         <SaveSnapshot />
         <LoadSnapshot />
    </Filesystem>
</menu>

在我们的代码中:

//menu.cpp
Menu menu("menu.xml");
menu.bind("SaveSnapshot",saveSnapshotPressed);
menu.bind("LoadSnapshot",loadSnapshotPressed);
menu.bind("Sound",soundSetTo);
...
void onKeyPressed(key_t key) {
...
    switch (key) {
    case KEY_UP:
        menu.goUp();
        break;
    case KEY_DOWN:
        menu.goDown();
        break;
    case KEY_ENTER:
        menu.action();
        break;
    }
// display.cpp
void render(...) {
    for (int i=0;i<menu.items().size();++i) {
        renderText(getMenuCoord(i),menu.items()[i].c_str());
    }
    ...
}

这样的库对于在嵌入式设备中显示菜单非常有用。

我很高兴知道是否存在这样的库,或者对于这个库有更好的想法。

【问题讨论】:

  • +1 表示有用性和相关性。我很乐意看到任何投票关闭的人提出菜单。我最终从 1995 年开始使用 C 代码结构布局。没有 OOP 解决方案。 github.com/cacycleworks/chipKIT_ST7735/tree/master/Libraries/…
  • 嗨 Elazar,您是否使用 OOP 解决方案进行管理?
  • @ransh 不幸的是没有。

标签: c++ c user-interface embedded menu


【解决方案1】:

我知道这是一个老问题,但也许其他人也有同样的问题。

我认为CLI 是您需要的解决方案。

CLI 是一个工具包,可让您轻松实现 C++ 和 Java 命令行界面

它有 XML 配置文件并生成 C++/Java 源代码,然后链接。 我没有测试它,只是在搜索一些东西以更容易地创建 CLI 菜单时发现它。

【讨论】:

【解决方案2】:

您可能想查看 Android SDK。这也可能超出您想要处理的范围,但复制或可能使用谷歌可能拥有的任何工具可能是有价值的。

【讨论】:

  • 这是个好主意。您知道我应该查看 Android SDK 的哪个部分吗?我很乐意为特定组件提供参考。
  • 我认为您将下载并安装整个 SDK。我对 SDK 不够熟悉,无法引用特定的部件或​​工具。我知道它使用 xml 格式来布置 GUI 元素。
【解决方案3】:

有 Kaleido 之类的东西:http://www.digitalairways.com/kaleido-engine.htm 非常好,但价格昂贵。

Emwin 更简单、更便宜,但在功能方面却没有那么丰富: http://www.segger.com/cms/emwin.html

【讨论】:

  • 两者都比我需要的多得多。我自己处理显示,我自己处理控件,我只想要内部菜单逻辑。
  • 仅供参考 Segger 的 EmWin 是 12,300 美元。
  • @ChrisK - 这仍然比 Kaleido 之类的产品便宜得多(它似乎仍在积极开发中,但价值数十万英镑 - 取决于确切的许可条款和数量席位 - 在我写那篇文章的时候)。
  • O_O
  • @ChrisK,是的。我在 2007 年从他们那里得到了我正在开发的产品的报价,他们的演示非常令人印象深刻,但是对于我们所需要的(只有 2 个开发人员席位!),他们想要总共 216,000 美元加上 1.34 美元的产品版税。
猜你喜欢
  • 2014-07-13
  • 2010-10-08
  • 2016-03-06
  • 1970-01-01
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 2017-06-19
  • 2011-04-05
相关资源
最近更新 更多