API WebSocket
L'API WebSocket personnalisée vous permet de créer une connexion entre Labvanced et tout autre serveur pendant l'exécution. Cela permet essentiellement d’envoyer des données dans les deux sens entre le serveur Labvanced et l'autre serveur que vous spécifiez. Si vous avez besoin d'envoyer des données uniquement dans une seule direction (c'est-à-dire les enregistrer directement sur votre serveur), consultez la documentation de l'API Webhook.
Quelques exemples d'expériences où l'API WebSocket peut être utilisée incluent les suivantes :
- Une expérience où vous souhaitez envoyer/recevoir des déclencheurs expérimentaux (par exemple, début de essai/stimulation ou réponse du participant) de Labvanced à un système EEG, un système de suivi oculaire ou un autre dispositif d'enregistrement de données local.
- Une expérience où vous souhaitez envoyer des données enregistrées en ligne via Internet à un autre serveur/API qui les traite (par exemple, un certain processus AI/apprentissage automatique ou analyse de données en temps réel).
- Une expérience où vous voulez créer une communication bidirectionnelle entre Labvanced et un autre processus qui peut s'exécuter localement ou à distance (par exemple, pour BCI, biofeedback ou d'autres systèmes en boucle fermée).
Dans le cas de la connexion de Labvanced avec un serveur local (tel que pour connecter des dispositifs), vous pouvez actuellement y parvenir via des scripts simples (décrits ci-dessous) et en configurant des événements dans l'éditeur d'études Labvanced. À l'avenir, une solution intégrée dans l'application de bureau Labvanced sera disponible où vous pourrez établir cette connexion en un simple clic de bouton.
Solution par script
En utilisant des scripts, vous pouvez personnaliser du code Python de base qui nécessite que vous exécutiez le script et permet finalement la flexibilité nécessaire pour répondre aux besoins de recherche. En exécutant un script Python séparé, Labvanced communique avec l'API WebSocket et Python communique avec le dispositif externe.
La configuration de l'API WebSocket fonctionne en pointant vers un certain port et une adresse IP. Ensuite, cela est reflété dans le code Python. En se pointant mutuellement, une ligne de communication est établie via l'API WebSocket.
REMARQUE : Pour visualiser la connexion, une interface graphique (GUI) peut être utilisée pour ce processus semi-automatique.
Notre approche précédente (pour l’imbriquer directement dans le programme Labvanced) était un peu trop limitée et difficile à faire fonctionner sur différents systèmes d'exploitation. Donc maintenant, avec ces nouveaux scripts Python, cela devrait fonctionner sur toutes les plates-formes (Linux, MacOS, Windows) et il devrait être possible d'envoyer et de recevoir bidirectionnellement des données de flux LSL.
Ce que vous devez faire pour l'essayer :
- Installez les 4 bibliothèques requises en utilisant quelque chose comme pip install -r requirements.txt
- Ensuite, vous pouvez commencer en arrière-plan sur la même machine où l'expérience Labvanced sera lancée soit (pour recevoir des marqueurs LSL dans Labvanced) python3 lsl_marker_receive.py ou (pour envoyer des marqueurs LSL depuis Labvanced) python3 lsl_marker_send.py.
REMARQUE : Vous pouvez également adapter facilement ces scripts si vous souhaitez des paramètres LSL ou des noms de flux spécifiques.
Dans notre dépôt GitHub API WebSocket, vous pouvez trouver deux exemples de scripts Python pour envoyer ou recevoir des marqueurs LSL d'/vers une expérience Labvanced dans le dossier Lab Streaming Layer, ainsi que des instructions plus détaillées sur la manière de configurer cela.
Vous pouvez également importer cette Étude d'Échantillon de Connexion Socket de notre Bibliothèque d'Expériences Publiques et voir comment les événements sont configurés.
Exemples d'Expériences Utilisant l'API WebSocket pour l'Intégration LSL
Il y a deux études exemples dans la Bibliothèque d'études Labvanced qui correspondent à ce qui précède :
Envoi de Marqueurs LSL (lsl_marker_send.py) : https://www.labvanced.com/page/library/53231
Réception de Marqueurs LSL (lsl_marker_receive.py) : https://www.labvanced.com/page/library/53230
Veuillez noter qu'en important ou en inspectant ces études exemples, vous verrez dans leurs "Paramètres d'Étude" sous la sous-section "Fonctionnalités de l'Expérience" que la case à cocher pour la "Connexion WebSocket" est cochée avec des détails de connexion pour s'assurer que l'expérience Labvanced peut se connecter au script Python exécuté sur le même ordinateur, comme montré dans l'image ci-dessous :