Skip to content

Write a radio's settings on their own, from every place, on every radio - #137

Merged
ww8l merged 1 commit into
mainfrom
settings-write-everywhere
Oct 10, 2026
Merged

ww8l merged 1 commit into
mainfrom
settings-write-everywhere

Conversation

@ww8l

@ww8l ww8l commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Consistency pass: any radio that can program settings separately from channels now offers it in the same places — the Program dialog and the radio profile page.

Program dialog

  • The generic dialog gets the AnyTone's Channel set | Profile cards whenever the driver writes settings on its own: MD-380, TH-D72, TM-D710, BT-9000, and now UV-5R and ID-5100. Profile writes the saved profile's settings, channels untouched, with the same guard as the profile page (never saved / nothing set).
  • A stale settings result is cleared by any other action.

UV-5R and ID-5100: settings-only writes

  • UV-5R sends only the 16-byte blocks that changed (changed_runs), never the channel block.
  • ID-5100 runs the factory-reset guard (check_image) before cloning, and shows its press-POWER instruction in the dialog and on the profile page.
  • Both share their upload-and-verify with the codeplug program.

Profile page

  • Write to radio on every cable radio with a writer — the AnyTone and TD-H3 were hidden by a generic-dialog-only gate. For the AnyTone it now says the radio reboots to commit and points at Verify, and rescans ports.
  • Card radios (FT5D, ID-52, TH-D75): Write settings to card — the profile's settings patched into the radio's own file, memories untouched. New CardSettingsWriter capability + write_card_settings command, following each format's export file rules (now shared per format).
  • One profileWriteBlocked guard for every settings-write affordance.

Verification

  • Real card files on Tim's Mac (radios/card_settings_write.rs, ignored in CI): a file's own settings written back change 0 bytes; one flipped setting changes 1 byte; the FT5D checksum validates; the TH-D75 writes a new file and never touches the radio's save. The card formats' own export tests re-run after the refactor.
  • /code-review (8 findings, all fixed) and /security-review (no findings).
  • Not run on a radio: the UV-5R and ID-5100 settings-only writes, and a radio loading a settings-only card file (Tim's call). No UI click-through yet.

🤖 Generated with Claude Code

Consistency pass (Tim): any radio that can program settings separately from
channels now offers it in the same two places.

- Program dialog: the generic dialog gets the AnyTone's Channel set | Profile
  cards whenever the driver writes settings on its own (MD-380, TH-D72,
  TM-D710, BT-9000, UV-5R, ID-5100). Profile writes the saved profile's
  settings with the channels untouched, guarded like the profile page.
- UV-5R and ID-5100 gain a settings-only SettingsWriter. The UV-5R sends only
  the 16-byte blocks that changed; the ID-5100 runs the factory-reset guard
  (check_image) and shows its press-POWER instruction. Both share their
  upload-and-verify with the codeplug program.
- Profile page: Write to radio on every cable radio with a writer (the AnyTone
  and TD-H3 were hidden behind a generic-dialog-only gate). For the AnyTone it
  points at Verify (the commit reboots the radio) and rescans ports.
- Card radios (FT5D, ID-52, TH-D75): "Write settings to card" — the profile's
  settings patched into the radio's own file, memories untouched, by a new
  CardSettingsWriter capability and write_card_settings command that follow
  each format's export file rules (shared per format). Proven at the desk on
  the real card files (radios/card_settings_write.rs): a file's own settings
  change 0 bytes; one flipped setting changes 1 byte; the FT5D checksum
  validates.
- One profileWriteBlocked guard for every settings-write affordance.

Not run on a radio: the UV-5R and ID-5100 settings-only writes, and a radio
loading a settings-only card file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ww8l
ww8l merged commit afd7a3b into main Oct 10, 2026
3 checks passed
@ww8l
ww8l deleted the settings-write-everywhere branch October 10, 2026 18:15
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