WebSocket API
カスタムWebSocket APIを使用すると、実行時にLabvancedと他のサーバーの間に接続を作成できます。これは、本質的にLabvancedサーバーと指定した他のサーバーとの間でデータを双方向に送信できる可能性を提供します。データを一方向のみで送信する必要がある場合(つまり、直接サーバーに保存する場合)は、Webhook APIのドキュメントを参照してください。
WebSocket APIが利用できる実験のいくつかの例は以下の通りです:
- LabvancedからEEGシステム、アイ・トラッキングシステム、または他のローカルデータ記録デバイスに実験的トリガー(例:トライアル/刺激開始または参加者の応答)を送受信する実験。
- インターネット経由で他のサーバー/APIにオンラインで記録されたデータを送信し、それを処理する実験(例:AI/機械学習プロセスやリアルタイムデータ分析)。
- Labvancedと、ローカルまたはリモートで実行できる他のプロセス間で双方向通信を作成する実験(例:BCI、生体フィードバック、または他のクローズドループシステム)。
Labvancedとローカルサーバー(デバイス接続用など)を接続する場合、現在は以下に説明する単純なスクリプトを使用して、Labvancedスタディエディタでイベントを設定することによって実現できます。将来的には、Labvanced Desktop Appに統合されたソリューションが提供され、ボタンをクリックするだけでこの接続を確立できるようになります。
スクリプトソリューション
スクリプトを使用することで、基本的なPythonコードをカスタマイズできます。これにより、スクリプトを実行する必要があり、最終的に研究ニーズに合った柔軟性が提供されます。別のPythonスクリプトを実行することで、LabvancedはWebSocket APIと通信し、Pythonは外部デバイスと通信します。
WebSocket APIの構成は、特定のポートとIPを指し示すことによって機能します。これがPythonコードに反映されます。お互いに指し示すことで、WebSocket APIを通じて通信経路が確立されます。
注意: 接続を表示するために、この半自動プロセスにはGUIを使用できます。
以前のアプローチ(Labvancedプログラムに直接埋め込む方法)は、異なるオペレーティングシステムで動作するのが難しく、少し制限がありました。そのため、これらの新しいPythonスクリプトを使用することで、すべてのプラットフォーム(Linux、MacOS、Windows)で動作し、双方向にLSLストリームデータを送受信できるはずです。
試すために必要なこと:
- pip install -r requirements.txt のようなもので、必要な4つのライブラリをインストールします。
- その後、Labvanced実験が開始される同じマシンでバックグラウンドで、(LabvancedでLSLマーカーを受信するために)python3 lsl_marker_receive.pyまたは(LabvancedからLSLマーカーを送信するために)python3 lsl_marker_send.pyを使用して開始できます。
注: 特定のLSLパラメータやストリーム名が必要な場合は、これらのスクリプトを簡単に適応することもできます。
私たちのGitHub WebSocket APIリポジトリでは、Lab Streaming Layerフォルダー内でLabvanced実験からLSLマーカーを送信または受信するための2つの例Pythonスクリプトと、そのセットアップ方法に関するより詳細な指示を見つけることができます。
また、私たちのパブリック実験ライブラリからこのソケット接続サンプルスタディをインポートし、イベントがどのように設定されているかを見ることができます。
LSL統合のためのWebSocket APIを利用した実験の例
上記に対応するLabvancedスタディライブラリに2つの例スタディがあります:
LSLマーカーの送信 (lsl_marker_send.py): https://www.labvanced.com/page/library/53231
LSLマーカーの受信 (lsl_marker_receive.py): https://www.labvanced.com/page/library/53230
これらの例スタディをインポートまたは点検する際には、 "実験機能"のサブセクションの「スタディ設定」にあるチェックボックスで「WebSocket接続」がチェックされていることを確認し、Labvanced実験が同じコンピュータ上で実行されているPythonスクリプトに接続できるように接続の詳細が示されている画像を確認してください:
