いつも大変お世話になります。
急遽、三菱のシーケンサからシリアル(RS-232C)で出力されるデータをラズベリーパイ3で受け取り、保存することになりました。
ラズベリーパイ3はStrechを使用し、手元にあったエレコムのUC-SGTと言うRS-232C⇔USBケーブルを使用してシーケンサと接続しています。
受け取りプログラムはPython3でとりあえず以下のようにいたしました。
import serial import time def main(): ser = serial.Serial('/dev/ttyUSB_UC-SGT', 9600) time.sleep(2) print(ser.portstr) while 1: # シリアル通信でデータを受信 rStr = ser.readline() #rStr.replace('\x00','') # 読み込んだデータの表示 #print(rStr.decode('utf-8')) print(rStr) if __name__ == '__main__': try: main() except KeyboardInterrupt: pass
上記のプログラムのprint(rStr)の出力結果は以下の通りです。
b' \x00\x00\x00\x00 2 , ,0 ,0 , , , 4370 , 993 , \r\n'
この出力結果からヌル文字と改行コードを取り除きたいのです。
いろいろ探して以下のようなサイトも見つけましたが内容としてはstr型のようで問題なく実行できますが当方の出力結果はbytes型なので当たり前ですがうまくいきませんでした。
https://stackoverflow.com/questions/38883476/how-to-remove-those-x00-x00
シーケンサの内容を確認してもらったところヌル文字は全く意味がないそうですが、シーケンサをいじることはできません。
大変申し訳ありませんが何か参考になるものがありましたらよろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/27 23:50