Skip to content

デバイス接続

kazunokoライブラリでOSECHI検出器に接続する方法です。

概要

デバイス接続には以下のクラスを使用します。

  • connect() - デバイス接続用ファクトリー関数(推奨)
  • PortDevice - 実デバイスとの通信クラス
  • DeviceProtocol - 通信インターフェイス(型定義)

通常は connect() 関数を使用してください。


最小限の接続例

from kazunoko import connect

# デバイスに接続
with connect() as device:
    print(f"Connected to {device.port}")

このコードで以下が実現されます:

  1. 自動ポート検出 - 利用可能なシリアルポートを自動探索
  2. 接続 - デバイスとのシリアル通信を確立
  3. クリーンアップ - コンテキストマネージャーが自動で接続を閉じる

推奨

常にコンテキストマネージャー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()  # ポート自動検出

検出優先順位:

  1. /dev/cu.usbserial* (macOSのUSBシリアルアダプター)
  2. /dev/ttyUSB* (LinuxのUSBシリアル)
  3. /dev/ttyACM* (Arduinoなど)
  4. /dev/ttyS* (組み込みシリアル)
  5. 最初に見つかったポート(フォールバック)

複数デバイス接続時

複数のシリアルデバイスが接続されている場合、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 文を使用してください。


次のステップ