API de WebSocket
La API de WebSocket personalizada te permite crear una conexión entre Labvanced y cualquier otro servidor durante el tiempo de ejecución. Esto permite esencialmente la posibilidad de enviar datos en ambas direcciones entre el servidor de Labvanced y el otro servidor que especifiques. Si solo necesitas enviar datos en una dirección (es decir, guardarlos directamente en tu servidor), consulta la documentación de la API de Webhook.
Algunos ejemplos de experimentos donde se puede utilizar la API de WebSocket incluyen los siguientes:
- Un experimento en el que deseas enviar/recibir disparadores experimentales (por ejemplo, inicio de ensayo/estímulo o respuesta del participante) desde Labvanced a un sistema EEG, sistema de seguimiento ocular o algún otro dispositivo de grabación de datos local.
- Un experimento en el que deseas enviar datos grabados en línea a través de internet a algún otro servidor/API que los procese (por ejemplo, algún proceso de IA/aprendizaje automático o análisis de datos en tiempo real).
- Un experimento en el que deseas crear comunicación bidireccional entre Labvanced y algún otro proceso que pueda ejecutarse local o remotamente (por ejemplo, para BCI, biofeedback u otros sistemas de bucle cerrado).
En el caso de conectar Labvanced con un servidor local (como para conectar dispositivos), actualmente puedes lograr esto a través de scripts simples (descritos a continuación) y configurando eventos en el editor de estudios de Labvanced. En el futuro, estará disponible una solución integrada en la aplicación de escritorio de Labvanced donde podrás establecer esta conexión con solo un clic de botón.
Solución de Script
Usando scripts, puedes personalizar código Python básico que requiere que ejecutes el script y, en última instancia, permite la flexibilidad para satisfacer las necesidades de investigación. Al ejecutar un script de Python diferente, Labvanced se comunica con la API de WebSocket y Python se comunica con el dispositivo externo.
La configuración de la API de WebSocket funciona señalando a un cierto puerto y IP. Luego, esto se refleja en el código Python. Al señalarse mutuamente, se establece una línea de comunicación a través de la API de WebSocket.
NOTA: Para ver la conexión, se puede utilizar una GUI para este proceso semi-automático.
Nuestro enfoque anterior (para integrarlo directamente en el programa de Labvanced) era un poco demasiado limitado y difícil de hacer funcionar en diferentes sistemas operativos. Así que ahora, con estos nuevos scripts de Python, debería funcionar en todas las plataformas (Linux, MacOS, Windows) y debería ser posible enviar y recibir datos de flujo LSL de forma bidireccional.
Lo que necesitas hacer para probarlo:
- Instala las 4 bibliotecas requeridas utilizando algo como pip install -r requirements.txt
- Luego, puedes comenzar en segundo plano en la misma máquina donde se iniciará el experimento de Labvanced, ya sea (para recibir marcadores LSL en Labvanced) python3 lsl_marker_receive.py o (para enviar marcadores LSL desde Labvanced) python3 lsl_marker_send.py.
NOTA: También puedes adaptar fácilmente estos scripts en caso de que desees parámetros LSL o nombres de flujo específicos.
En nuestro repositorio de la API de WebSocket en GitHub, puedes encontrar dos scripts de Python de ejemplo para enviar o recibir marcadores LSL desde/hacia un experimento de Labvanced en la carpeta Lab Streaming Layer, así como instrucciones más detalladas sobre cómo configurarlo.
También puedes importar este Estudio de Ejemplo de Conexión de Socket de nuestra Biblioteca de Experimentos Públicos y ver cómo se configuran los eventos.
Ejemplos de Experimentos que Utilizan la API de WebSocket para la Integración LSL
Hay dos estudios de ejemplo en la Biblioteca de estudios de Labvanced que corresponden a lo anterior:
Envío de Marcadores LSL (lsl_marker_send.py): https://www.labvanced.com/page/library/53231
Recepción de Marcadores LSL (lsl_marker_receive.py): [https://www.labvanced.com/page/library/53230]
Por favor, ten en cuenta que al importar o inspeccionar estos estudios de ejemplo, verás en sus "Configuraciones del Estudio" bajo la subsección "Características del Experimento" que la casilla de verificación para la "Conexión WebSocket" está marcada con detalles de conexión para asegurarte de que el experimento de Labvanced pueda conectarse al script de Python que se ejecuta en la misma computadora, como se muestra en la imagen a continuación: