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 un sens (c'est-à-dire de les enregistrer directement sur votre serveur), consultez la documentation pour le Webhook API.
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 d'essai/stimulus ou réponse du participant) de Labvanced à un système EEG, un système de suivi des yeux, ou un autre dispositif d'enregistrement de données local.
- Une expérience où vous souhaitez envoyer des données enregistrées en ligne sur Internet vers un autre serveur/API qui les traite (par exemple, un processus d'IA/apprentissage machine ou une analyse des données en temps réel).
- Une expérience où vous souhaitez créer une communication bidirectionnelle entre Labvanced et un autre processus pouvant fonctionner localement ou à distance (par exemple, pour des systèmes BCI, de biofeedback ou d'autres systèmes en boucle fermée).
Dans le cas de la connexion de Labvanced avec un serveur local (comme pour la connexion de dispositifs), vous pouvez actuellement accomplir cela 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 d'un simple clic de bouton.
Solution par Script
En utilisant des scripts, vous pouvez personnaliser un code Python de base qui nécessite que vous exécutiez le script et permet finalement la flexibilité de 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 certaine IP. Cela se reflète ensuite dans le code Python. En se pointant l'un vers l'autre, une ligne de communication est établie via l'API WebSocket.
NOTE : Pour visualiser la connexion, une interface graphique peut être utilisée pour ce processus semi-automatique.
Notre approche précédente (pour l'intégrer 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 plateformes (Linux, MacOS, Windows) et il devrait être possible d'envoyer et de recevoir des données de flux LSL de manière bidirectionnelle.
Ce que vous devez faire pour essayer :
- Installez les 4 bibliothèques requises en utilisant quelque chose comme pip install -r requirements.txt
- Ensuite, vous pouvez démarrer 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.
NOTE : Vous pouvez également facilement adapter ces scripts au cas où vous voudriez des paramètres LSL spécifiques ou des noms de flux.
Dans notre dépôt GitHub de l'API WebSocket, vous pouvez trouver deux scripts Python d'exemple pour envoyer ou recevoir des marqueurs LSL depuis/vers une expérience Labvanced dans le dossier Lab Streaming Layer, ainsi que des instructions plus détaillées sur la façon de configurer cela.
Vous pouvez également importer cette Exemple d'Étude de Connexion Socket depuis 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 d'exemple 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 d'exemple, 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 les 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 le montre l'image ci-dessous :