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