Commit graph

6412 commits

Author SHA1 Message Date
Dan Smith
a229fae793 tmd710: Fix TM-D710G extremely slow write speed
The original author for this was reading more of a response than the
radio was sending for each block, triggering the timeout on every
single block.
2026-08-09 16:28:00 -07:00
Dan Smith
89396e3ddc tmd710: Terminate clone properly in finally block
This removes the per-instance clone exit commands and implements them
properly in a finally: block on sync_in and sync_out so that unexpected
failures also clean up the radio state.
2026-08-09 16:28:00 -07:00
Dan Smith
813cc865bc tmd710: Report status while probing baud rate
To avoid the user not seeing any progress, show a message that we
are probing the current baud rate while we are.
2026-08-09 16:28:00 -07:00
Dan Smith
08c636b583 tmd710: Remove unnecessary C-style naked returns 2026-08-09 16:28:00 -07:00
Dan Smith
2b7d7212b9 tmd710: Remove bogus global baud re-setting
I have no idea what the original author was thinking with this, but
it is both not necessary and not reentrant behavior. Remove it.
2026-08-09 16:28:00 -07:00
Dan Smith
c2ebcf79d8 tmd710: Fix clone mode at lower speeds
For these radios, if the baud rate is too low, the 250ms default
serial timeout will result in failure to read entire blocks right
off the bat. Increase it so it's always reasonable.
2026-08-09 16:28:00 -07:00
Nathaniel M. Beaver
2c29c06670 Add StartupWMClass to desktop file.
Needed so that Chirp icon is shown in launcher. Background: 

https://specifications.freedesktop.org/desktop-entry/latest/recognized-keys.html#StartupWMClass

https://discussion.fedoraproject.org/t/how-to-ensure-a-launcher-icon-gets-linked-to-the-application-it-launches/67688 

https://askubuntu.com/questions/1553339/launch-icon-displays-config-icon-rather-than-specific-icon

https://github.com/flathub/com.google.Chrome/issues/446
2026-08-09 14:46:43 -07:00
Dan Smith
5b1bba6636 tk8180: Add TK-3180E support
Presumptive, untested, details suggested by a contributor in #11865

Fixes #8883
2026-08-02 12:13:29 -07:00
Dan Smith
867ff55688 tk8180: Add SSI in Sub-LCD from "tactical" feature set 2026-08-02 12:13:29 -07:00
Neil McNeight
a883164ead Second half of BCD work on kenwood_tone functions.
With this commit, the _set_tone_val() function now properly creates
binary-coded decimal (BCD) numbers, depending on how dcs_enc_base and
tone_enc_base are set when constructing a tone model.

The test cases were expanded to cover all permutations of valid values
for dcs_enc_base (8, 10, and 16) and tone_enc_base (10 and 16). All of
these test cases allow testing new inputs and outputs, as well as
validating that the new settings do not interfere with parsing when it
is not expected to.
2026-08-01 21:53:43 -07:00
Neil McNeight
b11249c348 First half of BCD work on kenwood_tone functions.
As part of the 5RH driver work, it was suggested to look at using the
kenwood_tone functions as the data appeared to be similar. A closer
look showed that they were similar, but not enough to be functional.

The existing Kenwood function puts the tone frequency * 10 into a 16-bit
integer, such that 100.0 Hz becomes 1000 which becomes 0x03E8.

For the 5RH, the tone frequency * 10 is stored as a BCD (which is
effectively hexadecimal with six digits ignored). In this case, 100.0 Hz
becomes 1000 which becomes 0x1000.

In the process of testing the code, I modified the h777 driver to use it,
and discovered that those radios also stored the DCS code as BCD. Meaning
that a DCS code of 031, which would be stored as 0x0019 in octal or 0x001F
in decimal, would instead be stored as 0x0031.

The addition of the tone_enc_base variable for processing tone frequencies
as BCD, and the ability to set dcs_enc_base to 16 (effectively processing
as BCD), should widen the pool of potential users for this function, and
cut down on the number of separate tone implemenations and their tests.

With Dan's suggestion, this PR has been split into two parts: implementing
the first half (decoding with _get_tone_val()) to test against existing
code for encoding. The next commit will then implement the encoding half.

All test cases were duplicated using two tone models; model_dec with
dcs_enc_base defaulted to 8 and tone_enc_base defaulted to 10, and
model_bcd with dcs_enc_base and tone_enc_base both set to 16.
Both models allow testing new inputs and outputs, as well as validating
that the new settings do not interfere with parsing when it is not
expected to.
2026-08-01 21:53:43 -07:00
MELERIX
7e5b9d61fa Update Spanish Translation 2026-08-01 21:20:19 -07:00
Dan Smith
0f75b4e1cb tk8180: Fix more mobile/portable settings 2026-07-31 14:34:32 -07:00
Dan Smith
5eaade507a tk8180: Implement the "Standard OST" behavior
This is not yet reachable from the UI, but will provide a target
for some "action" type things.
2026-07-31 14:34:32 -07:00
Dan Smith
78f7668888 tk8180: Finally flesh out key setting
This should make the proper keys appear for mobiles and portables,
and also implements the E-model distinction which lets you configure
buttons and threshold for "hold" triggers, effectively giving the
US models an extra set of buttons. It also removes the restriction
on some of the functions not being assignable as secondary, which
the radio seems to not care about.

Note that this allows configuring buttons in a way that the radio will
honor but cause  KPG-89D to blank your button config if you do things
it doesn't allow you to do.

Fixes #11865
2026-07-31 14:34:32 -07:00
Dan Smith
4ad0222fdd tk8180: Fix scan/skip flags 2026-07-31 14:34:32 -07:00
Dan Smith
cb6590d5aa tk8180: Fix fast uploading empty pages
The OEM software sends a special command to indicate an entire block
is empty. The code in CHIRP to do this was wrong, causing it to not
accelerate as expected.
2026-07-31 14:34:32 -07:00
Dan Smith
33f160670e tk8180: Fix a couple of warnings 2026-07-31 14:34:32 -07:00
Dan Smith
3fd08210cf Break out set_by_path() in MemSetting
This makes it re-usable. Also add get_selection() to ValueMap to
allow getting the currently-selected user option.
2026-07-31 14:34:32 -07:00
Dan Smith
f135e81649 linux: Remove default X11 compatibility flag
This flips the polarity here, allowing opting into the compat
behavior instead of defaulting to it. On current wx, GTK, and Wayland,
the compat behavior is (much) slower than native and brings some
input weirdness as well.
2026-07-31 14:34:32 -07:00
Giovanni Scafora
b7ae1b65f9 Updated Italian Translation 2026-07-29 15:13:16 -07:00
Dan Smith
551d835ba2 Update locale for accessibility changes 2026-07-28 17:44:57 -07:00
Dan Smith
299dc4ebea Make CONF.get_bool() case insensitive 2026-07-28 17:44:57 -07:00
Deniz Sincar
a852243972 a11y: Enable accessibility hints for memedit 2026-07-28 17:44:57 -07:00
Deniz Sincar
b893080eb4 a11y: Enable accessibility hints for settings and radioinfo 2026-07-28 17:44:57 -07:00
Deniz Sincar
2bfa1019c5 a11y: Add base accessibility module for MSW
Note that this only works on platforms that support wx.Accessible,
which appears to basically only be MSW.

Related to #12424
2026-07-28 17:44:57 -07:00
Deniz Sincar
e1978feb0f Support Shift+F10 convention for context menu in memedit 2026-07-28 17:44:57 -07:00
Jan Szumiec
bae48c6cd4 Add Baofeng BF-T20 setting descriptions
Document every setting the 16 channel model exposes, based on its
English manual (FCC ID 2AJGM-T20). This is the RT22 clone handled in
this driver and a different radio from the 22 channel BF-T20FRS in
radtel_t18.py, as confirmed in issue #9821: its factory programming
software identifies itself as the WLN KD-C1 software.

All of these settings are shared with the other radios in this driver,
so the wording is cross-checked against the Retevis RT22P manual and
avoids details that hold for one model only. Two descriptions follow
sources outside the manual: Local and Remote Alarm are mutually
exclusive rather than cumulative, with Remote Alarm staying silent
locally (Radtel RT-4D menu reference), and the embedded message pair
matches the dealer comment fields in tk280.py.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 15:17:13 -07:00
Jan Szumiec
20fb7acc87 Add Baofeng BF-T20FRS setting descriptions
Document every setting the 22 channel FRS model exposes, plus the
per-memory Busy Channel Lockout, based on its English manual and
cross-checked against the manuals of the radios that share these code
paths: Retevis RT68 and RT22P, and Baofeng BF-888S/666S/777S.

The wording therefore avoids details that hold for one model only, and
leaves the VOX level direction unstated: RT22P documents the highest
level as the most sensitive, while the BF-T20 manual contradicts
itself. Scanning needs at least two channels in the list (RT68,
BF-888S) and resumes a few seconds after the channel clears.

RX emergency is the one setting no manual documents. It is described
here as reacting to an alarm received from another radio, which fits
the name but is not confirmed by a source.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 15:17:13 -07:00
Dan Smith
a6ece05bb3 Fix column header resize behavior
A missing event skip on the colheader mouse motion event handlerwas
preventing the normal mechanics from working (i.e. showing the correct
resize cursor and live resize of the columns).
2026-07-27 15:13:23 -07:00
Jan Szumiec
d339a1f902 h777: Add setting docs from the BF-888S manual
Add set_doc() tooltips to the H777/BF-888S settings, sourced from the
BaoFeng BF-888S user manual, covering voice prompt, scan, VOX, alarm,
FM, beep, battery saver, squelch, timeout timer and busy channel
lockout.

The strings are not marked for translation. Many of these describe
common concepts (BCL, VOX, squelch, timeout timer) that appear in a
lot of drivers, and marking slightly different wordings of each in
every driver would generate a large amount of duplicated work for
translators. These are better unified into a shared set of strings
first, and translated from there.

The Alarm tooltip is deliberately worded to cover both variants: on
the Baofeng 1900 series Alarm is a Local/Remote list where Remote does
transmit the alarm to other radios, so the alarm cannot be described
as a receive-only, non-transmitting function. The Retevis H777 manual
only describes the side-key toggle in its Emergency Alert section.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 17:41:38 -07:00
Jan Szumiec
c2e70ff410 Add QYT KT-8900 setting documentation 2026-07-24 15:29:57 -07:00
Jan Szumiec
085c4df1c7 Add user-friendly Baofeng UV-5R setting descriptions
Base the descriptions on the English manual.
2026-07-24 14:54:30 -07:00
Finn Thain
6ff333968a Improve regexps to avoid some false positives
Commit fbcca4a9d1 changed a grep command in an attempt to prevent a
false positive, that is, to prevent grep from matching python code not
actually using the banned 'past' module. Problem is, (?!e) is not valid
syntax unless grep was compiled with support for Perl Compatible Regular
Expressions. However, we can use extended regexp syntax to avoid the
false positive. While we're at it, let's make similar improvements to
the other regular expressions to prevent more false positives.
2026-07-02 15:51:11 -07:00
Dan Smith
1e2049aae9 Add wx import check to check_commit.sh 2026-06-30 16:27:53 -07:00
Edson Brusque
906e03930c uvk5_egzumer: Fix battery_text and mic_bar never being saved
In set_settings(), the elname guards for these two settings carried a
stray "_mem."/"mem." prefix that does not match the names assigned in
get_settings() ("battery_text" and "mic_bar"). The branches therefore
never matched, so both settings were silently dropped on upload and
reverted on the radio after a restart.

Drop the prefixes so each guard matches its setting name.

Fixes #12534

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 14:47:26 -07:00
Dan Smith
47c3788713 Fix open filter translated string
The structured string that is required for the open dialog to
specify a file type should not include one of the special characters
(i.e. the "|") in the translated string. Removing this from the
translation will then break the structure and prevent it from working
properly. The pt_BR translation did just that and resulted in the
referenced bug. This removes the | from the marked string and the
other translations.

Fixes #12531
2026-06-23 15:15:24 -07:00
Vladislav Yundin
897368c2ee Add Baofeng BF-5RH as alias of UV-5RH
The Baofeng BF-5RH is the same hardware/firmware as the UV-5RH
(ham variant, 10W, airband)
2026-06-17 14:56:10 -07:00
Martin Macko
bff764341e locale: Added Czech translation
This commit adds the initial Czech translation (cs.po) for CHIRP.
2026-06-17 14:45:10 -07:00
Andrew M. C. Dawes
02f5e51963 generic_csv: Fix ImmutableValueError when exporting special memories
Clear the immutable list on the duped memory before modifying the name field during CSV export. This avoids ImmutableValueError on radios that mark memory name fields as immutable (e.g. FT-60).

Fixes #10437
2026-06-17 14:41:47 -07:00
TrimbleSoftware
6dadd6b206 Change HF sub-device to get mem Mode from HF Modulation Setting value 2026-06-10 15:42:23 -07:00
TrimbleSoftware
21b51e0926 Fix tox errors and additional code cleanup for set_raw->fill_raw 2026-06-10 15:42:23 -07:00
TrimbleSoftware
de1d18d4bc radtel_rt900: Add full tooltip text plus minor code cleanup 2026-06-10 15:42:23 -07:00
TrimbleSoftware
79ce906385 Add test image for Bajeton BJ7800 2026-06-10 15:42:23 -07:00
TrimbleSoftware
a88e840909 Update RT-920 test image for FM,AM & HF memories 2026-06-10 15:42:23 -07:00
TrimbleSoftware
34dcf3cc73 radtel_rt900: Add new model Bajeton BJ7800 as a sub-class of RT-920 2026-06-10 15:42:23 -07:00
TrimbleSoftware
6bc825f442 radtel_rt900: Add FM, AM & HF sub-devices for RT-920 2026-06-10 15:42:23 -07:00
TrimbleSoftware
4aef380138 radtel_rt900: Add named banks for RT-920 fw V0.18 2026-06-10 15:42:23 -07:00
TrimbleSoftware
4ad618c31d radtel_rt900: update Settings for RT-900 serials radios firmware changes 2026-06-10 15:42:23 -07:00
TrimbleSoftware
3ae2395632 radtel_rt900: update memory map for RT-900 series radios 2026-06-10 15:42:23 -07:00