【发布时间】:2015-03-19 00:19:10
【问题描述】:
我正在尝试将与图形相关的 C++ 开源库(称为 openFrameworks)连接到 Matlab/Simlink。
我想做的是在使用 Matlab 进行信号处理后,使用该图形应用程序可视化某些特征。因此在 Simlink S-Function 中,连续进行生物信号(例如 EEG)的记录,并在线进行用于提取某些特征的计算。我想将这些功能的值传递给 openFrameworks。然后它按照我编写的 C++ 代码的设计进行可视化。
我认为如果我可以制作 MEX 并在 Matlab 脚本中调用它,那将是可能的。我成功了,实际上它运行了。但是,openFrameworks 旨在永远持续更新图形,直到我结束应用程序。所以调用 MEX 后,MEX 一直在运行,我无法返回 Matlab。当我使用 MEX 时,可能在线将功能从 Matlab 发送到 MEX 并更新图形似乎很困难。
这两者之间有什么好的沟通方式吗?如果 MEX 使之成为可能,我将继续致力于 MEX。我认为并行运行 Matlab/Simlink 和 openFrameworks 并使用 UDP 将必要的数据从 Matlab 发送到 openFrameworks 是一个好方法。
我希望你给我你的意见。我不知道 UDP 是正确的方式,因为我从未处理过在应用程序之间发送数据的程序。如果是这样,我很高兴。如果我的想法是错误的,请在 MEX 和 UDP 方面纠正我。
提前谢谢你。
【问题讨论】:
-
如何从 mex 文件向 openFrameWorks 发送数据?您应该使用持久数据(mexMakeArrayPersistent 或静态)保持该连接处于活动状态。然后,您应该在发送数据后立即从 mex 文件返回。
标签: c++ matlab udp communication mex