[chirp_devel] [PATCH] [KG-UV3]Add FM Presets
# HG changeset patch # User Jim Unroe rock.unroe@gmail.com # Date 1386445464 18000 # Node ID eee14df4c4e590bf653da9a507a009be070e06e3 # Parent a7632ab56621a4843eb0f6cd2e917196510b615e [KG-UV3]Add FM Presets for Wouxun KG-UVD1P, KG-UV2 and KG-UV3 expose fm preset settings fields in memmap add FM Presets tab add FM Preset settings and other associated support related to #1167
diff -r a7632ab56621 -r eee14df4c4e5 chirp/wouxun.py --- a/chirp/wouxun.py Fri Dec 06 14:57:28 2013 -0500 +++ b/chirp/wouxun.py Sat Dec 07 14:44:24 2013 -0500 @@ -85,6 +85,12 @@ u8 unknown[2]; } memory[199];
+ #seekto 0x0842; + u16 fm_presets_0[9]; + + #seekto 0x0882; + u16 fm_presets_1[9]; + #seekto 0x0970; struct { u16 vhf_rx_start; @@ -324,7 +330,8 @@
def get_settings(self): freqranges = RadioSettingGroup("freqranges", "Freq ranges") - top = RadioSettingGroup("top", "All Settings", freqranges) + fm_preset = RadioSettingGroup("fm_preset", "FM Presets") + top = RadioSettingGroup("top", "All Settings", freqranges, fm_preset)
rs = RadioSetting("menu_available", "Menu Available", RadioSettingValueBoolean( @@ -570,6 +577,29 @@ rs.set_apply_callback(apply_ani_id, self._memobj.settings) top.append(rs)
+ for i in range(0, 9): + if self._memobj.fm_presets_0[i] != 0xFFFF: + used = True + preset = self._memobj.fm_presets_0[i]/10.0+76 + else: + used = False + preset = 76 + rs = RadioSetting("fm_presets_0_%1i" % i, "Team 1 Location %i" % (i+1), + RadioSettingValueBoolean(used), + RadioSettingValueFloat(76, 108, preset, 0.1, 1)) + fm_preset.append(rs) + for i in range(0, 9): + if self._memobj.fm_presets_1[i] != 0xFFFF: + used = True + preset = self._memobj.fm_presets_1[i]/10.0+76 + else: + used = False + preset = 76 + rs = RadioSetting("fm_presets_1_%1i" % i, "Team 2 Location %i" % (i+1), + RadioSettingValueBoolean(used), + RadioSettingValueFloat(76, 108, preset, 0.1, 1)) + fm_preset.append(rs) + return top
def set_settings(self, settings): @@ -577,6 +607,8 @@ if not isinstance(element, RadioSetting): if element.get_name() == "freqranges" : self._set_freq_settings(element) + elif element.get_name() == "fm_preset" : + self._set_fm_preset(element) else: self.set_settings(element) continue @@ -602,6 +634,26 @@ print element.get_name() raise
+ def _set_fm_preset(self, settings): + obj = self._memobj + for element in settings: + try: + (bank, index) = (int(a) for a in element.get_name().split("_")[-2:]) + val = element.value + if val[0].get_value(): + value = int(val[1].get_value()*10-760) + else: + value = 0xffff + print "Setting fm_presets_%1i[%1i] = %s" % (bank, index, value) + if bank == 0: + setting = self._memobj.fm_presets_0 + else: + setting = self._memobj.fm_presets_1 + setting[index] = value + except Exception, e: + print element.get_name() + raise + def _set_freq_settings(self, settings): for element in settings: try:
participants (1)
-
Jim Unroe