WebSocket API
Die benutzerdefinierte WebSocket-API ermöglicht es Ihnen, zur Laufzeit eine Verbindung zwischen Labvanced und einem anderen Server herzustellen. Dies ermöglicht im Wesentlichen die Möglichkeit, Daten in beide Richtungen zwischen dem Labvanced-Server und dem anderen Server, den Sie angeben, zu senden. Wenn Sie Daten nur in einer Richtung senden müssen (d. h. direkt auf Ihren Server speichern), lesen Sie die Dokumentation zur Webhook-API.
Einige Beispiele für Experimente, in denen die WebSocket-API genutzt werden kann, sind folgende:
- Ein Experiment, in dem Sie experimentelle Trigger (z. B. Versuchsbeginn/Stimulus oder Teilnehmerantwort) von Labvanced an ein EEG-System, ein Eye-Tracking-System oder ein anderes lokales Datenaufzeichnungsgerät senden/empfangen möchten.
- Ein Experiment, in dem Sie online aufgezeichnete Daten über das Internet an einen anderen Server/API senden möchten, der diese verarbeitet (z. B. ein KI-/Maschinenlernprozess oder Echtzeitanalyse).
- Ein Experiment, in dem Sie eine bidirektionale Kommunikation zwischen Labvanced und einem anderen Prozess herstellen möchten, der lokal oder remote ausgeführt werden kann (z. B. für BCI, Biofeedback oder andere geschlossene Systeme).
Im Fall einer Verbindung von Labvanced mit einem lokalen Server (z. B. zur Verbindung von Geräten) können Sie dies derzeit über einfache Skripte (die weiter unten beschrieben sind) und durch das Einrichten von Ereignissen im Labvanced-Studieneditor erreichen. In Zukunft wird eine integrierte Lösung in der Labvanced-Desktop-App verfügbar sein, mit der Sie diese Verbindung mit nur einem Mausklick herstellen können.
Skriptlösung
Mit Skripten können Sie den grundlegenden Python-Code anpassen, der erfordert, dass Sie das Skript ausführen und letztendlich die Flexibilität bietet, um Forschungsbedürfnisse zu erfüllen. Durch das Ausführen eines separaten Python-Skripts kommuniziert Labvanced mit der WebSocket-API und Python kommuniziert mit dem externen Gerät.
Die Konfiguration der WebSocket-API funktioniert, indem auf einen bestimmten Port und eine IP verwiesen wird. Dies spiegelt sich dann im Python-Code wider. Durch gegenseitiges Verweisen wird eine Kommunikationsverbindung über die WebSocket-API hergestellt.
HINWEIS: Um die Verbindung zu sehen, kann eine GUI für diesen halbautomatischen Prozess verwendet werden.
Unser vorheriger Ansatz (das direkte Einbetten in das Labvanced-Programm) war etwas zu eingeschränkt und schwer auf verschiedenen Betriebssystemen zum Laufen zu bringen. Mit diesen neuen Python-Skripten sollte es jetzt auf allen Plattformen (Linux, MacOS, Windows) funktionieren und es sollte möglich sein, LSL-Stream-Daten bidirektional zu senden und zu empfangen.
Was Sie tun müssen, um es auszuprobieren:
- Installieren Sie die 4 erforderlichen Bibliotheken mit etwas wie pip install -r requirements.txt
- Dann können Sie im Hintergrund auf demselben Computer, auf dem das Labvanced-Experiment gestartet wird, entweder (um LSL-Markierungen in Labvanced zu empfangen) python3 lsl_marker_receive.py oder (um LSL-Markierungen von Labvanced zu senden) python3 lsl_marker_send.py.
HINWEIS: Sie können diese Skripte auch leicht anpassen, falls Sie spezifische LSL-Parameter oder Stream-Namen wünschen.
In unserem GitHub WebSocket API Repository finden Sie zwei Beispiel-Python-Skripte, um LSL-Markierungen von/zu einem Labvanced-Experiment im Lab Streaming Layer -Ordner zu senden oder zu empfangen sowie detailliertere Anweisungen, wie Sie dies einrichten können.
Sie können auch diese Socket Connection Sample Study aus unserer Public Experiment Library importieren und sehen, wie die Ereignisse eingerichtet sind.
Beispiele für Experimente, die die WebSocket-API für die LSL-Integration nutzen
Es gibt zwei Beispielstudien in der Labvanced-Studienbibliothek, die den oben genannten entsprechen:
Senden von LSL-Markierungen (lsl_marker_send.py): https://www.labvanced.com/page/library/53231
Empfangen von LSL-Markierungen (lsl_marker_receive.py): https://www.labvanced.com/page/library/53230
Bitte beachten Sie, dass Sie beim Importieren oder Überprüfen dieser Beispielstudien in ihren "Studieneinstellungen" unter dem Unterabschnitt "Experimentfunktionen" sehen, dass das Kontrollkästchen für die "WebSocket-Verbindung" aktiviert ist, mit Verbindungsdetails, um sicherzustellen, dass das Labvanced-Experiment eine Verbindung zum auf demselben Computer ausgeführten Python-Skript herstellen kann, wie im Bild unten gezeigt: