Commit Graph

822 Commits

Author SHA1 Message Date
Dan Smith
839a202734 Change "compat serial" flag to default off
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.
2024-06-17 17:07:47 -07:00
Jim Unroe
22328e9928 th_uv88.py: Add Retevis P62 - fixes #11380 2024-06-17 16:39:50 -07:00
Jim Unroe
4eec083812 th_uv88.py: Add Retevis P2 - related to #11380 2024-06-17 16:39:50 -07:00
Jim Unroe
4e5a89679d mml_jc8810.py: Add Radtel RT-495 - fixes #11161 2024-06-17 16:36:52 -07:00
Jim Unroe
f08319b994 mml_jc8810.py: Add Radtel RT-630 - fixes #11220 2024-06-17 16:36:52 -07:00
Yuri D'Elia
c523fff7b5 Add support for KSUN M6
Fixes #11348
2024-06-13 16:53:37 -07:00
Alexandre J. Raymond
ad868db01f Alias Baofeng UV-25 to UV-17Pro driver
Fixes #11260
2024-06-05 20:19:53 -07:00
Jim Unroe
df19a56269 tdh8.py: allow pasting of airband frequencies - (3 of 3) - fixes #11363
Add support to mark mode as immutable so it doesn't get blocked, and
let the radio override it during set.
2024-06-05 20:16:52 -07:00
Dan Smith
0c242eb7b0 Make import_logic check frequency first
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.
2024-06-05 20:16:52 -07:00
Lars Lehtonen
566078ea12 Add openonly filter to Repeaterbook queries 2024-05-30 18:01:27 -07:00
Jim Unroe
7401d9e2bb Add Retevis RA87 - fixes #10871 2024-05-18 09:43:35 -07:00
Dan Smith
1cda965dea Fix desktop icon prompt parent window
Fixes #11346
2024-05-13 20:01:37 -07:00
Jim Unroe
5822338742 tdh8.py: add Radtel RT-730 - fixes to #11091 2024-05-13 18:39:42 -07:00
Jim Unroe
1892b593c0 h777.py: add Baofeng BF-1909 - fixes #9760 2024-05-10 19:10:08 -07:00
Dan Smith
5385a3487e Make clone tests do the detection dance 2024-05-03 17:56:57 -07:00
Dan Smith
1254347c60 Fix clone test serial object API 2024-05-03 17:56:57 -07:00
Dan Smith
d568940259 Refactor detection for class isolation
This makes us keep detected models separate per class that they
were @detected_by. Before this, we would end up with a mashup of all
the detected subclasses in the highest parent class that was a detect
target (i.e. TID H3 and H8 mixed together). Now, we keep them
separate at import/class define time so we don't have to further
filter them. Also, this builds in the include-self behavior to
detected_models() to avoid having to repeat that everwhere.

This also fixes a download..upload..download bug where we will corrupt
the last_model with the detected model name, which isn't selectable
on download (since it's detected and not listed).
2024-05-03 17:56:57 -07:00
Dan Smith
8dbffc39ad Add Radioddity UV-5G Plus 2024-04-26 14:49:53 -07:00
Dan Smith
dcd6cbc8b7 csv: Fix detection when unicode BOM is used
The work to enable comments in CSV files broke the detection of those
files when a BOM is present and there are no comments before the
header.

Fixes: #11303
2024-04-18 17:03:54 -07:00
Jacob Calvert
fe501c8ce0 alinco dr735t: implementation of Alinco DR-735T/N Driver
- fixes: #8885
- implmented core radio common channel functions
- implemented a few of the extended properties
2024-04-09 14:55:49 -07:00
Jim Unroe
7d2486beff Add Baofeng GM-5RH - fixes #11006 2024-03-21 16:28:11 -07:00
Dan Smith
985b78aa4f Make assertEqualMem() ignore offset if duplex=off
If duplex is 'off' we don't need to obsess over the offset value,
which is unused anyway. Some drivers may not be able to store an
offset if duplex=off and/or may use the offset for signaling of that
fact.
2024-03-21 16:17:10 -07:00
Daniele Gozzi
df74b0a840 Initial support for Icom IC-7400
This should also work seamlessly for IC-746PRO, as it is using the same
address for the CI-V protocol.

As with other existing icomciv.py based implementations, I did not add
general radio settings: this implementation only allows for setting
memories.

Fixes #11246
2024-03-16 08:25:29 -07:00
Dan Smith
cef146f866 bitwise: Add lbit type for LE bit arrays
This is a bit array where we number the bits from low-order to high,
unlike "bit" which is high-order to low.
2024-03-16 08:22:53 -07:00
Dan Smith
e8c28d7679 Fix default argument parsing on Linux
Fixes #11235
2024-03-11 15:10:57 -07:00
Dan Smith
ddc7ffdcad hguv98: Mark as tested in -next
This was fixed and tested a bit ago, but I neglected to update the
matrix.

Related to #11179
2024-03-05 16:42:28 -08:00
Henry Grasman
273083fae9 K5 Plus: Register new model -> child of 5RM driver
Fixes: #11119
2024-03-05 15:39:37 -08:00
Dan Smith
d8c89c72a0 Make test_bitwise_errors required 2024-02-28 16:55:08 -08:00
Dan Smith
b663283892 Remove invalid duplexes from a few drivers
This lets the test assert that we test all duplexes.
2024-02-23 18:45:47 -08:00
Dan Smith
dd470224da Enable duplex=off in test_duplex
I dunno why this was not present, but ... eesh.

Related to #11196
2024-02-23 17:56:38 -08:00
Dan Smith
5be4c32eec bitwise: Fix set_raw() on arrayDataElement
This makes this actually work so we don't have to set_raw() on each
element.
2024-02-23 17:56:38 -08:00
vdwel
2e4f011eee uv13Pro: Added support for the Baofeng UV-13Pro.
Fixes #11167
2024-02-23 16:07:29 -08:00
Daniele Forsi
fb3e2c7492 bitwise_grammar: Add a test for #printoffset 2024-02-23 16:03:47 -08:00
Dan Smith
1211b994b1 5RM: Fix paste/import of AM frequencies
This radio behaves like the 17ProGPS with regards to supporting airband
frequencies, so apply the same immutable override to make it work.

Fixes #11185
2024-02-19 21:49:15 -08:00
Dan Smith
8860a24922 Update Baofeng 5RM image
This was committed with a metadata tag of being a UV-17Pro, which is
not correct. This updates the test image with one from the issue
tracker.

Fixes #11181
2024-02-19 15:10:20 -08:00
Jim Unroe
22cf7fb044 mml_jc8810.py: Add support for Talkpod A36Plus 8W - fixes #11067 2024-02-16 14:38:11 -08:00
Dan Smith
277ceaa4cb Fix CSV test with comments on windows 2024-02-15 15:41:20 -08:00
Dan Smith
f48b6ddd1d bj9900: Presumptive byte-clean fixes
This is untested (other than driver tests) and thus may not work,
but it's closer than it was. Note that this was _passing_ the clone
tests because it was failing to provide a bytes to struct.pack(),
which was raising the required RadioError the test expects. However,
once fixing it, it will clone in from SerialGarbage without any
complaint. So I added an assertion to the end of the clone-in that
I think is correct based on the file data match logic, but is, of
course, untested.
2024-02-15 15:41:20 -08:00
Dan Smith
0e1e921052 Revert "Add Baofeng UV-13Pro support"
This reverts commit bc4666e617.

As reported, this seems to be causing people trouble for unknown
reasons. Since this has only been available in the wild for a brief
time, reverting it is the quickest path to limit the fallout.

Related to #11167
2024-02-15 15:18:03 -08:00
Dan Smith
1752e55498 Add Kenwood TH-D75 support
As reported in #11122, the existing driver works for the D75 already,
which is expected.

Fixes #11122
2024-02-15 15:18:03 -08:00
Dan Smith
40f5a1a534 uv17ProGPS: Allow pasted AM frequencies
This implements the set immutable policy handler so we allow incoming
memories set to AM if they're in the right band, so that paste works.

Related to #11022
2024-02-12 20:48:51 -08:00
Dan Smith
f7ca9f2adf csv: Attempt to persist comments across saves
This will cause us to try to insert comment lines back where they
came from when we save a file. We do that by keeping track of which
memory they came after and trying to insert them back into the stream
when we save. This will be inexact, of course, but is probably good
enough for most people.

Related to #11081
2024-02-12 19:27:16 -08:00
ngd-skier
6d7fb22da8 Added ability to open/import .csv files with # comments in them.
Fixes #11081
2024-02-12 19:27:16 -08:00
Dan Smith
e48bb5f1c6 Add bitwise fill_raw() helper
This long-overdue helper allows for filling a bitwise object with
a single byte value without having to set_raw() and calculate size.
2024-02-12 16:26:35 -08:00
Dan Smith
bc4666e617 Add Baofeng UV-13Pro support
This is just a subclass of the UV-17Pro at the moment.

Fixes #9793
2024-02-12 16:01:24 -08:00
Brian Graham
20a3b43768 Leixen VV-898S/E dual bank radios added
This makes the dual-bank models "detected by" the regular ones and
also de-alias-es the whole leixen hierarchy. Also fix up some
non-byte-clean stragglers in this driver.

Co-Authored-By: Dan Smith <chirp@f.danplanet.com>
Fixes: #4069
2024-02-10 13:14:39 -08:00
Dan Smith
c3d9614aa6 bitwise: Add get_path() symbolic traversal
This lets us build a string that represents a place in a bitwise
structure and pass it to the root of a bitwise tree to dig out a
child object.
2024-02-07 15:49:29 -08:00
Dan Smith
e3ad23cf82 bitwise: Avoid duplicate definitions on one scope
This makes bitwise warn about duplicate names defined in the same
scope, which before resulted in loss of access to the eclipsed
element. Now, an error log is emitted.

There are a lot of drivers committing this crime, so I've added a
test to highlight them and marked it as XFAIL for the moment.

Fixes #11140
2024-02-07 15:28:34 -08:00
Dan Smith
96f6a3d071 uvk5: Sanity check image firmware on load
This logs a warning if the user tries to open an old UVK5 image
from before we were recording the firmware (and had two
implementations) indicating that they should download a fresh image.
It also refuses to load an image with a firmware string the driver
specifically rejects.

This requires updating the three related images in the tree because
they were captured before we were doing that stamping, which makes
them log warnings, which the tests assert doesn't happen.

Related to #11125
2024-02-05 17:34:00 -08:00
Dan Smith
d1ce2af28a Allow invalid settings to remain uninitialized
When we try to load a setting that fails to initialize (using the new
lazy-load function), we should leave that "uninitialized" in the UI
property grid. That means we can (a) exclude it from the settings sent
to the radio in set_settings() and (b) allow the user to give the
setting a sane value according to the limits provided in the setting
to correct the issue.

Mark those uninitialized settings in yellow in the property grid.

Fixes #11138
2024-02-05 17:04:53 -08:00