From 52db47faa0d29bf71b05c31b604667ef36d7791a Mon Sep 17 00:00:00 2001 From: Jim Unroe Date: Sun, 4 Jun 2023 22:14:50 -0400 Subject: [PATCH] Add support for Hiroyasu HI-8811 - fixes #10622 --- chirp/drivers/mml_jc8810.py | 35 +++++++++++++++++++++--------- tests/Python3_Driver_Testing.md | 7 +++--- tests/images/Hiroyasu_HI-8811.img | Bin 0 -> 46017 bytes tests/py3_driver_testers.txt | 1 + 4 files changed, 30 insertions(+), 13 deletions(-) create mode 100644 tests/images/Hiroyasu_HI-8811.img diff --git a/chirp/drivers/mml_jc8810.py b/chirp/drivers/mml_jc8810.py index 23a18a54..e14ffabb 100644 --- a/chirp/drivers/mml_jc8810.py +++ b/chirp/drivers/mml_jc8810.py @@ -190,7 +190,7 @@ TXPOWER_MID = 0x02 ABR_LIST = ["On", "5 seconds", "10 seconds", "15 seconds", "20 seconds", "30 seconds", "1 minute", "2 minutes", "3 minutes"] ALMODE_LIST = ["Site", "Tone", "Code"] -AUTOLK_LIST = ABR_LIST[:4] +AUTOLK_LIST = ["Off"] + ABR_LIST[1:4] DTMFSPEED_LIST = ["50 ms", "100 ms", "200 ms", "300 ms", "500 ms"] DTMFST_LIST = ["Off", "KeyBoard Side Tone", "ANI Side Tone", "KB ST + ANI ST"] DUALTX_LIST = ["Off", "A", "B"] @@ -257,6 +257,7 @@ SETTING_LISTS = { "pttid": PTTID_LIST, "pttlt": PTTLT_LIST, "qtsave": QTSAVE_LIST, + "roger": ROGER_LIST, "rpste": RPSTE_LIST, "rptrl": RPSTE_LIST, "rxendtail": TONERXEND_LIST, @@ -818,7 +819,7 @@ class JC8810base(chirp_common.CloneModeRadio): if self.MODEL in ["RT-470"]: unwanted = [0, 7, 9] - elif self.MODEL in ["RT-470L"]: + elif self.MODEL in ["HI-8811", "RT-470L"]: unwanted = [9] else: unwanted = [] @@ -847,7 +848,7 @@ class JC8810base(chirp_common.CloneModeRadio): if self.MODEL in ["RT-470"]: unwanted = [0, 7, 8, 9] - elif self.MODEL in ["RT-470L"]: + elif self.MODEL in ["HI-8811", "RT-470L"]: unwanted = [8, 9] else: unwanted = [] @@ -876,7 +877,7 @@ class JC8810base(chirp_common.CloneModeRadio): if self.MODEL in ["RT-470"]: unwanted = [0, 7, 8, 9] - elif self.MODEL in ["RT-470L"]: + elif self.MODEL in ["HI-8811", "RT-470L"]: unwanted = [8, 9] else: unwanted = [] @@ -895,7 +896,7 @@ class JC8810base(chirp_common.CloneModeRadio): rset.set_apply_callback(apply_skey3s_listvalue, _settings.skey3_sp) basic.append(rset) - if self.MODEL in ["RT-470L"]: + if self.MODEL in ["HI-8811", "RT-470L"]: # Menu 24: PF3 LONG PRESS (RT-470L) def apply_skey3l_listvalue(setting, obj): LOG.debug("Setting value: " + str(setting.value) + @@ -905,7 +906,7 @@ class JC8810base(chirp_common.CloneModeRadio): val = SKEY2L_VALUES[index] obj.set_value(val) - if self.MODEL in ["RT-470L"]: + if self.MODEL in ["HI-8811", "RT-470L"]: unwanted = [8, 9] else: unwanted = [] @@ -925,7 +926,7 @@ class JC8810base(chirp_common.CloneModeRadio): _settings.skey3_lp) basic.append(rset) - if self.MODEL in ["RT-470", "RT-470L"]: + if self.MODEL in ["HI-8811", "RT-470", "RT-470L"]: # Menu 25: TOP KEY (RT-470L) def apply_skeytop_listvalue(setting, obj): LOG.debug("Setting value: " + str(setting.value) + @@ -944,7 +945,7 @@ class JC8810base(chirp_common.CloneModeRadio): # Press) setting in CHIRP. # ========== unwanted = [0, 7, 8, 9] - elif self.MODEL in ["RT-470L"]: + elif self.MODEL in ["HI-8811", "RT-470L"]: unwanted = [8, 9] else: unwanted = [] @@ -974,7 +975,7 @@ class JC8810base(chirp_common.CloneModeRadio): rset = RadioSetting("ponmsg", "Power On Message", rs) basic.append(rset) - if self.MODEL == "RT-470L": + if self.MODEL in ["HI-8811", "RT-470L"]: rs = RadioSettingValueList(TAILCODE_LIST, TAILCODE_LIST[_settings.tailcode]) rset = RadioSetting("tailcode", "Tail Code", rs) @@ -1213,7 +1214,8 @@ class RT470LRadio(JC8810base): # ========== _fingerprint = [b"\x00\x00\x00\xfe\x00\x20\xAC\x04", - b"\x00\x00\x00\x20\x00\x20\xCC\x04"] + b"\x00\x00\x00\x20\x00\x20\xCC\x04", + b"\x00\x00\x00\x20\x00\x20\x07\x00"] POWER_LEVELS = [chirp_common.PowerLevel("H", watts=5.00), chirp_common.PowerLevel("M", watts=4.00), @@ -1224,3 +1226,16 @@ class RT470LRadio(JC8810base): (220000000, 260000000), (330000000, 400000000), (400000000, 520000000)] + + +@directory.register +class HI8811Radio(RT470LRadio): + """Hiroyasu HI-8811""" + VENDOR = "Hiroyasu" + MODEL = "HI-8811" + + # ========== + # Notice to developers: + # The HI-8811 support in this driver is curretnly based upon v1.17 + # firmware. + # ========== diff --git a/tests/Python3_Driver_Testing.md b/tests/Python3_Driver_Testing.md index 0365d752..fa750faf 100644 --- a/tests/Python3_Driver_Testing.md +++ b/tests/Python3_Driver_Testing.md @@ -82,6 +82,7 @@ | Feidaxin_FD-460A | | | | 0.01% | | Feidaxin_FD-460UH | | | | 0.01% | | Generic_CSV | [@kk7ds](https://github.com/kk7ds) | 4-Dec-2022 | | | +| Hiroyasu_HI-8811 | [@KC9HI](https://github.com/KC9HI) | 4-Jun-2023 | Yes | | | HobbyPCB_RS-UV3 | [@kk7ds](https://github.com/kk7ds) | 9-Dec-2022 | Yes | 0.02% | | Icom_IC-208H | [Probably works](https://github.com/kk7ds/chirp/blob/py3/chirp/drivers/icf.py) | 12-Dec-2022 | Yes | 0.05% | | Icom_IC-2100H | [Probably works](https://github.com/kk7ds/chirp/blob/py3/chirp/drivers/icf.py) | 12-Dec-2022 | Yes | 0.04% | @@ -407,11 +408,11 @@ | Zastone_ZT-X6 | [Implied by Retevis_RT22](#user-content-Retevis_RT22) | 9-Dec-2022 | Yes | 0.11% | ## Stats -**Drivers:** 404 +**Drivers:** 405 -**Tested:** 85% (347/57) (93% of usage stats) +**Tested:** 85% (348/57) (93% of usage stats) -**Byte clean:** 89% (363/41) +**Byte clean:** 89% (364/41) ## Meaning of this testing diff --git a/tests/images/Hiroyasu_HI-8811.img b/tests/images/Hiroyasu_HI-8811.img new file mode 100644 index 0000000000000000000000000000000000000000..1e48095fcb240e8aeeb666197b991e67db7f8ddd GIT binary patch literal 46017 zcmeI*J#!mX6b9gXcJFGX8A`Wwz6}NAk6i~BnTfC?vl>KfWJi`dOB37j2N>eTkt+r! z3@M?bqu>wl2ly8hG*HsfQ;Byahpg`S#L1+KU+tW+k6)kF(W4|Y8_8qi&Kjnu>CKM4 zo5{auOiIh$W6YzpJU_=gO3U3>m`7=Oet~(Emb($=QCgmVjd_%oyKgX$((?RU%%im2 zJ;gjq%k%FrkJ57YJ?2qbo9;M~^ zI_6PY?i!d!X?ebZd6bsB4D%>0-`t!tMQQodtvOSanzxaowA}6B{!v<rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+ zfC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O z0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC z1t>rP3Q&Lo6rcbFC_n)U+5h>;+`B{jZef^oI@FuA=KzgvCBMBbx+p1#`0U%D^5Ke_Jy zUhTwJ-}U5o?fiIDIIej-uXX-Ef7Z@lc)j`g_5Ic7--c>>z<=l#$=_83|`ifL$`dH#}Upf^(r2qveKmiI+fC3bt00k&O0Sde| z0=T}%%hqB-F}8RIfT@Uy#o%TC8UiV9cy~Z3xT?m5G_IX-xhz$Yngn>C076`khY}P& zBOpOVf>?s81T_gwF%$+8;sV`D7)e->FqW_?VNI+l&SwL$A$}Y{Y$UcKHWphITa(BX zcNGN^g%Vkba0y?LD3+)yQB9t|^MCrn_a{58_m>x6ya+z&m%M)2>l3d}y?({(?|A(O zUcWlqCktNh?U#7_CEk9Cw_oDzmw5Xn-hPRg|_$`=#D~skdM1 z?U#D{rQUukrTtz=UjNyf{zWw7!Qt@Bvww!C2Sy%^n&-XF;(l-UaA9zIfB0bd;hp{V z#XtRD9|7t`$i@%e-GgD0)_bgsMGJnMGSh3x3_gKRkY+R+~72aVOG-fr`9 gud|v@veWeB(MMb7t)u#=by;6*ZSM^Cx9;Bk5BC;%VgLXD literal 0 HcmV?d00001 diff --git a/tests/py3_driver_testers.txt b/tests/py3_driver_testers.txt index e13304d7..9fe491f4 100644 --- a/tests/py3_driver_testers.txt +++ b/tests/py3_driver_testers.txt @@ -75,6 +75,7 @@ CRT_Micron_UV,+Retevis_RT95,13-Nov-2022 CRT_Micron_UV_V2,+Retevis_RT95,13-Nov-2022 Explorer_QRZ-1,+TYT_TH-UV88,5-Dec-2022 Generic_CSV,@kk7ds,4-Dec-2022 +Hiroyasu_HI-8811,@KC9HI,4-Jun-2023 HobbyPCB_RS-UV3,@kk7ds,9-Dec-2022 Icom_IC-208H,*icf,12-Dec-2022 Icom_IC-2100H,*icf,12-Dec-2022