【问题标题】:Fast and reliable communication between programs程序之间快速可靠的通信
【发布时间】:2017-11-24 09:18:25
【问题描述】:

问题

假设我想使用 Matlab 处理在线数据流(例如,来自网络摄像头)。

根据数据,在 Matlab 中运行的程序将在运行任何用于数据分析的算法的每次迭代后输出一个二进制信号 [0,1]。

同时,我正在运行一个 Python 程序,它在计算机屏幕上进行可视化。至关重要的是,这种可视化依赖于来自 Matlab 的二进制信号。

初步解决方案(待改进):

我能想象的最直接但也是缓慢且容易出错的方法是,Matlab 在每次数据分析迭代后(过度)写入一个文件,而 python 为每次可视化迭代读取该文件。

问题

建立这种通信的最快(大约 10 毫秒到最大 50 毫秒)和最可靠的方法是什么...

  • ...在一台计算机上?
  • ... 在通过以太网的网络上? (即,每个程序在同一网络上的不同计算机上运行)

【问题讨论】:

  • 什么是最快的(我们真的应该谈论毫秒吗? 11ms 不可接受而 9ms 好吗?
  • 我对现有的不同方法以及它们在速度和可靠性/稳健性方面的比较感兴趣。 10ms 只是表明任何遥远的东西(比如说,100ms)对于我需要的东西都不是很有用。
  • 如果您对可接受的时间有一个硬阈值,您应该研究实时操作系统。否则,无法保证处理任何输入所需的时间。

标签: python matlab communication


【解决方案1】:

我昨天发现的一种方法是使用labstreaminglayer。这显然是使用 UDP 和 TCP/IP 的组合来使用缓冲区在网络上流式传输数据。

它可以与 Python、Matlab 和其他语言一起使用...特别是 Python interface 看起来非常简单,并且易于使用 pip install pylsl 安装。

我仍然对这种通信方法的一般大纲或指向有关该方面的一些好的介绍的指针感兴趣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 2011-05-27
    • 2012-03-01
    相关资源
    最近更新 更多