1
EEGヘッドセットから受信データを読み込むために、私のプロジェクトの1つにUDPソケットプログラムを使用しています。次に、このデータを使用してロボットアームのサーボモータを制御します。私はソケットを作成し、データを印刷するために使用しているコードは正常に動作します。Pythonでソケットから受信データをフィルタリングするにはどうすればよいですか?
import socket
import subprocess
UDP_IP = "169.254.110.133"
UDP_PORT = 50000
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
while True:
(data,addr) = sock.recvfrom(1024)
print(data)
で来ているデータは、ヘッドセットから生EEGデータであり、それは、端末で次のようになります。
SourceTime 31972
TargetCode 1
ResultCode 0
Feedback 1
PauseApplication 0
CursorPosX 717
CursorPosY 2047
CursorPosZ 2047
このデータは、33の異なるセクションごとに数ミリ秒を持っています。データは常に同じ順序で提供されます。私のコードでは、データからいくつかの情報(TargetCode、ResultCode、Feedback)しか必要としません。どのようにこれらのセクションをフィルタリングし、私のコードで使用するのですか? TargetCodeを探して番号をコピーする方法はありますか?または、33個のセクションのストリームでTargetCodeが常に24番なので、そのように抽出できますか?
私は応答に感謝、それはまさに私の問題を解決していないようです。プログラムのサーバー側はEEGヘッドセットプログラムで、IPとポート番号を入力してデータを送信するように求められます。クライアント側では、入力ストリームから数ビットのデータを抽出する方法が必要です。おそらくforループを使用する方法はありますか?あるいはそれが単語TargetCodeを見たら何らかの方法でそれ以降の番号を取得する? –
これで、eegからターゲットコードを抽出するだけでいいですか?それは文字列ですか? –
文字列の場合、数値の抽出は>> int(outputData.split( "\ n")[1] .split( "")[1]) –