# HG changeset patch # User Jim Unroe rock.unroe@gmail.com # Date 1373422432 14400 # Node ID bf90ba41e4115f15c698e99442162be4882ce213 # Parent 3f9a95820f7dd2bdf7cc53f79b7661e93bacfcc1 [UV-82] Add support for Baofeng UV-82 VHF/UHF transceiver #961
diff -r 3f9a95820f7d -r bf90ba41e411 chirp/uv5r.py --- a/chirp/uv5r.py Fri Jul 05 19:03:33 2013 -0700 +++ b/chirp/uv5r.py Tue Jul 09 22:13:52 2013 -0400 @@ -112,6 +112,7 @@ u8 rptrl; u8 ponmsg; u8 roger; + u8 rogerrx; } settings[2];
#seekto 0x0E52; @@ -245,7 +246,7 @@ MODE_LIST = ["Channel", "Name", "Frequency"] COLOR_LIST = ["Off", "Blue", "Orange", "Purple"] ALMOD_LIST = ["Site", "Tone", "Code"] -TDRAB_LIST = ["Off", "A", "B"] +TDRAB_LIST = ROGERRX_LIST = ["Off", "A", "B"] PONMSG_LIST = ["Full", "Message"] RPSTE_LIST = ["%s" % x for x in range(1, 11, 1)] RPSTE_LIST.insert(0, "OFF") @@ -268,6 +269,7 @@ "txled" : COLOR_LIST, "almod" : ALMOD_LIST, "tdrab" : TDRAB_LIST, + "rogerrx" : ROGERRX_LIST, "ponmsg" : PONMSG_LIST, "rpste" : RPSTE_LIST, "stedelay" : STEDELAY_LIST, @@ -297,6 +299,7 @@ UV5R_MODEL_ORIG = "\x50\xBB\xFF\x01\x25\x98\x4D" UV5R_MODEL_291 = "\x50\xBB\xFF\x20\x12\x07\x25" UV5R_MODEL_F11 = "\x50\xBB\xFF\x13\xA1\x11\xDD" +UV82_MODEL = "\x50\xBB\xFF\x20\x13\x01\x05"
def _upper_band_from_data(data): return data[0x03:0x04] @@ -420,7 +423,7 @@ print "Image is %s" % repr(image_version) print "Radio is %s" % repr(radio_version)
- if "BFB" not in radio_version and "USA" not in radio_version: + if "BFB" not in radio_version and "BF82" not in radio_version and "USA" not in radio_version: raise errors.RadioError("Unsupported firmware version: `%s'" % radio_version)
@@ -723,6 +726,8 @@ idx = version_tag.index("BFB") + 3 version = int(version_tag[idx:idx+3]) return version < 291 + if 'BF82' in version_tag: + return False if 'USA' in version_tag: return False except: @@ -735,6 +740,9 @@ if 'BFB' in version_tag: idx = version_tag.index("BFB") + 3 return int(version_tag[idx:idx+3]) + elif 'BF' in version_tag: + idx = version_tag.index("BF") + 2 + return int(version_tag[idx:idx+4]) elif 'USA' in version_tag: idx = version_tag.index("USA") + 3 return int(version_tag[idx:idx+3]) @@ -789,15 +797,15 @@ TIMEOUT_LIST[_settings.timeout])) basic.append(rs)
- if self._my_version() >= 251: + if self._is_orig() and self._my_version() < 251: + rs = RadioSetting("voice", "Voice", + RadioSettingValueBoolean(_settings.voice)) + advanced.append(rs) + else: rs = RadioSetting("voice", "Voice", RadioSettingValueList(VOICE_LIST, VOICE_LIST[_settings.voice])) advanced.append(rs) - else: - rs = RadioSetting("voice", "Voice", - RadioSettingValueBoolean(_settings.voice)) - advanced.append(rs)
rs = RadioSetting("screv", "Scan Resume", RadioSettingValueList(RESUME_LIST, @@ -841,9 +849,18 @@ COLOR_LIST[_settings.txled])) basic.append(rs)
- rs = RadioSetting("roger", "Roger Beep", - RadioSettingValueBoolean(_settings.roger)) - basic.append(rs) + if self._my_version() < 8215: + rs = RadioSetting("roger", "Roger Beep", + RadioSettingValueBoolean(_settings.roger)) + basic.append(rs) + else: + rs = RadioSetting("roger", "Roger Beep (TX)", + RadioSettingValueBoolean(_settings.roger)) + basic.append(rs) + rs = RadioSetting("rogerrx", "Roger Beep (RX)", + RadioSettingValueList(ROGERRX_LIST, + ROGERRX_LIST[_settings.rogerrx])) + basic.append(rs)
rs = RadioSetting("ste", "Squelch Tail Eliminate (HT to HT)", RadioSettingValueBoolean(_settings.ste)) @@ -1078,7 +1095,7 @@ options[self._memobj.vfob.scode])) workmode.append(rs)
- if self._my_version() >= 291: + if not self._is_orig(): rs = RadioSetting("vfoa.step", "VFO A Tuning Step", RadioSettingValueList(STEP291_LIST, STEP291_LIST[self._memobj.vfoa.step])) @@ -1221,3 +1238,9 @@ MODEL = "F-11" _basetype = "USA" _idents = [UV5R_MODEL_F11] + +@directory.register +class BaofengUV82Radio(BaofengUV5R): + MODEL = "UV-82" + _basetype = "BF82" + _idents = [UV82_MODEL]