def get_settings(self): _settings = self._memobj.settings _info = self._memobj.info _bandlimits = self._memobj.bandlimits basic = RadioSettingGroup("basic", "Basic") info = RadioSettingGroup("info", "Model Info") top = RadioSettings(basic, info) add_radio_bool(basic, "beep", "Beep", _settings.beep) add_radio_bool(basic, "ars", "Auto Repeater Shift", _settings.ars) add_radio_setting(basic, "keylock", "Key Lock", zero_indexed_seq_map(["Manual", "Auto"]), _settings.keylock) add_radio_bool(basic, "auto_am", "Auto AM", _settings.auto_am) add_radio_setting(basic, "left_sql", "Left Squelch", zero_indexed_seq_map(SQLPRESET), _settings.left_sql) add_radio_setting(basic, "right_sql", "Right Squelch", zero_indexed_seq_map(SQLPRESET), _settings.right_sql) add_radio_setting(basic, "apo", "Auto Power off (Hours)", [("Off", 0), ("0.5", 5), ("1.0", 10), ("1.5", 15), ("2.0", 20)], _settings.apo) add_radio_setting(basic, "backlight", "Display Backlight", zero_indexed_seq_map(["Off", "1", "2", "3", "Full"]), _settings.backlight) add_radio_setting(basic, "pttlock", "PTT Lock", zero_indexed_seq_map(["Off", "Right", "Left", "Both"]), _settings.pttlock) add_radio_setting(basic, "hyper_chan", "Hyper Channel", zero_indexed_seq_map(["Manual", "Auto"]), _settings.hyper_chan) add_radio_setting(basic, "right_func_key", "Right Function Key", zero_indexed_seq_map(["Key 1", "Key 2"]), _settings.right_func_key) add_radio_setting(basic, "mute_mode", "Mute Mode", zero_indexed_seq_map(["Off", "TX", "RX", "TX RX"]), _settings.mute_mode) add_radio_setting(basic, "scan_mode", "Scan Mode", zero_indexed_seq_map(["MEM", "MSM"]), _settings.scan_mode, doc="MEM = Normal scan, bypass channels marked " "skip. MSM = Scan only channels marked priority.") add_radio_setting(basic, "scan_resume", "Scan Resume", zero_indexed_seq_map(["Time", "Busy"]), _settings.scan_resume) basic.append(RadioSetting( "tot", "Time Out Timer (minutes)", RadioSettingValueInteger(0, 30, _settings.tot))) add_radio_setting(basic, "p1", "P1 Function", zero_indexed_seq_map(MICKEYFUNC), _settings.p1) add_radio_setting(basic, "p2", "P2 Function", zero_indexed_seq_map(MICKEYFUNC), _settings.p2) add_radio_setting(basic, "p3", "P3 Function", zero_indexed_seq_map(MICKEYFUNC), _settings.p3) add_radio_setting(basic, "p4", "P4 Function", zero_indexed_seq_map(MICKEYFUNC), _settings.p4) def _filter(name): filtered = "" for char in str(name): if char in chirp_common.CHARSET_ASCII: filtered += char else: filtered += " " return filtered rsvs = RadioSettingValueString(0, 8, _filter(_info.sn)) rsvs.set_mutable(False) rs = RadioSetting("sn", "Serial Number", rsvs) info.append(rs) rsvs = RadioSettingValueString(0, 8, _filter(_info.model)) rsvs.set_mutable(False) rs = RadioSetting("model", "Model Name", rsvs) info.append(rs) rsvs = RadioSettingValueString(0, 16, _filter(_info.code)) rsvs.set_mutable(False) rs = RadioSetting("code", "Model Code", rsvs) info.append(rs) progdate = "%d/%d/%d" % (_info.prog_mon, _info.prog_day, _info.prog_yr) rsvs = RadioSettingValueString(0, 10, progdate) rsvs.set_mutable(False) rs = RadioSetting("progdate", "Last Program Date", rsvs) info.append(rs) # Band Limits for i in range(0, len(BANDS)): rx_start = int(_bandlimits[i].lorx) * 10 if not rx_start == 0: objname = BANDS[i] + "lorx" objnamepp = BANDS[i] + " Rx Start" rsv = RadioSettingValueString(0, 10, format_freq(rx_start)) rsv.set_mutable(False) rs = RadioSetting(objname, objnamepp, rsv) info.append(rs) rx_end = int(_bandlimits[i].hirx) * 10 objname = BANDS[i] + "hirx" objnamepp = BANDS[i] + " Rx end" rsv = RadioSettingValueString(0, 10, format_freq(rx_end)) rsv.set_mutable(False) rs = RadioSetting(objname, objnamepp, rsv) info.append(rs) tx_start = int(_bandlimits[i].lotx) * 10 if not tx_start == 0: objname = BANDS[i] + "lotx" objnamepp = BANDS[i] + " Tx Start" rsv = RadioSettingValueString(0, 10, format_freq(tx_start)) rsv.set_mutable(False) rs = RadioSetting(objname, objnamepp, rsv) info.append(rs) tx_end = int(_bandlimits[i].hitx) * 10 objname = BANDS[i] + "hitx" objnamepp = BANDS[i] + " Tx end" rsv = RadioSettingValueString(0, 10, format_freq(tx_end)) rsv.set_mutable(False) rs = RadioSetting(objname, objnamepp, rsv) info.append(rs) return top
def get_memory(self, number): _mem = self._memobj.memory[number - 1] mem = chirp_common.Memory() mem.number = number mem.empty = not self.get_active("chan_active", number) if mem.empty: return mem mem.freq = int(_mem.rx_freq) * 10 txfreq = int(_mem.tx_freq) * 10 if txfreq == mem.freq: mem.duplex = "" elif txfreq == 0: mem.duplex = "off" mem.offset = 0 elif abs(txfreq - mem.freq) > 70000000: mem.duplex = "split" mem.offset = txfreq elif txfreq < mem.freq: mem.duplex = "-" mem.offset = mem.freq - txfreq elif txfreq > mem.freq: mem.duplex = "+" mem.offset = txfreq - mem.freq mem.dtcs_polarity = DTCS_POLARITY[_mem.dtcs_pol] mem.tmode = TMODES[int(_mem.tmode)] mem.ctone = mem.rtone = int(_mem.ctcss) / 10.0 mem.dtcs = int(_mem.dtcs) mem.name = str(_mem.name) mem.name = mem.name.replace("\xFF", " ").rstrip() if not self.get_active("scan_enable", number): mem.skip = "S" elif self.get_active("priority", number): mem.skip = "P" else: mem.skip = "" mem.mode = _mem.am and "AM" or MODES[int(_mem.fmdev)] mem.power = POWER_LEVELS[_mem.power] mem.tuning_step = STEPS[_mem.step] mem.extra = RadioSettingGroup("extra", "Extra") add_radio_setting(mem.extra, "display", "Display", zero_indexed_seq_map(["Frequency", "Name"]), _mem.display) add_radio_setting(mem.extra, "hsdtype", "HSD TYPE", zero_indexed_seq_map(["OFF", "2TON", "5TON", "DTMF"]), _mem.hsdtype) add_radio_bool(mem.extra, "clk_sft", "CLK-SFT", _mem.clk_sft) add_radio_bool(mem.extra, "compand", "Compand", _mem.compand, doc="Compress Audio") add_radio_bool(mem.extra, "talkaround", "Talk Around", _mem.talkaround, doc="Simplex mode when out of range of repeater") add_radio_bool(mem.extra, "scramb", "Scramble", _mem.scramb, doc="Frequency inversion Scramble") return mem