# HG changeset patch # User Jim Unroe rock.unroe@gmail.com # Date 1598909097 14400 # Mon Aug 31 17:24:57 2020 -0400 # Node ID fb0e42bb94ed2d8e95dac61ae38a86bb267d1019 # Parent da00bc273e5f52ea49e89e68819962413ca46e32 [UV-6] Support Baofeng UV-6 without Auxiliary Block
This patch adds support for Baofeng radio models, including the UV-6, that do not support access to the auxiliary block of memory.
Fixes #6567
diff -r da00bc273e5f -r fb0e42bb94ed chirp/drivers/uv5r.py --- a/chirp/drivers/uv5r.py Wed Aug 26 17:21:13 2020 -0400 +++ b/chirp/drivers/uv5r.py Mon Aug 31 17:24:57 2020 -0400 @@ -576,10 +576,11 @@ _do_status(radio, i) _do_status(radio, radio.get_memsize()) LOG.debug("done.") - LOG.debug("downloading aux block...") - # Auxiliary block starts at 0x1ECO (?) - for i in range(0x1EC0, 0x2000, 0x40): - data += _read_block(radio, i, 0x40, False) + if radio._aux_block: + LOG.debug("downloading aux block...") + # Auxiliary block starts at 0x1ECO (?) + for i in range(0x1EC0, 0x2000, 0x40): + data += _read_block(radio, i, 0x40, False)
if append_model: data += radio.MODEL.ljust(8) @@ -650,6 +651,9 @@ "of the radio (%s).") raise errors.RadioError(msg % (image_version, radio_version))
+ if not radio._aux_block: + image_matched_radio = True + # Main block for start_addr, end_addr in ranges_main: for i in range(start_addr, end_addr, 0x10): @@ -716,6 +720,7 @@ _vhf_range = (136000000, 174000000) _220_range = (220000000, 260000000) _uhf_range = (400000000, 520000000) + _aux_block = True _tri_power = False _mem_params = (0x1828 # poweron_msg offset ) @@ -1297,30 +1302,30 @@ # Old image, without aux block return group
- other = RadioSettingGroup("other", "Other Settings") - group.append(other) - - def _filter(name): - filtered = "" - for char in str(name): - if char in chirp_common.CHARSET_ASCII: - filtered += char - else: - filtered += " " - return filtered + if self.MODEL != "UV-6": + other = RadioSettingGroup("other", "Other Settings") + group.append(other)
- _msg = self._memobj.firmware_msg - val = RadioSettingValueString(0, 7, _filter(_msg.line1)) - val.set_mutable(False) - rs = RadioSetting("firmware_msg.line1", "Firmware Message 1", val) - other.append(rs) + def _filter(name): + filtered = "" + for char in str(name): + if char in chirp_common.CHARSET_ASCII: + filtered += char + else: + filtered += " " + return filtered
- val = RadioSettingValueString(0, 7, _filter(_msg.line2)) - val.set_mutable(False) - rs = RadioSetting("firmware_msg.line2", "Firmware Message 2", val) - other.append(rs) + _msg = self._memobj.firmware_msg + val = RadioSettingValueString(0, 7, _filter(_msg.line1)) + val.set_mutable(False) + rs = RadioSetting("firmware_msg.line1", "Firmware Message 1", val) + other.append(rs)
- if self.MODEL != "UV-6": + val = RadioSettingValueString(0, 7, _filter(_msg.line2)) + val.set_mutable(False) + rs = RadioSetting("firmware_msg.line2", "Firmware Message 2", val) + other.append(rs) + _msg = self._memobj.sixpoweron_msg rs = RadioSetting("sixpoweron_msg.line1", "6+Power-On Message 1", RadioSettingValueString( @@ -1646,7 +1651,7 @@ RadioSettingValueInteger(0, 50, _settings.pttlt)) dtmf.append(rs)
- if not self._is_orig(): + if not self._is_orig() and self._aux_block: service = RadioSettingGroup("service", "Service Settings") group.append(service)
@@ -1827,6 +1832,7 @@ _idents = [UV5R_MODEL_UV6, UV5R_MODEL_UV6_ORIG ] + _aux_block = False
def get_features(self): rf = BaofengUV5R.get_features(self)