まえがき
Raspberry Pi とか arduino が流行っており 通信することもあるだろうと思うので、 シリアル通信ライブラリ pysserial の使い方を知っておく
インストール
pip でインストール
$ pip3 install pyserial
使い方
通信設定して、オブジェクト生成する。
オープンして、送受信を繰り返す。用が済んだらクローズする。
ブロックが発生する可能性があるので、事前のバッファ確認をしたほうが良い。
ゴミデータが存在する可能性もあるが、初回以外はなるべくバッファクリアはしない。
受信は無限長のデータ解析みたいに考えるほうが取りこぼしなく、通信処理が安定するので 1 byte ずつreadすると良い。
サンプル
#!/usr/bin/env python3
# coding: utf-8
"""python script
"""
import serial
def main():
"""main
"""
comport = serial.Serial('COM1', baudrate=115200, parity=serial.PARITY_NONE)
# timeout=None, wait forever
# timeout=0, non-blocking
comport.open()
# clear receive buffer
comport.reset_input_buffer()
# send data
if comport.out_waiting > 0:
comport.reset_output_buffer()
# 送信データはbytes 型
comport.write(b'123456')
# recv data
if comport.in_waiting > 0:
# 受信データはbytes 型
recv_data = comport.read(1)
comport.close()
if __name__ == '__main__':
main()