Add Wouxun KG-UV9K (8.33k step) support

Fixes: #6895
Add support for KG-UV9K with 8.33k step option
This commit is contained in:
Mel Terechenok 2023-04-14 20:54:53 -04:00 committed by Dan Smith
parent 5961a4eef4
commit be74fb163a
4 changed files with 45 additions and 6 deletions

View file

@ -1004,8 +1004,10 @@ def _hex_print(data, addrfmt=None):
# Useful UI lists
STEPS = [2.5, 5.0, 6.25, 10.0, 12.5, 25.0, 50.0, 100.0]
STEPS_9K = [2.5, 5.0, 6.25, 8.33, 10.0, 12.5, 25.0, 50.0, 100.0]
S_TONES = [str(x) for x in [1000, 1450, 1750, 2100]]
STEP_LIST = [str(x)+"kHz" for x in STEPS]
STEP_LIST_9K = [str(x)+"kHz" for x in STEPS_9K]
ROGER_LIST = ["Off", "Begin", "End", "Both"]
TIMEOUT_LIST = [str(x) + "s" for x in range(15, 601, 15)]
TOA_LIST = ["Off"] + ["%ds" % t for t in range(1, 11)]
@ -1078,6 +1080,8 @@ class KGUV9DPlusRadio(chirp_common.CloneModeRadio,
POWER_LEVELS = [chirp_common.PowerLevel("L", watts=1),
chirp_common.PowerLevel("M", watts=2),
chirp_common.PowerLevel("H", watts=5)]
_step_list = STEP_LIST
_valid_steps = STEPS
_mmap = ""
def _read_record(self):
@ -1346,7 +1350,7 @@ class KGUV9DPlusRadio(chirp_common.CloneModeRadio,
(400000000, 520000000), # supports 70cm
(700000000, 985000000)]
rf.valid_characters = chirp_common.CHARSET_ASCII
rf.valid_tuning_steps = STEPS
rf.valid_tuning_steps = self._valid_steps
rf.memory_bounds = (1, 999) # 999 memories
return rf
@ -2154,7 +2158,7 @@ class KGUV9DPlusRadio(chirp_common.CloneModeRadio,
RadioSetting(prefix + ".step",
"Frequency Step (Menu 3)",
RadioSettingValueList(
STEP_LIST, STEP_LIST[c.step])))
self._step_list, self._step_list[c.step])))
af.append(
RadioSetting(prefix + ".scan_mode",
"Scan Mode (Menu 20)",
@ -2445,6 +2449,13 @@ class KGUV9PXRadio(KGUV9DPlusRadio):
_rev = b"02" # default rev for the radio I know about...
_file_ident = b"kg-uv9px"
NEEDS_COMPAT_SERIAL = False
_valid_steps = STEPS
_step_list = STEP_LIST
@classmethod
def match_model(cls, filedata, filename):
# This model is only ever matched via metadata
return False
def process_mmap(self):
if self._rev != b"02" and self._rev != b"00":
@ -2600,7 +2611,7 @@ class KGUV9PXRadio(KGUV9DPlusRadio):
RadioSetting(prefix + ".step",
"Frequency Step (Menu 3)",
RadioSettingValueList(
STEP_LIST, STEP_LIST[c.step])))
self._step_list, self._step_list[c.step])))
af.append(
RadioSetting(prefix + ".scan_mode",
"Scan Mode (Menu 20)",
@ -2882,3 +2893,29 @@ class KGUV9GXRadio(KGUV9PXRadio):
_model = b"KG-UV9D"
_rev = b"02" # default rev for the radio I know about...
NEEDS_COMPAT_SERIAL = False
_valid_steps = STEPS
_step_list = STEP_LIST
@classmethod
def match_model(cls, filedata, filename):
# This model is only ever matched via metadata
return False
@directory.register
class KGUV9KRadio(KGUV9DPlusRadio):
"""Wouxun KG-UV9K"""
VENDOR = "Wouxun"
MODEL = "KG-UV9K"
_model = b"KG-UV9D"
_file_ident = b"kg-uv9k"
_rev = b"02" # default rev for the radio I know about...
NEEDS_COMPAT_SERIAL = False
_step_list = STEP_LIST_9K
_valid_steps = STEPS_9K
@classmethod
def match_model(cls, filedata, filename):
# This model is only ever matched via metadata
return False

View file

@ -351,6 +351,7 @@
| <a name="Wouxun_KG-UV980P"></a> Wouxun_KG-UV980P | [@mrtjr1](https://github.com/mrtjr1) | 23-jan-2023 | Yes | 0.01% |
| <a name="Wouxun_KG-UV9D_Plus"></a> Wouxun_KG-UV9D_Plus | [@samwich](https://github.com/samwich) | 10-Jan-2023 | Yes | 0.39% |
| <a name="Wouxun_KG-UV9GX"></a> Wouxun_KG-UV9GX | [@mrtjr1](https://github.com/mrtjr1) | 27-Mar-2023 | Yes | |
| <a name="Wouxun_KG-UV9K"></a> Wouxun_KG-UV9K | [@mrtjr1](https://github.com/mrtjr1) | 14-Apr-2023 | Yes | |
| <a name="Wouxun_KG-UV9PX"></a> Wouxun_KG-UV9PX | [@mrtjr1](https://github.com/mrtjr1) | 20-Jan-2022 | Yes | |
| <a name="Wouxun_KG-UVD1P"></a> Wouxun_KG-UVD1P | [Implied by Wouxun_KG-UV6](#user-content-Wouxun_KG-UV6) | 11-Dec-2022 | Yes | 0.35% |
| <a name="Yaesu_FT-1500M"></a> Yaesu_FT-1500M | [@f3sty](https://github.com/f3sty) | 05-Dec-2022 | Yes | 0.02% |
@ -401,11 +402,11 @@
| <a name="Zastone_ZT-X6"></a> Zastone_ZT-X6 | [Implied by Retevis_RT22](#user-content-Retevis_RT22) | 9-Dec-2022 | Yes | 0.11% |
## Stats
**Drivers:** 398
**Drivers:** 399
**Tested:** 84% (338/60) (93% of usage stats)
**Tested:** 84% (339/60) (93% of usage stats)
**Byte clean:** 89% (356/42)
**Byte clean:** 89% (357/42)
## Meaning of this testing

Binary file not shown.

View file

@ -307,6 +307,7 @@ Wouxun_KG-UV920P-A,@KC9HI,22-Dec-2022
Wouxun_KG-UV980P,@mrtjr1,23-jan-2023
Wouxun_KG-UV9PX,@mrtjr1,20-Jan-2022
Wouxun_KG-UV9GX,@mrtjr1,27-Mar-2023
Wouxun_KG-UV9K,@mrtjr1,14-Apr-2023
Wouxun_KG-935G,@mrtjr1,4-Jan-2022
Wouxun_KG-935G_Plus,@mrtjr1,7-Feb-2023
Yaesu_FT-1500M,@f3sty,05-Dec-2022