前提・実現したいこと
タイムコード(時:分.秒.フレーム)データを
RS232ケーブルを用いたシリアル通信でPCに取り込むシステムを作っています。
pythonで実装してみたのですが、
b''
と表示されるばかりで、上手く受信できていないのか不明です。
<送信側の設定>
・Bits per second: 9600
・Data bits: 8
・Parity: Odd
・Stop bits: 1
LTC(タイムコード)が入力されると、1キャラクタあたり8ビットを使用して以下のデータを出力する。
Byte 0 = ブレーク信号(20ビットLowレベル -> 2ビットハイレベル)
Byte 1 = XBhステータスおよびデータレングスバイト
Byte 2 = 00h-29h TIMEビット[フレーム](packed BCD)
Byte 3 = 00h-59h TIMEビット[秒](packed BCD)
Byte 4 = 00h-59h TIMEビット[分](packed BCD)
Byte 5 = 00h-23h TIMEビット[時](packed BCD)
Byte 6 = ・・・
・・・
Byte 12 = ・・・
Byte 2-5 に格納されているデータを抽出したいです。
タイムコードですので、1フレームずつ連続で送信し続けます。
そのほかの情報は今回不要と考え、割愛させていただきました。
ご助言・アドバイスをお願いいたします。
該当のソースコード
python3
1import serial 2 3ser=serial.Serial( 4 port='COM1', 5 baudrate=9600, 6 bytesize=serial.EIGHTBITS, 7 parity=serial.PARITY_ODD, 8 stopbits=serial.STOPBITS_ONE, 9 timeout=0) 10while True: 11 line=ser.read() 12 print(line)