
# HG changeset patch # User Marco Filippi iz3gme.marco@gmail.com # Date 1453233837 -3600 # Tue Jan 19 21:03:57 2016 +0100 # Node ID f0b05d646db94dafec1d3ff71b2aa2efe9694677 # Parent 2be0404f89847c86e229cdb63d7b4593c12acad3 [IC-7200] Add support for filter and digital
Discovered while working on #3185
diff -r 2be0404f8984 -r f0b05d646db9 chirp/drivers/icomciv.py --- a/chirp/drivers/icomciv.py Tue Jan 19 19:07:15 2016 +0100 +++ b/chirp/drivers/icomciv.py Tue Jan 19 21:03:57 2016 +0100 @@ -4,16 +4,26 @@ from chirp.drivers import icf from chirp import chirp_common, util, errors, bitwise, directory from chirp.memmap import MemoryMap +from chirp.settings import RadioSetting, RadioSettingGroup, \ + RadioSettingValueList, RadioSettingValueBoolean
LOG = logging.getLogger(__name__)
MEM_FORMAT = """ bbcd number[2]; -u8 unknown1; +u8 unknown:3 + split:1, + unknown_0:4; lbcd freq[5]; u8 unknown2:5, mode:3; +u8 filter; +u8 unknown_1:3, + dig:1, + unknown_2:4; """ + + # http://www.vk4adc.com/ # web/index.php/reference-information/49-general-ref-info/182-civ7400 MEM_IC7000_FORMAT = """ @@ -359,6 +369,27 @@ else: mem.immutable = ["offset"]
+ mem.extra = RadioSettingGroup("extra", "Extra") + try: + dig = RadioSetting("dig", "Digital", + RadioSettingValueBoolean(bool(memobj.dig))) + except AttributeError: + pass + else: + dig.set_doc("Enable digital mode") + mem.extra.append(dig) + + options = ["Wide", "Mid", "Narrow"] + try: + fil = RadioSetting("filter", "Filter", + RadioSettingValueList(options, + options[memobj.filter - 1])) + except AttributeError: + pass + else: + fil.set_doc("Filter settings") + mem.extra.append(fil) + return mem
def set_memory(self, mem): @@ -437,6 +468,12 @@ elif self._rf.valid_duplexes: memobj.duplex = self._rf.valid_duplexes.index(mem.duplex)
+ for setting in mem.extra: + if setting.get_name() == "filter": + setattr(memobj, setting.get_name(), int(setting.value) + 1) + else: + setattr(memobj, setting.get_name(), setting.value) + LOG.debug(repr(memobj)) self._send_frame(f)
@@ -460,13 +497,12 @@ self._rf.has_ctone = False self._rf.has_offset = False self._rf.has_name = False - self._rf.has_nostep_tuning = True + self._rf.has_tuning_step = False self._rf.valid_modes = ["LSB", "USB", "AM", "CW", "RTTY", "CWR", "RTTYR"] self._rf.valid_tmodes = [] self._rf.valid_duplexes = [] self._rf.valid_bands = [(30000, 60000000)] - self._rf.valid_tuning_steps = [] self._rf.valid_skips = [] self._rf.memory_bounds = (1, 201)