diff -r 5a17f1c24b38 -r bd48c6dd24d3 chirp/h777.py --- a/chirp/h777.py Sun Feb 01 17:51:08 2015 -0500 +++ b/chirp/h777.py Fri Feb 06 19:24:47 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 = ["", "-", "+", "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: @@ -353,6 +357,13 @@ RadioSettingValueBoolean(not _mem.beatshift)) mem.extra.append(rs) + # 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; + return mem def set_memory(self, mem):