# I/O・状態・エラー処理の実装照合 このページは `source_reference/dobot_core/dobot_ctrl.py` と `dobot_tcp.py` の静的検証結果です。実機動作の保証ではありません。 ## I/O - `get_digital_input(id_num)` は `DobotCtrl` から `DobotTcp.get_digital_input(index)` に委譲され、Dashboard の `DI(index)` を呼び出します。正常応答では値を `bool` に変換します。 - `get_digital_input()` は通信エラー、応答エラー、解析失敗、例外時にも `False` を返します。**`False` だけでは入力LOWと取得失敗を区別できません。** インターロックなど安全用途の正常性判定に流用しないでください。 - `get_IO(id_num)` は入力DIではなく、feedback の `digital_outputs` を参照するDO readbackです。ビット位置は `id_num - 1` です。`id_num < 1` では `ValueError` になります。 - `set_IO(id_num, value)` は `DO(int(id_num), int(bool(value)))` を送信し、先頭の応答コードが0かどうかを真偽値で返します。書き込み後の物理的な出力状態を確認する処理ではありません。 ## 状態と完了 - `servo_on` はfeedbackの `EnableStatus` を真偽値に変換します。移動中かどうかを示すものではありません。 - `get_motion_complete()` は `busy_status` が `None` の場合 `False`、それ以外はその否定を返します。正常到達・アラームなしを保証する値ではありません。 - `wait_for_complete()` は Motion API の `Sync()` を呼び出し、その応答とモーションエラー検査で判定します。バックエンドの `timeout` と `interval` は使われず、公開 `DobotCtrl.wait_for_complete()` は引数を取りません。 ## エラー - `reset_error()` は Dashboard の `ClearError()` を送信します。エラー原因の解消や安全状態への復帰を保証しません。 - `get_error()`、`get_error_code()`、`get_error_count()`、`get_error_info()` は `DobotErrorManager` に委譲されます。詳細な戻り値や例外の契約は、同クラスのソースと照合する必要があります。 ## 未検証 実機でのDI/DOマッピング、feedbackの鮮度、通信断時の振る舞い、アラーム後の復帰シーケンス、Sphinx HTML生成は未検証です。