美文网首页
概述:data和stimulations的传输 Overview

概述:data和stimulations的传输 Overview

作者: AeroZ | 来源:发表于2020-07-16 16:32 被阅读0次

http://openvibe.inria.fr/overview-sending-data-stimulations-out-from-openvibe/

Special case: EEG markers

在脑电图和脑机接口实验中,最常见的要求之一就是在脑电图记录上标注一个标记时间线来描述实验的时间过程。例如,P300中的闪光和运动想象试验的起止就属于这一类。在 OpenViBE 中,这种定义标记的时间线被称为刺激(stimulations)。关于事件发生的时间,使这些标记尽可能准确地与脑电图数据对齐是非常重要的。当前推荐的方法是在事件显示之后,将事件的发生从呈现组件直接发送到放大器或捕获服务器。针对这个问题,OpenViBE 中有一个软件解决方案,叫做 TCP 标签(TCP Tagging)技术。接收到的标记将附加到脑电信号流的采集服务器作为刺激。另一种方法是使用硬件标记,并将标记直接发送到放大器。

Data and stimulations in general

External Processing box

外部处理框(External Processing box)是 Mensia Technologies 提供的一项新技术,并被引入到 OpenViBE 2.1中。The documentation is here。该框(box)作为一个服务器,可以在 OpenViBE 设计器和外部应用程序之间发送和接收流和刺激。数据的发送/接收与 OpenViBE 内部的处理完全一样。例如,如果box用于向客户机传输流,那么客户机将接收一组 EBML 流,类似于 OpenViBE box。

外部处理框方法将来可能取代 Python 和 Matlab 脚本框。

可在 "box-tutorials/" 文件夹中的外部处理框中找到简单的示例,并在 "sdk/applications/examples/external-processing/" 下找到示例 C++ 源代码。

VRPN

经典的 OpenViBE 向外部应用程序发送刺激和数据的方式是 VRPN 协议。See the tutorial here。发送多通道数据不是很方便,但是对于刺激来说是合适的。VRPN 还可以接收 OpenViBE 中的刺激和小规模数字数据。

TCP/IP (low-level)

数据和刺激可以使用 TCP/IP 协议发送,如果不需要“外来的”依赖。TCP/IP 方法对于大量的数据是有效的。对应的框称为 TCP Writer。在采集服务器中,Generic Telnet Reader 驱动程序可以通过 TCP/IP 接收信号数据。可以将 telnet 驱动程序配置为接受 TCP Writer box 流格式。

LabStreamingLayer (LSL)

LabStreamingLayer 是另一种用于在流应用程序之间交换数据和刺激的协议。它可以与一个对应的框一起使用,see here for a description。OpenViBE 采集服务器也有 LSL 插件,可以接收和发送数字数据和刺激。

OpenSoundControl (OSC)

Openseoundcontrol 通常用于控制合成器,但也可以作为 OpenViBE Designer 的通用输出通道,用于任何可以从 OSC 控制器接收数据的设备。For details, see the box documentation目前,OSC 不能用于向 OpenViBE 发送数据,只能从 OpenViBE 发送数据。

Python and Matlab

使用 Python 框或 Matlab 框,可以使用在这些语言中实现的某种进一步的通信机制,将数据和刺激信息流到/来自应用程序。脚本的运行时解释可能会带来一些开销,通常来说,拥有这种“中间层”也会带来一些开销。

Lua

Lua Stimulator box允许发送和接收来自 Lua 脚本的刺激。该框当前不支持任何其他类型的数据。

Other techniques / Do-It-Yourself

使用C++,你当然可以通过开发相应的盒子或驱动程序来实现任何你想要的通信通道。您可以使用上面提到的方框的源代码作为起点。
有时会问串口或并口是否可以用来发送数据或刺激到。这是目前不支持的,因为没有什么标准写入串行端口。如果需要串口通信,建议用户编写自己的box,以期望的方式向串口发送刺激。在 C++ 中, Stimulation Listener box代码可以用作一个起点,您可以尝试将它与串行端口库(如 inpout32 (on Windows)
结合使用。

Summary

Protocol Acquisition Server in Acquisition Server out Designer in Designer out
External processing No No Yes Yes
VRPN(1) No No Yes Yes
TCP/IP (low-level) Yes(2) Yes(3) Yes(3) Yes(4)
LSL Yes Yes No Yes
OSC No No No Yes
Python No No Yes Yes
Matlab No No Yes Yes
Lua No No Yes (stimuli only) Yes (stimuli only)
Do it yourself Yes Yes Yes Yes

1)不适合大规模数据
2)使用“Generic Telnet Reader”驱动程序输入数据,并使用“ TCP标记”输入数据。
3)您需要对OpenViBE EBML采集流进行编码/解码 (see here)。
4)TCP Writer box:使用这种方法可能不容易同步数据和刺激

相关文章

网友评论

      本文标题:概述:data和stimulations的传输 Overview

      本文链接:https://www.haomeiwen.com/subject/zfnphktx.html