[2026-10-01 19:12:02] STA DHCP対応を追加
対象: Settings.h, WebConfig.h, WebConfig.cpp, SerialCommand.cpp, Repeater_Controller_Settings.py, Repeater_Controller_software/Repeater_Controller_Settings/Repeater_Controller_Settings.py, Repeater_Controller_software/Repeater_Controller_Settings/settings.ini, READMR_JP.md, README.md
内容: Web/PC設定にDHCP選択追加、STA接続切替、USB LOAD/SET/SAVE・EEPROM保存対応。
新規設定はDHCP ON。旧EEPROMの既存設定・固定IPは移行時に保持。
固定IPは/24で検証。DHCP時も固定IPの保存値を保持。
配布用Python通信速度を115200 bpsへ修正。保存ACK判定・タイムアウト処理を修正。
バックアップ: backup\20261001_191202_before_dhcp
検証: Python構文確認、ホスト回帰テスト12項目、Web JavaScript切替テスト成功。
未確認: Arduino CLIアクセス拒否のためESP32ビルド・実機試験未実施。Tk実画面未確認。
既存EXEは再ビルドしていません。更新版Pythonと更新版ファームウェアを併用してください。
適用: Arduino IDEでコンパイル・書込み後、設定プログラムでLOAD→DHCP ON→保存。

[2026-10-01] USB設定通信とCOMポートエラー処理を修正
設定用Python 2本とESP32 USB通信は115200 bps。set_time.pyも115200 bpsに統一。
LOAD/SAVEのポートOPEN失敗時にポートを解放し、他アプリの終了・接続確認を案内。LOAD中のシリアル例外も画面表示。
DFPlayer専用UARTは機器仕様の9600 bpsを維持。既存EXEは未更新。
検証: ホスト回帰テストとアクセス拒否・通信切断の模擬試験。実機COM11接続は未確認。

[2026-10-01] PC設定にHOSTNAMEと現在のIP表示を追加
配布用PythonにHOSTNAME設定と.local表示を追加。両PythonのCURRENT IP欄はLOADで実機の接続IP・モードを表示。
SerialCommand.cppのLOAD応答にCURRENT_IP/NETWORK_MODEを追加。固定IP保存値と実際のIPは分離。
保存後はLOADで再確認。旧ファームは取得非対応を表示。既存EXEは未更新。実機試験・ESP32ビルドは未実施。

[2026-10-01] 起動時NameErrorを修正
両設定Pythonのload_from_iniから誤って追加したupdate_current_ip呼出しを削除。実機LOAD成功時のみ現在IPを更新。

[2026-10-01] 起動時LCDネットワーク情報表示
Wi-Fi初期化後、IP/ネットマスク/HOSTNAME/アドレス方式/STA・APを15秒表示して通常画面へ復帰。
待機delayは追加せず本体サービスを継続。表示中はLCDタッチ編集と通常描画を抑止。
STAは取得済みIP・マスク、APはAP実IPと設定済み/24マスク・STATICを表示。
ESP32ビルド・LCD実機表示は未確認。


[2026-10-17 18:07 Asia/Singapore] GPIOスイッチによる手動ID送信
GPIO5とGND間のモーメンタリースイッチでCWID、GPIO7とGND間でボイスID。
内部プルアップ・LOW有効、30msチャタリング除去。長押しは1回、起動時押下は解放後に再押下。
ID送信中・中継OFF・TOTLOCK・画面編集中・DTMFコマンド中の押下は破棄（予約なし）。同時押下はVOICE優先。
手動VOICEは自動VOICE OFF時もコールサイン音声だけを再生。時報・時刻・奇数時インフォは再生しない。
既存の自動IDスケジュールは維持。実機書き込み・送信確認は未実施。
変更: PinConfig.h、FM_rep_ESP32-S3_Wifi_vox_Ver0.1.1.ino、新規ManualIdButton.h、本履歴。
バックアップ: backup\20261017_180700_manual_id_switches
検証結果: 実装から抽出したmanualIdSwitchTask/voiceStartをホストC++でコンパイルし試験成功。
チャタリング、長押し、再押下、起動時LOW、millis周回、同時押下VOICE優先、6種類の禁止状態で予約しないこと、自動VOICE OFF時の手動ID、自動VOICEの偶数時3本/奇数時4本を確認。
ESP32ビルド: Arduino CLI・ESP32コア3.3.8で試行したが、xtensa-esp32s3-elf-g++.exeがIllegal System DLL Relocationで起動できず、ファーム全体のビルドは未完了。実機書き込みは未実施。


[2026-10-17 18:10 Asia/Singapore] 手動VOICE IDを短・長交互に変更
GPIO7の受付成功ごとに短いID（コールサイン）→長いID（コールサイン＋インフォ）→短いIDを交互送信。
起動後の初回は短いID。自動時報の再生内容や手動順序への影響はなし。
送信中・禁止状態で押したスイッチは、その終了直前に押した場合も破棄。終了後に解放して再押下するまで送信しない。
GPIO5のCWIDにも同じ再押下抑止を適用。変更: メインino、ManualIdButton.h、本履歴。
バックアップ: backup\20261017_181001_alternating_voice_id
検証: 実装抽出ホストC++試験成功。短→長→短、長IDのインフォ追加、自動IDによる順序不変、拒否時の順序不変、送信終了直前の押下破棄、長押し、6種類の禁止状態、解放・再押下、チャタリング、起動時LOW、millis周回を確認。ESP32全体ビルドは前回のコンパイラーDLL起動エラーが未解決のため未確認。実機書き込みなし。


2026-10-25 送信スケジュール変更
CWID/ボイスIDの独立した許可時間帯、3音声モード、アナウンスのみ30分～6時間間隔を追加。PC/Web/Serial/EEPROM移行に対応。詳細はSCHEDULE_JP.md。変更前はbackup/schedule_20261025_121142へ保存。
