Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 44 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ py .\src\utr_usb_sample.py
8. 必要に応じて、UTR-SUN02-4CH のアンテナ接続確認とANT別順次Inventoryを実行する。
9. Inventoryを実行する。
10. 終了時に送信出力を元の値へ復元する。
11. アンテナ設定を変更した場合は、元のコマンドモード用アンテナ設定へ復元する。
12. 結果ファイルを保存し、シリアル接続を閉じる。
11. 復元後に送信出力設定を読み戻す。
12. アンテナ設定を変更した場合は、元のコマンドモード用アンテナ設定へ復元する。
13. 結果ファイルを保存し、シリアル接続を閉じる。

### UTR-SUN02-8CH 複数アンテナ順次Inventory確認CLI

Expand Down Expand Up @@ -71,6 +72,7 @@ py .\src\utr_8ch_sequential_inventory_cli.py
- 通信速度の標準確認値は 115200 bps です。
- 標準入口の送信出力一時変更は、現時点では UTR-SUN02-4CH / USM02 を対象にします。
- 送信出力の変更先は、コマンドモード用パラメータです。
- 送信出力一時変更を確定した場合は、変更送信前に復元計画を保持し、例外時も `finally` 側で復元を試みます。
- FLASHデータへの書き込みは行いません。
- `UHF_SET_INVENTORY_PARAM` は自動送信しません。
- UTR-SUN02-8CH / USM08 の順次Inventory CLIでは、使用アンテナ番号設定をコマンドモード用パラメータへ送信します。FLASHへは保存しません。
Expand All @@ -86,12 +88,15 @@ py .\src\utr_8ch_sequential_inventory_cli.py

- USB実機で ROM_VERSION_CHECK、COMMAND_MODE_SET、UHF_GET_INVENTORY_PARAM、UHF_INVENTORY、ブザー制御の応答を確認済みです。
- UTR-SUN02-4CH / USM02 で、送信出力の一時変更と復元を実機確認済みです。
- 送信出力 24.0 dBm から一時的に別出力へ変更し、Inventory後に 24.0 dBm へ復元できることを確認済みです。
- 標準Inventoryフローで、送信出力 24.0 dBm から 12.0 dBm へ一時変更し、Inventory後に 24.0 dBm へ復元できることを実機確認済みです。
- PR #71 反映後、UTR-SUN02-4CH / USM02、COM6、115200 bpsで通常終了時の送信出力復元を確認済みです。
- pytest は 234 passed を確認済みです。
- Inventory前に送信出力値、キャリア送信時間、キャリア休止時間、キャリアセンス待ち時間、周波数設定を表示できます。
- Inventory応答解析では、タグデータレスポンス、読み取り完了ACK、NACKを扱う補助処理を追加済みです。
- NACK応答時は、通常のタグ未検出とは分けて表示し、NACK用ブザー通知と繰り返しInventory中断に対応済みです。
- UTR-SUN02-4CHでは、UHF_CheckAntennaによるANT0〜ANT3接続確認、コマンドモード用アンテナ設定の読み取り、一時変更、終了時復元に対応済みです。
- UTR-SUN02-4CHでは、`0`、`1`、`0,1`、`all` 入力による複数アンテナの順次切替Inventoryに対応済みです。
- 通信条件が合わないCOMポートでACK/NACKなしの場合は、Inventory未実行として結果保存せず、シリアル接続を閉じます。
- UTR-SUN02-8CH / USM08では、ANT1〜ANT8の接続チェック、接続OKアンテナの候補表示、`1`、`1,3`、`all`、`q` 入力による複数アンテナ順次Inventoryに対応済みです。
- UTR-SUN02-8CH / USM08では、ANT1とANT3接続状態で、`all` 選択による ANT1 -> ANT3 順次Inventoryを実機確認済みです。
- UTR-SUN02-8CH / USM08では、開始前に変更前の使用アンテナ番号を読み取り、通常終了時に変更前設定へ自動復元できることを実機確認済みです。
Expand Down Expand Up @@ -196,7 +201,21 @@ py .\src\utr_usb_sample.py
9. Inventory繰り返し回数。
10. `q` で終了。

送信出力を一時変更した場合、終了時に元の送信出力へ復元します。
送信出力を一時変更した場合、終了時に元の送信出力へ復元します。PR #71以降は、一時変更を確定した時点で復元計画を保持するため、変更後読み戻しで例外が起きても `finally` 側で復元を試みます。

実機確認済みの例です。

```text
対象機器: UTR-SUN02-4CH / USM02
COM: COM6
ボーレート: 115200 bps
変更前送信出力: 24.0 dBm
一時変更後送信出力: 12.0 dBm
Inventory実行: 3回
読み取り: 1枚
終了時復元: 24.0 dBm
pytest: 234 passed
```

### UTR-SUN02-8CH 複数アンテナ順次Inventory

Expand Down Expand Up @@ -313,10 +332,29 @@ USB実機通信を行う前に、UTRRWManagerなどで接続条件と機器状
- FLASHは変更しません。
- 変更前に現在の送信出力値とキャリア関連時間を読み取ります。
- 変更用フレームと復元用フレームを生成します。
- 一時変更を確定した時点で、復元用フレームを保持します。
- 変更後に送信出力設定を読み戻します。
- 変更後読み戻し、Inventory、Ctrl+C、例外のいずれでも、可能な範囲で `finally` 側から元の送信出力へ復元します。
- Inventory終了時に元の送信出力へ復元します。
- 復元後にも送信出力設定を読み戻します。

実機確認済みの通常終了例です。

```text
変更前: 24.0 dBm
一時変更後: 12.0 dBm
Inventory: 実行あり
復元後: 24.0 dBm
結果ファイルのPC+UII: マスク保存
```

未確認の項目です。

```text
変更送信後、読み戻し例外が発生した場合のfinally復元
Inventory中にCtrl+Cした場合の送信出力復元
```

## UTR-SUN02-4CHのアンテナ確認

UTR-SUN02-4CHでは、アンテナ設定表示・接続チェックを実行すると、ANT0〜ANT3の接続状態を確認できます。
Expand Down Expand Up @@ -372,7 +410,8 @@ RSSI: -xx.x dBm

## 今後の作業候補

- 標準Inventory側の送信出力一時変更について、変更送信後の復元保証をさらに強化する。
- 送信出力一時変更中のCtrl+C時の復元確認を追加する。
- 変更送信後、読み戻し例外発生時の復元確認方法を検討する。
- ANT別の平均RSSI、最小RSSI、最大RSSI、読み取り成功率を集計する。
- UTRRWManager側ログとPython側ログを比較する。
- NACK/応答なし発生時のANT別エラー集計を強化する。
Expand Down
100 changes: 100 additions & 0 deletions docs/inventory_with_temporary_output_power_check.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# 送信出力一時変更つきInventory 実機確認手順

## 目的

標準Inventoryフローで、送信出力をInventory中だけ一時変更し、終了時に元の送信出力へ復元できることを確認します。

この確認では、FLASHデータは変更しません。送信出力の変更対象はコマンドモード用パラメータです。

## 対象

- 対象CLI: `src/utr_usb_sample.py`
- 対象機種: UTR-SUN02-4CH / USM02
- 接続方式: USBシリアル
- 標準ボーレート: 115200 bps

## 実行コマンド

```powershell
py .\src\utr_usb_sample.py
```

## 確認手順

1. COMポート番号またはCOM名を入力します。
2. ボーレートは未入力、または `115200` を入力します。
3. ROMバージョンが `USM02` と判定されることを確認します。
4. 現在の送信出力設定を確認します。
5. `送信出力をInventory中だけ一時変更しますか?` で `y` を入力します。
6. 変更後の送信出力値を入力します。
7. 変更用フレームと復元用フレームを確認します。
8. `この内容で一時変更してInventoryへ進みますか?` で `y` を入力します。
9. 一時変更後の送信出力が、入力した値になっていることを確認します。
10. Inventoryを1回以上実行します。
11. `q` でInventoryループを終了します。
12. 終了処理で、元の送信出力へ復元されることを確認します。
13. 復元後の送信出力設定を読み戻し、変更前値に戻っていることを確認します。

## PR #71 反映後の実機確認結果

通常終了時の送信出力一時変更・復元を確認しました。

```text
pytest: 234 passed
対象機器: UTR-SUN02-4CH / USM02
COM: COM6
ボーレート: 115200 bps
変更前送信出力: 24.0 dBm
一時変更後送信出力: 12.0 dBm
Inventory実行: 3回
読み取り: 1枚
終了時復元: 24.0 dBm
PC+UII画面表示: 省略
PC+UII結果ファイル保存: マスク保存
```

確認できたログの要点です。

```text
送信出力の一時変更がACKで完了しました。
送信出力値: 12.0 dBm
...
送信出力の復元がACKで完了しました。
送信出力値: 24.0 dBm
```

## 通信条件不一致時の確認結果

対象リーダではない、または通信条件が合わないCOMポートでは、ACK/NACKなしとなる場合があります。

この場合、Inventoryは実行されず、結果ファイルも保存されず、シリアル接続を閉じます。

```text
USB通信: NG(ACK/NACK なし)
Inventoryが実行されていないため、集計結果は保存しません。
接続を閉じました。
```

## 安全確認

- FLASH書き込みなし
- 周波数変更なし
- `UHF_SET_INVENTORY_PARAM` 自動送信なし
- 送信出力変更対象はコマンドモード用パラメータのみ
- 終了時に元の送信出力へ復元
- 結果ファイル保存時のPC+UIIマスク可能

## 未確認項目

以下は、通常終了確認とは別に確認してください。

```text
変更送信後、読み戻し例外が発生した場合のfinally復元
Inventory中にCtrl+Cした場合の送信出力復元
```

## 実機確認時の注意

送信出力は実機動作に影響します。確認時は、接続アンテナ、設置環境、タグ位置、周囲のRF環境を確認してから実行してください。

実測ログをGitHubや公開場所へ貼る場合は、PC+UII、シリアル番号、顧客情報を必ずマスクしてください。