PySerial と Python (3.3) に問題があります: 実行しているコード (今のところ、これは単純なテスト ケースです) は次のとおりです。
ser = serial.Serial('/dev/ttyACM0', 115200)
result = ser.readline()
parsed = result.split(",")
次のエラーが発生します。
TypeError: type str doesn't support the buffer API
私の愚かな間違いは何ですか?これは、PySerial の readline がバイナリ文字列を返している (python 3 の新機能?) という事実と、バイナリ文字列に対して実行すると文字列操作の「分割」が失敗するという事実にたどり着いたと思います-これを実行すると正常に動作します:
'1234, asdf, 456, jkl'.split(",")
これにより、次のことが期待されます。
['1234', 'asdf', '456', jkl']
しかし、実行中:
b'1234, asdf, 456, jkl'.split(",")
上記のエラーが発生します。使用する別の readline メソッドはありますか? read を使用して独自のコードを作成する必要がありますか (/r/n が表示されるまで読み取ります)、または str.isalnum() を満たす文字列に簡単に変換できますか? ありがとう!