Right now we will choose the tuning step for a new edit from the
bandplan, even if that doesn't work for the frequency entered.
Ironically, the most common frequency in the NA bandplan (146.520)
would choose a step of 25kHz, which isn't actually aligned. Radios
that really care about this (i.e. kenwood live radios) will balk at
146.52 at 25kHz, allow it at 20kHz, and allow 146.50 at 25kHz.
This makes memedit use the band plan step if it is valid for the
entered frequency, else fall back to the minimum-viable logic that
we use when there is no bandplan step.
Fixes#11391
A number of things weren't right with this, likely for a while, since
we had no tests or examples in the tree. This adds three user-supplied
sample files and a test to hopefully keep it working. Fixes:
- Ignore blank entries
- Tolerate a missing "Channel Number" column
- Support the "Scan" (meaning not skip) column type
- Fix detection by being looser about what we look for
Fixes#11389
This should fix situations where the default encoding (i.e. on windows)
is not sufficient for writing certain characters. That could be paths
(in the recent list) or anything else we store there that expects
full unicode.
Fixes#11385
Almost all the drivers in the tree now opt out of the byte-compat
behavior. The default has been flipped, so we can remove that from
all those drivers and remove it from the PR template so people don't
have to think about it anymore.
This is long overdue, but we can flip the NEEDS_COMPAT_SERIAL flag
to off now, since almost everything is migrated and then new drivers
won't have to add it.
The fact that there are no changes to the test matrix shows that this
doesn't change the status of any drivers. All the ones that were
inheriting the old default have been explicitly opted into compat
behavior.
This makes import_logic fail early if the frequency is outside the
supported range of the destination radio. Otherwise other checks
may be run and fail when the radio shouldn't even expect to have to
deal with them.
Jammy and contemporaries are still stuck on wxPython 4.0.x and lack
the AssignTable interface that was added in 4.1. This makes us use
SetTable() instead to maintain compatibility with those older versions
for a bit longer.
Fixes#11352