OWON SDS7102からpythonで波形取得...できたらいいなーと思っている。で、今までの格闘はなんだったんだーという事件が発生。いろいろ試したところ、STARTBINでは画面に表示されている波形しか持ってこれないってことがわかり...で、調べていたらSTARTMEMDEPTHでやってるのあるじゃーんTT
ここの下のほうにowon_read.zipへのリンクがあり、直DLになっている。で、やってみる。
...仕様が古いのか動かない部分があったので、ちょこちょこ修正したけど、
まぁまぁあっさり動いたー。
tの最後の値が9.998e-4で、オシロをSTOP状態でSEC/DIVを変えて時間範囲を調べると10msなので、あってるー。
やっぱり、自ら格闘するより、広く調べて先人に頼るのが正解ですよね。
で、ソースは著作権の問題になってはいけないので、掲載しません。
変えたところは
print文は括弧をつける。
socketから受信したデータはbytesで扱う
full_data = ""
を
full_data = bytes()
ってすればおk。
例外の受け方
except socket.error, e:
を
except socket.error as e:
ってする。
データはbytesで保持しているので
temp = temp + (ord(data[data_p+1])<<8)
みたいなところは
temp = temp + (data[data_p+1]*(2**8))
ってする。
同じ理由で
temp = struct.unpack('b',data[data_p+0])[0]
は
temp = struct.unpack('b',bytes([data[data_p+0]]))[0]
ってする。
同じ理由で
temp = data[data_p:data_p+l-1] + ""
は
temp = data[data_p:data_p+l-1]
ってする。
まぁ、こんなとこですかね。
しかし、このひとどうやってこの情報(バイナリデータの型や配置の情報)を入手したんだろ...自分で条件変えながらデータを取り込んで調べたのかな...
コメントをお書きください