Python API reference (generated from docstrings)

Sphinx autodoc generates the method and property lists from the source code.

RobotVarManager

.. py:module:: teaching_manager.robot_var_manager

.. py:class:: RobotVarManager(robot_instance=None, logger=None, filename=None, autosave=False, autoload=False) :module: teaching_manager.robot_var_manager

ベースクラス: :py:class:object

Cobotta だけではなく一般的な Robot 向けの座標マネージャ

.. py:method:: RobotVarManager.add_robot(cobotta) :module: teaching_manager.robot_var_manager

.. py:method:: RobotVarManager.attach_robot(cobotta) :module: teaching_manager.robot_var_manager

.. py:method:: RobotVarManager.delete_var(kind, num) :module: teaching_manager.robot_var_manager

  ローカルキャッシュの指定変数のみ削除する。実機には影響しない。

.. py:method:: RobotVarManager.get_robot(varname) :module: teaching_manager.robot_var_manager

  Cobotta本体から値を取得し、managerにも反映

.. py:method:: RobotVarManager.get_var(kind_or_combined, num=None, default=False) :module: teaching_manager.robot_var_manager

  単一ローカル変数を取得する。

  `get_var("P", 10)` と `get_var("P10")` は同じ意味である。
  変数が存在しない場合は CobottaCtrl 側の慣例に合わせて False を返す。

.. py:method:: RobotVarManager.list_vars() :module: teaching_manager.robot_var_manager

.. py:method:: RobotVarManager.load(filename=None) :module: teaching_manager.robot_var_manager

.. py:method:: RobotVarManager.read_var_from_robot(kind, num=None) :module: teaching_manager.robot_var_manager

  cobotta本体 --> managerに反映

.. py:method:: RobotVarManager.read_vars_from_robot(kind, start, end=None) :module: teaching_manager.robot_var_manager

  cobotta本体 --> managerに反映

.. py:property:: RobotVarManager.robot_instance :module: teaching_manager.robot_var_manager :type: ~typing.Any

  接続済みロボットを返す。接続がない場合はNone。

.. py:method:: RobotVarManager.save(filename=None) :module: teaching_manager.robot_var_manager

.. py:method:: RobotVarManager.set_var(kind, num, value=None, save=None) :module: teaching_manager.robot_var_manager

  単一ローカル変数のセット。

  `set_var("P", 10, value)` と `set_var("P10", value)` の両方を受け付ける。

  :param kind: 変数種別または結合済み変数名。例: `"P"`, `"P10"`。
  :param num: 変数番号、または `kind` が結合済み変数名の場合の値。
  :param value: 保存する値。
  :param save: JSON保存制御。`None` の場合は `autosave` 設定に従う。
               `True` の場合は即保存し、`False` の場合は保存しない。

.. py:method:: RobotVarManager.set_vars(kind, start, end=None, value=None) :module: teaching_manager.robot_var_manager

  ローカル変数の一括/範囲セット(cobotta本体には影響しない)

  例::
      set_vars("P", 10, value=[1,2,3,4,5,6])
      set_vars("P", 10, 12, value=[ [1,2,3,4,5,6], ... ])

  :param kind:
  :param start:
  :param end:
  :param value:

  Returns:

.. py:method:: RobotVarManager.write_all_to_robot() :module: teaching_manager.robot_var_manager

  Manager に存在する全変数を robot_instance 本体に一斉反映(超危険)

.. py:method:: RobotVarManager.write_var_to_robot(kind, num=None) :module: teaching_manager.robot_var_manager

  end 省略と同じ意味
  manager --> cobotta本体へ反映(危険!)

.. py:method:: RobotVarManager.write_vars_to_cobotta(kind, start, end=None) :module: teaching_manager.robot_var_manager

  end 省略で var のみ登録(一つだけ)
  manager --> cobotta本体へ反映(危険!)

TeachingModel

.. py:module:: teaching_manager.teaching_model

ティーチングGUIのModel。

責務: DeviceProxyの共通APIで指定範囲のP変数をロボットから取得し、 JSONから読み込んだP変数と現在位置を画面表示用に保持する。

責務外: Qt画面の構築、DeviceProxyの生成、ロボット固有APIの変換、 Qt画面の構築とユーザーへの確認ダイアログ。

安全上の制約: 実機への書き込みは指定番号の明示操作に限る。 P変数の値から未使用かどうかを推測しない。

.. py:class:: TeachingModel(manager, filename, logger=None, async_mode=False) :module: teaching_manager.teaching_model

ベースクラス: :py:class:object

ロボットとJSONから読み取ったP変数の表示状態を管理する。

.. py:property:: TeachingModel.async_mode :module: teaching_manager.teaching_model :type: bool

  現在位置取得APIを非同期で公開する設定を返す。

.. py:method:: TeachingModel.clear_number(number) :module: teaching_manager.teaching_model

  指定P番号を未使用値に変更し、実機から読み戻して反映する。

  Cobottaでは実機のP変数を変更する。その他はJSONを更新する。

.. py:property:: TeachingModel.current_position :module: teaching_manager.teaching_model :type: ~typing.Any

  最後に読み取ったロボットの現在位置を返す。

.. py:method:: TeachingModel.delete_numbers(numbers) :module: teaching_manager.teaching_model

  選択P番号を表示一覧とローカルキャッシュから削除する。

  Cobottaでは実機とJSONを変更しない。その他はJSONからも削除する。

.. py:method:: TeachingModel.first_unused(start, end) :module: teaching_manager.teaching_model

  未使用判定の仕様が未確定のため、常にNoneを返す。

  取得できなかった番号や値だけを根拠に空き番号を判定しない。

.. py:property:: TeachingModel.has_robot_changes :module: teaching_manager.teaching_model :type: bool

  Cobotta内部値と表示中のP変数に差があるかを返す。

.. py:property:: TeachingModel.has_unsaved_changes :module: teaching_manager.teaching_model :type: bool

  表示内容が最後に保存したJSON相当の状態と異なるかを返す。

.. py:property:: TeachingModel.json_filename :module: teaching_manager.teaching_model :type: str

  起動時に指定されたデフォルトJSONファイルのパスを返す。

.. py:method:: TeachingModel.load_file(filename=None) :module: teaching_manager.teaching_model

  JSONを読み取って表示状態を更新する。ロボットへは書き込まない。

  :param filename: 読み込むJSONファイル。省略時はデフォルトファイル。
                   任意ファイルを選んでも保存先のデフォルト設定は変更しない。

.. py:property:: TeachingModel.positions :module: teaching_manager.teaching_model :type: ~typing.Dict[str, ~typing.Any]

  表示用のP変数一覧のコピーを返す。

.. py:method:: TeachingModel.read_current_position() :module: teaching_manager.teaching_model

  現在位置を取得する。

  async_mode=False: 同期実行し、座標を返す。
  async_mode=True: コルーチンを返す。呼び出し側でawaitする。

  ロボット内部変数およびJSONへの書き込みは行わない。

.. py:method:: TeachingModel.read_robot(start, end) :module: teaching_manager.teaching_model

  指定したP番号範囲を実機から読み取る。

  DeviceProxyの共通API get_var("P", 番号) を利用する。
  get_all_var()は変数名一覧を返すため使用しない。
  読み取った値はRobotVarManagerのローカルキャッシュにも反映する。
  読み取った結果は表示に反映するが、JSONには保存しない。

  :param start: 読み取り開始P番号(両端を含む)。
  :param end: 読み取り終了P番号(両端を含む)。

  :raises RuntimeError: ロボット未接続の場合。
  :raises ValueError: 番号範囲が不正な場合。
  :raises Exception: 実機からの読み取りに失敗した場合、その例外を伝播する。

.. py:property:: TeachingModel.robot :module: teaching_manager.teaching_model :type: ~typing.Any

  マネージャーに接続済みのロボットインスタンスを返す。

.. py:method:: TeachingModel.save_file(allow_empty=False, data=None, filename=None) :module: teaching_manager.teaching_model

  現在画面に表示しているP変数をJSONへ保存する。

  ロボットには書き込まない。読み取り結果がない場合は既存ファイルを
  空のデータで上書きしない。保存成功後にだけ表示元を更新する。

.. py:method:: TeachingModel.save_on_close() :module: teaching_manager.teaching_model

  終了時にCobottaへの同期後、デフォルトJSONへ保存する。

.. py:method:: TeachingModel.set_storage_mode(uses_robot_memory) :module: teaching_manager.teaching_model

  P変数の保存先を設定する。Controllerがデバイス名から決定する。

  :param uses_robot_memory: Trueなら実機P変数、FalseならJSONファイル。

.. py:property:: TeachingModel.source :module: teaching_manager.teaching_model :type: str

  現在表示しているP変数の取得元を返す。

.. py:method:: TeachingModel.sync_robot() :module: teaching_manager.teaching_model

  表示中の変更されたP変数のみをCobottaに書き込み、読み戻す。

  一覧から削除した番号は対象外とし、実機の値を削除しない。

.. py:method:: TeachingModel.teach_first_unused(start, end) :module: teaching_manager.teaching_model

  空き番号への自動登録。未使用判定が未確定の間は書き込まない。

.. py:method:: TeachingModel.teach_number(number) :module: teaching_manager.teaching_model

  現在位置を指定P番号へ書き込み、実機から読み戻す。

  明示的な上書き操作専用。GUI側で番号と上書き確認を行う。
  読み戻し成功後、画面表示とローカルキャッシュを更新する。
  JSONへの保存は別ボタンで明示的に行う。

TeachingController

.. py:module:: teaching_manager.teaching_controller

ティーチング画面の操作を調整するController。

責務: 起動時の読込元の選択、現在位置取得、P変数の読書き、 クリア、ローカル削除、JSON保存のModelへの委譲。 責務外: Qtウィジェット、確認ダイアログ、ロボット固有APIの実装。

.. py:class:: TeachingController(model, device_name, logger=None) :module: teaching_manager.teaching_controller

ベースクラス: :py:class:object

GUIからの操作をModelへ振り分ける。

.. py:method:: TeachingController.clear_number(number) :module: teaching_manager.teaching_controller

  指定P変数を未使用値に変更する。

.. py:method:: TeachingController.clear_numbers(numbers) :module: teaching_manager.teaching_controller

  選択したP変数を保存先に応じて順次クリアする。

.. py:method:: TeachingController.delete_numbers(numbers) :module: teaching_manager.teaching_controller

  一覧から削除する。JSON管理ではファイルにも反映する。

.. py:property:: TeachingController.device_name :module: teaching_manager.teaching_controller :type: str

  DeviceProxy生成時のデバイス名を返す。

.. py:property:: TeachingController.has_robot_changes :module: teaching_manager.teaching_controller :type: bool

  Cobotta内部値との不一致があるかを返す。

.. py:property:: TeachingController.has_unsaved_changes :module: teaching_manager.teaching_controller :type: bool

  JSON未保存の変更があるかを返す。

.. py:property:: TeachingController.json_filename :module: teaching_manager.teaching_controller :type: str

  ファイル選択ダイアログの初期パスとなるJSONファイル名を返す。

.. py:method:: TeachingController.load_file(filename=None) :module: teaching_manager.teaching_controller

  指定したJSONを読み込む。省略時はデフォルトファイルを使う。

.. py:method:: TeachingController.load_initial(start, end) :module: teaching_manager.teaching_controller

  明示設定に従って初期データを読み込む。

.. py:property:: TeachingController.model :module: teaching_manager.teaching_controller :type: ~teaching_manager.teaching_model.TeachingModel

  表示状態を保持するModelを返す。

.. py:method:: TeachingController.read_current_position() :module: teaching_manager.teaching_controller

  現在位置を取得する。同期/非同期モードはModel設定に従う。

.. py:method:: TeachingController.read_robot(start, end) :module: teaching_manager.teaching_controller

  指定範囲のP変数を実機から読み込む。

.. py:method:: TeachingController.save_file(filename=None) :module: teaching_manager.teaching_controller

  指定したJSONへ一覧を保存する。省略時は既定の保存先を使う。

.. py:method:: TeachingController.save_on_close() :module: teaching_manager.teaching_controller

  終了時の実機同期とデフォルトJSON保存を実行する。

.. py:method:: TeachingController.teach_first_unused(start, end) :module: teaching_manager.teaching_controller

  空き番号への登録をModelへ委譲する。

.. py:method:: TeachingController.teach_number(number) :module: teaching_manager.teaching_controller

  現在位置を指定P番号へ書き込む。

.. py:property:: TeachingController.uses_robot_memory :module: teaching_manager.teaching_controller :type: bool

  P変数の保存先がロボット内部メモリかどうかを返す。

TeachingWindow (GUI API)

.. py:module:: teaching_manager.teaching_gui

P座標ティーチングGUIのティーチング・JSON保存版。

Qtによる表示とボタン操作を担当する。データ取得と保持はControllerに委譲する。 実機への書き込みはユーザーが確認した指定番号に限定する。

.. py:class:: TeachingWindow(*args, **kwargs) :module: teaching_manager.teaching_gui

ベースクラス: :py:class:~PySide6.QtWidgets.QMainWindow

P変数の読み取り操作と表示を担当するQt画面(View)。

データ取得と操作はControllerへ委譲する。実機への直接書き込みは行わない。

.. py:method:: TeachingWindow.closeEvent(event) :module: teaching_manager.teaching_gui

  未保存の変更がある場合に、同期・保存するか確認する。

.. py:method:: TeachingWindow.refresh() :module: teaching_manager.teaching_gui

  Modelの保持状態を画面に反映する。