The share of python3-uncompliant drivers has dropped to such a small
fraction that I've forgotten to enforce that new drivers be added to
the matrix.
So, at this point, it's time to flip the whitelist to a blacklist and
just mark the drivers that haven't been tested. This removes the
matrix and generation script, content from the makesupported target,
and instructions from the PR template. It replaces those with a simple
list of drivers in tests/py3-untested-drivers.txt
This fixes the ability to download from any uvk5 in read-only mode,
regardless of firmware version. The previous patch did not properly
implement the exclusion in the download routine.
These radios (annoyingly) treat frequencies in airband as AM, which
really isn't how chirp was designed to work. Before, we were making
them immutable, but that brings all sorts of problems with it. Instead,
coerce the values on get/set, and return a warning from
validate_memory() so the user is warned.
In reality, we should probably be doing that more places where we have
immutable fields, where the immutable-ness depends on the content of
the memory (i.e the frequency) than the location.
Fixes: #11441
This is sort of an approximation as we don't have a good way to
support pairs of full memories stored together, but it's probably
close enough.
Related to #10018
Since live radios don't have a comment column (even with metadata
simulation) we cannot assume it is there for calculating the index for
extra columns.
This allows LiveRadio drivers to use the single serial connection as
if it has exclusive access by making sure that only one RadioJob runs
at any given time. This could potentially reduce performance if you
were doing lots of operations against multiple live radios at once,
and we could improve that later. However, it makes writing LiveRadio
drivers with multiple sub_devices much more straightforward.
Since this is such a problem (new firmwares popping up everywhere),
add a fallback version-agnostic implementation of the base class
that is fully read-only (and won't upload). This will mean that
anyone with an unsupported firmware will be able to download the image
for inspection and make it easier for us to determine if we should
just whitelist the version.
The TD-H8 Ham variant never got the proper _rxbands list which it needs
to allow users to put in the full range of receive-only frequencies.
Fixes#11473
Explicitly set a few extra bits to zero to initialize correctly new
memory slots.
_unk3/_unk4 seem to be part of compander/hopping respectively, even
though only a single value for both is accepted.
Setting _unk3 to 1 (compander:0b10) makes the radio ignore the channel
completely. The original software also refuses to decode the slot and
fail with a generic error.
Setting _unk4 to 1 (hopping:0b10) works on the radio, but still causes
the original software to fail with an error.
On Linux/GTK menu items aren't actually created until they are added
to a menu. The recently added bugreport menu item was Enable()d before
adding, which fails on Linux.
Fixes: #11400
This variant was released in 2024 and looks identical to the original,
but is totally different inside and is based on the uv17. This uses
the detection framework to basically hide the difference from the
user.
Fixes: #10600