fix(tci): a filter button does what it says, and mute is put under a log

250 now means 0-250. It meant 575-825: the width was right and it was
centred on the CW note, on the reasoning that a CW filter should contain
the note. That reasoning may be right for a radio and it is still wrong
here, because it is not what the button says — and a button that does not
do what it says is worse than one that does something simple. The two
edges are editable underneath for anything else, which is what TCI takes
anyway.

And MUTE still lights the squelch on a real radio. Nothing in this code
can do that — the button sends mute and only mute, and the two are
separate state — so the radio's own announcements are logged as they
arrive. What it says after the command will settle whether this is our
reading or its doing; no more reasoning from here will.
This commit is contained in:
2026-08-26 20:59:31 +02:00
parent fbe01bf19d
commit dad71e9e4f
2 changed files with 28 additions and 9 deletions
+8
View File
@@ -95,6 +95,14 @@ func (t *TCI) handlePanel(name string, get func(int) string, args string) bool {
yes := func(s string) bool { return strings.EqualFold(strings.TrimSpace(s), "true") }
p := &t.panel.st
// Mute and squelch are LOGGED as they change, because a report from a real
// radio says pressing MUTE lights the squelch and nothing here can explain
// it. What the radio actually announces after the command settles whether
// this is our reading or its doing, and no amount of reasoning will.
switch name {
case "mute", "sql_enable", "sql_level":
debugLog.Printf("TCI: %s:%s", name, args)
}
switch name {
case "protocol":
p.Protocol = strings.TrimSpace(args)