シリアル通信プロトコルインターフェース
目的:SerialPort クラスのメソッドをすばやく理解できるよう、クラスのメソッド、パラメータ、戻り値、使用例を紹介し、開発に役立てます。
クラス概要
SerialPortr クラスはシリアル通信プロトコルインターフェースで、シリアルポートの管理とデータ通信のメソッドを統合しています。
1. コンストラクタ
__init__(port="/dev/ttyS1", baudrate=115200, timeout=1)
機能 :シリアルポートのパラメータを初期化します
パラメータ :
port(str):シリアルデバイスのパス。デフォルトは/dev/ttyS1baudrate(int):ボーレート。デフォルトは115200timeout(int):タイムアウト(秒)。デフォルトは1
戻り値 :なし
使用例 :
python
# 使用默认参数
serial_dev = SerialPort()
# 自定义参数
serial_dev = SerialPort(port="/dev/ttyUSB0", baudrate=9600, timeout=2)
2. シリアルポート管理メソッド
open()
機能 :シリアル接続を開きます
パラメータ :なし
戻り値 :
bool:成功時はTrue、失敗時はFalseを返します
使用例 :
python
serial_dev = SerialPort()
if serial_dev.open():
print("串口打开成功")
else:
print("串口打开失败")
close()
機能 :シリアルポート接続を閉じます
パラメータ :なし
戻り値 :なし
使用例 :
python
serial_dev.close()
print("串口已关闭")
3. データ通信メソッド
serial_send(data)
機能 :シリアルポートにバイナリデータを送信します
パラメータ :
data(bytes):送信するバイナリデータ
戻り値 :
int:送信に成功したバイト数。失敗時は-1を返します
使用例 :
python
# 发送十六进制数据
data = bytes([0xAA, 0xBB, 0x03, 0x84])
bytes_sent = serial_dev.serial_send(data)
print(f"发送了 {bytes_sent} 字节")
# 发送字符串(需要编码)
text_data = "Hello Arduino".encode('UTF-8')
bytes_sent = serial_dev.serial_send(text_data)
serial_recv(expected_bytes=None)
機能 :シリアルポートからデータを受信します
パラメータ :
expected_bytes(int, 省略可):受信を期待するバイト数。Noneの場合はバッファ内のすべてのデータを読み取ります
戻り値 :
str:受信したデータ(デコード済みの文字列)。失敗時はNoneを返します
使用例 :
python
# 接收指定字节数
received = serial_dev.serial_recv(expected_bytes=10)
if received:
print(f"接收到: {received}")
# 接收所有可用数据
received = serial_dev.serial_recv()
if received:
print(f"接收到所有数据: {received}")
ドキュメント