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 devez envoyer des données uniquement dans une direction (c'est-à-dire les enregistrer directement sur votre serveur), consultez la documentation de l'API Webhook.
Voici quelques exemples d'expériences où l'API WebSocket peut être utilisée :
- 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 vers 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 vers un autre serveur/API qui les traite (par exemple, un certain processus d'IA/apprentissage automatique ou une analyse de 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 BCI, biofeedback ou d'autres systèmes en boucle fermée).
Dans le cas de la connexion de Labvanced avec un serveur local (comme pour connecter des dispositifs), vous pouvez actuellement réaliser 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 de script
À l'aide de scripts, vous pouvez personnaliser un code Python de base qui nécessite que vous exécutiez le script et permet finalement la flexibilité 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 certaine IP. Cela se reflète alors dans le code Python. En 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'incorporer directement dans le programme Labvanced) était un peu trop limitée et difficile à faire fonctionner sur différents systèmes d'exploitation. Ainsi, 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 l'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 si vous souhaitez 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 exemples de scripts Python 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 Étude d'Échantillon 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 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 constaterez 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 s'exécutant sur le même ordinateur, comme montré dans l'image ci-dessous :
