WebSocket API
Die benutzerdefinierte WebSocket-API ermöglicht es Ihnen, während der Laufzeit eine Verbindung zwischen Labvanced und einem anderen Server herzustellen. Dies erlaubt grundsätzlich die Möglichkeit, Daten in beide Richtungen zwischen dem Labvanced-Server und dem anderen von Ihnen angegebenen Server zu senden. Wenn Sie Daten nur in eine Richtung senden müssen (d.h. diese direkt auf Ihrem Server zu speichern), lesen Sie die Dokumentation zur Webhook-API.
Einige Beispiele für Experimente, in denen die WebSocket-API genutzt werden kann, sind die folgenden:
- Ein Experiment, in dem Sie experimentelle Auslöser (z.B. Beginn von Versuchsreihen/Stimulation oder Teilnehmerantwort) von Labvanced an ein EEG-System, Eye-Tracking-System oder ein anderes lokales Datenerfassungsgerä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 sie verarbeitet (z.B. ein KI/Maschinenlernprozess oder Echtzeitanalyse von Daten).
- Ein Experiment, in dem Sie eine bidirektionale Kommunikation zwischen Labvanced und einem anderen Prozess erstellen möchten, der lokal oder remote laufen kann (z.B. für BCI, Biofeedback oder andere geschlossene Systeme).
Im Fall der Verbindung von Labvanced mit einem lokalen Server (z.B. zur Verbindung von Geräten) können Sie dies derzeit über einfache Skripte (unten beschrieben) und durch Einrichten von Ereignissen im Labvanced-Studieneditor erreichen. In Zukunft wird eine integrierte Lösung in der Labvanced-Desktop-Anwendung verfügbar sein, bei der Sie diese Verbindung mit einem einzigen Klick herstellen können.
Skriptlösung
Mit Skripten können Sie grundlegenden Python-Code anpassen, der es erfordert, das Skript auszuführen und letztendlich die Flexibilität bietet, um den Forschungsbedürfnissen gerecht zu werden. Durch die Ausführung 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 bestimmte IP verwiesen wird. Dies wird dann im Python-Code reflektiert. Indem sie aufeinander verweisen, wird eine Kommunikationslinie durch die WebSocket-API hergestellt.
HINWEIS: Um die Verbindung anzuzeigen, kann eine GUI für diesen halbautomatischen Prozess verwendet werden.
Unser vorheriger Ansatz (um es direkt im Labvanced-Programm einzubetten) war etwas zu eingeschränkt und schwer in 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-Streamdaten 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-Marker in Labvanced zu empfangen) python3 lsl_marker_receive.py oder (um LSL-Marker von Labvanced zu senden) python3 lsl_marker_send.py starten.
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 zum Senden oder Empfangen von LSL-Markern von/zu einem Labvanced-Experiment im Lab Streaming Layer -Ordner sowie detailliertere Anleitungen, 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 zur LSL-Integration nutzen
Es gibt zwei Beispielsstudien in der Labvanced-Studienbibliothek, die mit den oben genannten übereinstimmen:
Senden von LSL-Markers (lsl_marker_send.py): https://www.labvanced.com/page/library/53231
Empfangen von LSL-Markers (lsl_marker_receive.py): https://www.labvanced.com/page/library/53230
Bitte beachten Sie, dass Sie beim Importieren oder Prüfen dieser Beispielsstudien in den „Studieneinstellungen“ unter der Untersektion „Experiment-Funktionen“ sehen, dass das Kontrollkästchen für die "WebSocket-Verbindung" aktiviert ist, mit Verbindungsdetails, um sicherzustellen, dass das Labvanced-Experiment mit dem auf demselben Computer laufenden Python-Skript verbunden werden kann, wie im Bild unten gezeigt:
