デバイス接続¶
kazunokoライブラリでOSECHI検出器に接続する方法です。
概要¶
デバイス接続には以下のクラスを使用します。
connect()- デバイス接続用ファクトリー関数(推奨)PortDevice- 実デバイスとの通信クラスDeviceProtocol- 通信インターフェイス(型定義)
通常は connect() 関数を使用してください。
最小限の接続例¶
from kazunoko import connect
# デバイスに接続
with connect() as device:
print(f"Connected to {device.port}")
このコードで以下が実現されます:
- 自動ポート検出 - 利用可能なシリアルポートを自動探索
- 接続 - デバイスとのシリアル通信を確立
- クリーンアップ - コンテキストマネージャーが自動で接続を閉じる
推奨
常にコンテキストマネージャー(with文)を使用してください。接続を確実にクローズします。
ポートを指定した接続¶
デバイスが複数接続されている場合や、ポートを明示的に指定したい場合は、引数portにポート名を指定します。
from kazunoko import connect
# 特定のポートに接続
with connect(port="/dev/ttyUSB0") as device:
print(f"Connected to {device.port}")
ポート指定の例:
- Linux:
/dev/ttyUSB0,/dev/ttyACM0 - macOS:
/dev/cu.usbserial-110 - Windows:
COM1,COM3
ポートの確認方法¶
利用可能なシリアルポートを確認するにはserial.toolsを使います。
from serial.tools.list_ports import comports
for port_info in comports():
print(f"{port_info.device}: {port_info.description}")
またはターミナルで以下を実行してください。
# macOS / Linux
ls /dev/tty*
# Windows
mode
ポートの自動検出(auto-detect)¶
引数portを省略した場合、シリアルポートを自動的に検出します。
device = connect() # ポート自動検出
検出優先順位:
/dev/cu.usbserial*(macOSのUSBシリアルアダプター)/dev/ttyUSB*(LinuxのUSBシリアル)/dev/ttyACM*(Arduinoなど)/dev/ttyS*(組み込みシリアル)- 最初に見つかったポート(フォールバック)
複数デバイス接続時
複数のシリアルデバイスが接続されている場合、auto-detect は最初に見つかるポートを使用します。安定性のため 明示的にポート指定 することをお勧めします。
PortDeviceの直接使用¶
connect()を使わずに、PortDeviceを直接インスタンス化することもできます。
from kazunoko import PortDevice
# 直接インスタンス化
device = PortDevice(port="/dev/ttyUSB0", baudrate=115200, timeout=0.1)
try:
print(f"Connected to {device.port}")
finally:
device.close()
パラメーター:
port(str): シリアルポート(デフォルト:/dev/ttyUSB0)baudrate(int): ボーレート(デフォルト:115200)timeout(float): タイムアウト秒数(デフォルト:0.1)
コンテキストマネージャー推奨
PortDevice もコンテキストマネージャーに対応しています。直接使用する場合でも with 文を使用してください。
次のステップ¶
- Command クラス - デバイスにコマンドを送信
- エラーハンドリング - 本番環境向けのエラー処理
- CLIガイド - コマンドラインからの操作