【问题标题】:How to create gui (graphic user interface) for standalong binary executable file如何为独立的二进制可执行文件创建 gui(图形用户界面)
【发布时间】:2016-04-25 09:04:21
【问题描述】:

我有一个 Modelica 语言模型(平台:Dymola)。 Dymola 在编译/翻译过程中创建模型的二进制文件(dymosim.exe)。如果二进制代码导出许可证可用,则创建一个独立代表原始 dymola 模型的二进制文件。这可以在没有 Dymola 许可的任何计算机上运行。

现在,我的问题是如何围绕这个可执行文件创建 Gui 并满足以下要求:- 1. 应该可以改变一些输入参数值。 2.应该可以得到一些输出参数值。

现在作为背景:- dymosim.exe 将参数值作为文本文件 (dsin.txt) 的输入,并将输出写入另一个文本文件 (dsres.txt)

具体来说,如果一个二进制可执行文件从一个文本文件中获取输入,并以特定格式(其规则已知)将输出写入另一个文本文件;那么有哪些工具可以为它创建 gui?

【问题讨论】:

  • 您可以考虑将模型从 Dymola 导出到协同仿真 FMU。这可以从例如控制。 Python 使用 PyFMI,您可以在 Python 代码之上构建 GUI。
  • @Rene Just Nielsen 我会调查此事。但最终这可能会导致带有 gui 的 .exe 文件。我问这个是因为,最终用户的期望是有一个可执行文件,它在运行时会打开一个界面来输入一些输入参数值;有一个运行按钮或类似的按钮来运行具有给定输入的实际模型并显示相应的输出。
  • 你也可以看看 PySimulator github.com/PySimulator/PySimulator

标签: user-interface modelica dymola


【解决方案1】:

查看 Dymola 的嵌入式服务器支持 (DDE/OPC)。由于您使用的是 dymosim.exe,我相信您使用的是 Windows,因此 Dymola 对嵌入式服务器仅适用于 Visual Studio 32 位代码的限制是可以接受的。 (大多数 Modelica 工具都有类似的嵌入式服务器,但我认为它们不兼容。)

【讨论】:

    【解决方案2】:

    Dymola dymosim.exe 将其时间序列结果导出为 *.mat 文件,您应该能够在 GUI 中找到处理 *.mat 格式的工具/库。

    另外,dsin.txt有自己的格式,可以先尝试理解(尝试找到它的cmets)再解析,它不是随机字符串和数字列的文本文件。

    【讨论】:

    • 嗨,我知道 disn.txt 和 dsres.mat 结构。我实际上不知道的是如何创建一个 gui,以便我可以操作 dsin.txt 中的参数值,然后运行 ​​dymosim.exe wrt 新参数并读取 dsres.mat/dsres.txt。
    • 我认为这更像是一个编码问题。您可能应该查看用于 GUI 的编程语言的文本/字符串解析。
    【解决方案3】:

    在协同仿真模式下使用 FMI 标准值得考虑,这意味着包含了求解器。 Dymola 允许将模型导出为 FMU 包(在 Windows 平台中它是带有一些元数据的单个 DLL,在 Linux 平台中它是 .SO 库)并提供了这些值得您执行的功能:

    • fmiSetReal() 将设置一个参数值
    • fmiDoStep()
    • fmiGetReal() 会得到变量值

    你可以直接调用这些函数,只需解压FMU包并找到里面的DLL并直接链接到你的应用程序。 或推荐的方式(我们在我们的应用程序中这样做):使用FMI Library 提供与 FMU 包交互的通用 C API 并以您需要的方式控制时间结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 2021-04-17
      • 2017-04-17
      • 2013-07-28
      • 1970-01-01
      相关资源
      最近更新 更多