HumansXドキュメントセンター 公式サイトへ ↗

シリアル通信プロトコルインターフェース

目的:SerialPort クラスのメソッドをすばやく理解できるよう、クラスのメソッド、パラメータ、戻り値、使用例を紹介し、開発に役立てます。

クラス概要

SerialPortr クラスはシリアル通信プロトコルインターフェースで、シリアルポートの管理とデータ通信のメソッドを統合しています。

1. コンストラクタ

__init__(port="/dev/ttyS1", baudrate=115200, timeout=1)

機能 :シリアルポートのパラメータを初期化します

パラメータ :

  • port (str):シリアルデバイスのパス。デフォルトは /dev/ttyS1
  • baudrate (int):ボーレート。デフォルトは 115200
  • timeout (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}")