diff -r 5a17f1c24b38 chirp/h777.py --- a/chirp/h777.py Sun Feb 01 17:51:08 2015 -0500 +++ b/chirp/h777.py Sat Feb 07 01:04:57 2015 +0100 @@ -254,6 +254,7 @@ rf.valid_modes = ["NFM", "FM"] # 12.5 KHz, 25 kHz. rf.valid_skips = ["", "S"] rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS", "Cross"] + rf.valid_duplexes = ["", "-", "+", "split", "off"] rf.has_rx_dtcs = True rf.has_ctone = True rf.has_cross = True @@ -329,7 +330,10 @@ mem.empty = True return mem - if int(_mem.rxfreq) == int(_mem.txfreq): + if _mem.txfreq.get_raw() == "\xFF\xFF\xFF\xFF": + mem.duplex = "off" + mem.offset = 0 + elif int(_mem.rxfreq) == int(_mem.txfreq): mem.duplex = "" mem.offset = 0 else: @@ -389,6 +393,13 @@ # NOTE: Only two settings right now, both are inverted setattr(_mem, setting.get_name(), not int(setting.value)) + # When set to one, official programming software (BF-480) shows always + # "WFM", even if we choose "NFM". Therefore, for compatibility + # purposes, we will set these to zero. + _mem.unknown1 = 0; + _mem.unknown2 = 0; + _mem.unknown3 = 0; + def get_settings(self): _settings = self._memobj.settings basic = RadioSettingGroup("basic", "Basic Settings")