[chirp_devel] [PATCH 1 of 4] [CIV radios] Fix common code for radio with no skip flag

# HG changeset patch # User Marco Filippi iz3gme.marco@gmail.com # Date 1453220451 -3600 # Tue Jan 19 17:20:51 2016 +0100 # Node ID 8b30f8921b6006272f1ffd2aaa027e89a940fe14 # Parent 0758ce12bbae704776ab0cc854b207b521f00d81 [CIV radios] Fix common code for radio with no skip flag
Introducing skip support for IC-7000 common CIV code have been modified but other radio (eg 7200) do not have that flag Introduced with fix for #3085
Fix #3185
diff -r 0758ce12bbae -r 8b30f8921b60 chirp/drivers/icomciv.py --- a/chirp/drivers/icomciv.py Fri Jan 15 09:08:36 2016 -0800 +++ b/chirp/drivers/icomciv.py Tue Jan 19 17:20:51 2016 +0100 @@ -307,10 +307,14 @@ memobj = f.get_obj() LOG.debug(repr(memobj))
- if memobj.skip == 1: - mem.skip = "" - else: - mem.skip = "S" + try: + if memobj.skip == 1: + mem.skip = "" + else: + mem.skip = "S" + except AttributeError: + pass + mem.freq = int(memobj.freq) mem.mode = self._rf.valid_modes[memobj.mode]
@@ -386,7 +390,10 @@ if mem.skip == "S": memobj.skip = 0 else: - memobj.skip = 1 + try: + memobj.skip = 1 + except KeyError: + pass memobj.freq = int(mem.freq) memobj.mode = self._rf.valid_modes.index(mem.mode) if self._rf.has_name:

# HG changeset patch # User Marco Filippi iz3gme.marco@gmail.com # Date 1453226835 -3600 # Tue Jan 19 19:07:15 2016 +0100 # Node ID 2be0404f89847c86e229cdb63d7b4593c12acad3 # Parent 8b30f8921b6006272f1ffd2aaa027e89a940fe14 [IC-7200] Fix radio properties
Radio have a whider receiver, 201 memories (where last two are scan edges) and supports reverse CW and RTTY
Discovered while working on #3185
diff -r 8b30f8921b60 -r 2be0404f8984 chirp/chirp_common.py --- a/chirp/chirp_common.py Tue Jan 19 17:20:51 2016 +0100 +++ b/chirp/chirp_common.py Tue Jan 19 19:07:15 2016 +0100 @@ -68,7 +68,7 @@ ]
MODES = ["WFM", "FM", "NFM", "AM", "NAM", "DV", "USB", "LSB", "CW", "RTTY", - "DIG", "PKT", "NCW", "NCWR", "CWR", "P25", "Auto"] + "DIG", "PKT", "NCW", "NCWR", "CWR", "P25", "Auto", "RTTYR"]
TONE_MODES = [ "", diff -r 8b30f8921b60 -r 2be0404f8984 chirp/drivers/icomciv.py --- a/chirp/drivers/icomciv.py Tue Jan 19 17:20:51 2016 +0100 +++ b/chirp/drivers/icomciv.py Tue Jan 19 19:07:15 2016 +0100 @@ -191,6 +191,12 @@ _model = "\x00" _template = 0
+ # complete list of modes from CI-V documentation + # each radio supports a subset + # WARNING: "S-AM" and "PSK" are not valid (yet) for chirp + _MODES = ["LSB", "USB", "AM", "CW", "RTTY", + "FM", "WFM", "CWR", "RTTYR", "S-AM", "PSK"] + def mem_to_ch_bnk(self, mem): l, h = self._bank_index_bounds bank_no = (mem // (h - l + 1)) + l @@ -316,7 +322,7 @@ pass
mem.freq = int(memobj.freq) - mem.mode = self._rf.valid_modes[memobj.mode] + mem.mode = self._MODES[memobj.mode]
if self._rf.has_name: mem.name = str(memobj.name).rstrip() @@ -395,7 +401,7 @@ except KeyError: pass memobj.freq = int(mem.freq) - memobj.mode = self._rf.valid_modes.index(mem.mode) + memobj.mode = self._MODES.index(mem.mode) if self._rf.has_name: memobj.name = mem.name.ljust(9)[:9]
@@ -454,13 +460,15 @@ self._rf.has_ctone = False self._rf.has_offset = False self._rf.has_name = False - self._rf.valid_modes = ["LSB", "USB", "AM", "CW", "RTTY"] + self._rf.has_nostep_tuning = True + self._rf.valid_modes = ["LSB", "USB", "AM", "CW", "RTTY", + "CWR", "RTTYR"] self._rf.valid_tmodes = [] self._rf.valid_duplexes = [] - self._rf.valid_bands = [(1800000, 59000000)] + self._rf.valid_bands = [(30000, 60000000)] self._rf.valid_tuning_steps = [] self._rf.valid_skips = [] - self._rf.memory_bounds = (1, 200) + self._rf.memory_bounds = (1, 201)
@directory.register

# 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)

# HG changeset patch # User Marco Filippi iz3gme.marco@gmail.com # Date 1453237285 -3600 # Tue Jan 19 22:01:25 2016 +0100 # Node ID bb833349d8dd3e5c00b35f9cf789075d506e954c # Parent f0b05d646db94dafec1d3ff71b2aa2efe9694677 [TS2000] Fix radio modes
Driver request CWR, FSK and FSKR, they must match in common mode list
Discovered while working on #3185 related to #3103
diff -r f0b05d646db9 -r bb833349d8dd chirp/chirp_common.py --- a/chirp/chirp_common.py Tue Jan 19 21:03:57 2016 +0100 +++ b/chirp/chirp_common.py Tue Jan 19 22:01:25 2016 +0100 @@ -68,7 +68,8 @@ ]
MODES = ["WFM", "FM", "NFM", "AM", "NAM", "DV", "USB", "LSB", "CW", "RTTY", - "DIG", "PKT", "NCW", "NCWR", "CWR", "P25", "Auto", "RTTYR"] + "DIG", "PKT", "NCW", "NCWR", "CWR", "P25", "Auto", "RTTYR", + "FSK", "FSKR"]
TONE_MODES = [ "", diff -r f0b05d646db9 -r bb833349d8dd chirp/drivers/ts2000.py --- a/chirp/drivers/ts2000.py Tue Jan 19 21:03:57 2016 +0100 +++ b/chirp/drivers/ts2000.py Tue Jan 19 22:01:25 2016 +0100 @@ -25,7 +25,7 @@ TS2000_DUPLEX[3] = "=" TS2000_DUPLEX[4] = "split" TS2000_MODES = ["?", "LSB", "USB", "CW", "FM", "AM", - "FSK", "CW-R", "?", "FSK-R"] + "FSK", "CWR", "?", "FSKR"] TS2000_TMODES = ["", "Tone", "TSQL", "DTCS"] TS2000_TONES = list(chirp_common.OLD_TONES) TS2000_TONES.remove(69.3)
participants (1)
-
Marco Filippi IZ3GME