Skip to content

Harden output power restore state handling#71

Merged
TamaruNorio merged 1 commit into
mainfrom
fix/output-power-restore-state
Jun 27, 2026
Merged

Harden output power restore state handling#71
TamaruNorio merged 1 commit into
mainfrom
fix/output-power-restore-state

Conversation

@TamaruNorio

Copy link
Copy Markdown
Owner

概要

標準Inventory統合側の送信出力一時変更について、変更送信後の復元保証を強化しました。

背景

従来は _offer_temporary_output_power_change() が、送信出力変更フレーム送信後に現在設定を読み戻し、その後に plans を返していました。

そのため、変更フレーム送信後、読み戻し処理で例外が発生した場合、main() 側の output_power_plansNone のままとなり、finally 側の復元対象から漏れる可能性がありました。

変更内容

  • src/utr_usb_inventory_with_output_power.py
    • _create_output_power_restore_state() を追加
    • _offer_temporary_output_power_change()restore_state を渡せるように変更
    • ユーザーが一時変更を確定した時点で、復元用 plansrestore_state に保持
    • 変更フレーム送信前に restore_required=True を立てる
    • 変更後読み戻しで例外が起きても、finally 側で復元用 plans を参照できるように変更
    • _restore_temporary_output_power()restore_state からも復元計画を取得できるように変更
    • restore_done で二重復元を防止

安全ガード

  • FLASH書き込みなし
  • 送信出力の対象はコマンドモード用パラメータのみ
  • 周波数変更なし
  • UHF_SET_INVENTORY_PARAM 送信なし
  • 復元は変更前読み取り値から作成済みの復元フレームのみ
  • 復元処理は従来どおり例外を表示し、機器側確認を促す

確認観点

  • py -m pytest が成功すること
  • 送信出力を一時変更しない場合、復元処理が走らないこと
  • 送信出力変更後に正常Inventory終了した場合、元の送信出力へ復元されること
  • 変更送信後の読み戻しで例外が発生しても、finally側で復元を試みること

実機確認メモ

送信出力変更に関わるため、マージ後にUTR-SUN02-4CH / USM02で実機確認してください。8CH制御は変更していません。

@TamaruNorio TamaruNorio merged commit aaeb775 into main Jun 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant