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 eine Richtung senden müssen (d.h. direkt auf Ihren Server speichern), siehe die Dokumentation zur Webhook-API.
Einige Beispiele für Experimente, in denen die WebSocket-API genutzt werden kann, sind die folgenden:
- Ein Experiment, bei dem Sie experimentelle Trigger (z.B. Versuch/Stimulation Beginn oder Teilnehmerantwort) von Labvanced an ein EEG-System, ein Eye-Tracking-System oder ein anderes lokales Datenaufzeichnungsgerät senden/empfangen möchten.
- Ein Experiment, bei 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 Echtzeitdatenanalyse).
- Ein Experiment, bei dem Sie eine bidirektionale Kommunikation zwischen Labvanced und einem anderen Prozess, der lokal oder remote ausgeführt werden kann, herstellen möchten (z.B. für BCI, Biofeedback oder andere geschlossene Systeme).
Im Falle der Verbindung von Labvanced mit einem lokalen Server (z.B. um Geräte zu verbinden), können Sie dies derzeit über einfache Skripte (unten beschrieben) und durch das Einrichten von Ereignissen im Labvanced Studieneditor erreichen. In Zukunft wird eine integrierte Lösung in der Labvanced Desktop-Anwendung verfügbar sein, mit der Sie diese Verbindung mit nur einem Klick herstellen können.
Skriptlösung
Mit Skripten können Sie grundlegenden Python-Code anpassen, der das Ausführen des Skripts erfordert und letztendlich die Flexibilität bietet, um Forschungsbedürfnisse zu erfüllen. Indem Sie ein separates Python-Skript ausführen, 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-Adresse verwiesen wird. Dies wird dann im Python-Code widergespiegelt. Durch gegenseitiges Verweisen wird eine Kommunikationslinie über die WebSocket-API hergestellt.
HINWEIS: Um die Verbindung anzuzeigen, kann eine GUI für diesen halbautomatischen Prozess verwendet werden.
Unser vorheriger Ansatz (es direkt im Labvanced-Programm einzubetten) war etwas zu eingeschränkt und schwierig, um auf verschiedenen Betriebssystemen zu funktionieren. Daher sollten die neuen Python-Skripte jetzt auf allen Plattformen (Linux, MacOS, Windows) funktionieren und es sollte möglich sein, LSL-Streaming-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
- Danach können Sie im Hintergrund auf demselben Rechner, 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 Streamnamen wünschen.
In unserem GitHub WebSocket API-Repository, finden Sie zwei Beispiel-Python-Skripte, um LSL-Markierungen von/einem Labvanced-Experiment im Lab Streaming Layer Ordner zu senden oder zu empfangen, sowie detailliertere Anweisungen, wie Sie dies einrichten.
Sie können auch diese Socket Connection Sample Study aus unserer öffentlichen Experimentbibliothek importieren und sehen, wie die Ereignisse eingerichtet sind.
Beispiele für Experimente, die die WebSocket-API für LSL-Integration nutzen
Es gibt zwei Beispielstudien in der Labvanced Studienbibliothek, die den obigen 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" im Abschnitt "Experimentmerkmale" sehen, dass das Kontrollkästchen für die "WebSocket-Verbindung" mit Verbindungsdetails aktiviert ist, um sicherzustellen, dass das Labvanced-Experiment mit dem auf demselben Computer ausgeführten Python-Skript verbinden kann, wie im Bild unten gezeigt: