WebSocket API
自定义的WebSocket API允许您在运行时创建Labvanced与任何其他服务器之间的连接。这实际上允许在Labvanced服务器和您指定的其他服务器之间双向发送数据。如果您只需要单向发送数据(即直接将其保存到您的服务器),请参阅Webhook API。的文档。
一些可以利用WebSocket API的实验示例包括以下内容:
- 一个您希望从Labvanced发送/接收实验触发的实验(例如,试次/刺激开始或参与者反应)到EEG系统、眼动追踪系统或其他本地数据记录设备。
- 一个您希望将在线录制的数据通过互联网发送到其他处理服务器/API的实验(例如,一些AI/机器学习过程或实时数据分析)。
- 一个您希望在Labvanced与某个可以本地或远程运行的其他过程之间创建双向通信的实验(例如,用于BCI、生物反馈或其他闭环系统)。
在将Labvanced与本地服务器(如连接设备)连接的情况下,您当前可以通过简单的脚本(下面描述)以及在Labvanced研究编辑器中设置事件来实现这一点。未来,Labvanced桌面应用程序将提供集成解决方案,您只需单击一个按钮即可建立此连接。
脚本解决方案
通过使用脚本,您可以自定义基本的Python代码,运行脚本并最终实现灵活满足研究需求。通过运行一个独立的Python脚本,Labvanced与WebSocket API进行通信,而Python则与外部设备进行通信。
WebSocket API配置通过指向特定端口和IP进行工作。然后,这在Python代码中反映出来。通过彼此指向,建立了一条通过WebSocket API的通信线路。
注意: 要查看连接,可以使用GUI进行此半自动过程。
我们之前的做法(将其直接嵌入Labvanced程序中)有些过于有限,且在不同操作系统之间难以工作。因此,现在,使用这些新的Python脚本应该可以在所有平台上(Linux、MacOS、Windows)工作,并且应该能够双向发送和接收LSL流数据。
您需要做的尝试:
- 使用类似_pip install -r requirements.txt_ 的内容安装4个所需的库
- 然后可以在同一台计算机的后台启动Labvanced实验, either(在Labvanced中接收LSL标记)python3 lsl_marker_receive.py 或者(从Labvanced发送LSL标记)python3 lsl_marker_send.py.
注意:如果您想要特定的LSL参数或流名称,您还可以轻松调整这些脚本。
在我们的GitHub WebSocket API库, 您可以找到两个示例Python脚本,用于发送或接收来自/到Labvanced实验的LSL标记,位于Lab Streaming Layer文件夹中,以及关于如何设置这些的更详细的说明。
您还可以从我们的公共实验库中导入此Socket连接示例研究,查看事件是如何设置的。
利用WebSocket API进行LSL集成的实验示例
在Labvanced研究库中有两个示例研究对应上述内容:
发送LSL标记 (lsl_marker_send.py): https://www.labvanced.com/page/library/53231
接收LSL标记 (lsl_marker_receive.py): https://www.labvanced.com/page/library/53230
请注意,在导入或检查这些示例研究时,在其“研究设置”下的“实验特性”子部分中,您会看到“WebSocket连接”的复选框被选中,并带有连接详情,以确保Labvanced实验可以连接到同一计算机上运行的Python脚本,如下图所示: