def get_features(self): rf = chirp_common.RadioFeatures() rf.memory_bounds = (1, 128) rf.has_bank = False rf.has_ctone = True rf.has_tuning_step = False rf.has_cross = False rf.has_rx_dtcs = True rf.has_settings = True # it may actually be supported, but I haven't tested rf.can_odd_split = False rf.valid_duplexes = THUVF8D_DUPLEX rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS", "Cross"] rf.valid_characters = chirp_common.CHARSET_UPPER_NUMERIC + "-" rf.valid_bands = [(136000000, 174000000), (400000000, 520000000)] rf.valid_skips = ["", "S"] rf.valid_power_levels = POWER_LEVELS rf.valid_modes = ["FM", "NFM"] rf.valid_special_chans = SPECIALS.keys() rf.valid_name_length = 7 return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.memory_bounds = (1, 100) rf.valid_duplexes = DUPLEX rf.valid_tmodes = TMODES rf.valid_power_levels = POWER_LEVELS rf.valid_tuning_steps = TUNING_STEPS rf.valid_power_levels = POWER_LEVELS rf.valid_characters = "".join(CHARSET) rf.valid_name_length = 4 rf.valid_modes = MODES # Specials not yet implementd # rf.valid_special_chans = SPECIALS rf.valid_bands = [(76000000, 200000000), (300000000, 540000000), (590000000, 999000000)] # rf.can_odd_split = True rf.has_ctone = False rf.has_bank = False rf.has_settings = True rf.has_dtcs_polarity = False return rf
def get_features(self): """Get the radio's features""" rf = chirp_common.RadioFeatures() rf.has_settings = True rf.has_bank = False rf.has_tuning_step = False rf.can_odd_split = True rf.has_name = True rf.has_offset = True rf.has_mode = True rf.has_dtcs = False #True rf.has_rx_dtcs = False #True rf.has_dtcs_polarity = False #True rf.has_ctone = True rf.has_cross = True rf.valid_modes = ["FM", "NFM"] #rf.valid_characters = self.VALID_CHARS rf.valid_characters = CHARSET rf.valid_name_length = 6 rf.valid_duplexes = ["", "-", "+", "split", "off"] #rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS', 'Cross'] #rf.valid_cross_modes = [ # "Tone->Tone", # "DTCS->", # "->DTCS", # "Tone->DTCS", # "DTCS->Tone", # "->Tone", # "DTCS->DTCS"] rf.valid_tmodes = ['', 'Tone', 'TSQL', 'Cross'] rf.valid_cross_modes = ["Tone->Tone", "->Tone"] rf.valid_skips = ["", "S"] #rf.valid_dtcs_codes = self.DTCS_CODES rf.memory_bounds = (1, 128) rf.valid_power_levels = POWER_LEVELS rf.valid_bands = VALID_BANDS return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_settings = True rf.has_bank = False rf.has_ctone = True rf.has_cross = True rf.has_rx_dtcs = True rf.has_tuning_step = False rf.can_odd_split = True rf.has_name = False rf.valid_skips = ["", "S"] rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS", "Cross"] rf.valid_cross_modes = ["Tone->Tone", "Tone->DTCS", "DTCS->Tone", "->Tone", "->DTCS", "DTCS->", "DTCS->DTCS"] rf.valid_power_levels = RT22_POWER_LEVELS rf.valid_duplexes = ["", "-", "+", "split", "off"] rf.valid_modes = ["NFM", "FM"] # 12.5 KHz, 25 kHz. rf.memory_bounds = (1, 16) rf.valid_tuning_steps = [2.5, 5., 6.25, 10., 12.5, 25.] rf.valid_bands = [(400000000, 520000000)] return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_settings = True rf.valid_modes = ["FM"] rf.valid_tmodes = [""] rf.valid_characters = "" rf.valid_duplexes = [""] rf.valid_name_length = 0 rf.valid_power_levels = POWER_LEVELS rf.valid_skips = [] rf.valid_tuning_steps = [] rf.has_bank = False rf.has_ctone = False rf.has_dtcs = False rf.has_dtcs_polarity = False rf.has_mode = False rf.has_name = False rf.has_offset = False rf.has_tuning_step = False rf.valid_bands = [(136000000, 174000000)] rf.memory_bounds = (0, 0) return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_settings = True rf.has_ctone = False rf.has_bank = False rf.has_dtcs_polarity = False rf.has_dtcs = True rf.valid_modes = FT90_MODES rf.valid_tmodes = FT90_TMODES rf.valid_duplexes = FT90_DUPLEX rf.valid_tuning_steps = FT90_STEPS rf.valid_power_levels = FT90_POWER_LEVELS_VHF rf.valid_name_length = 7 rf.valid_characters = chirp_common.CHARSET_ASCII rf.valid_skips = ["", "S"] rf.valid_special_chans = FT90_SPECIAL rf.memory_bounds = (1, 180) rf.valid_bands = [(100000000, 230000000), (300000000, 530000000), (810000000, 999975000)] return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.can_odd_split = True rf.has_bank = False rf.has_ctone = True rf.has_cross = True rf.has_rx_dtcs = True rf.has_dtcs_polarity = False rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS", "Cross"] rf.valid_cross_modes = [ "Tone->Tone", "Tone->DTCS", "DTCS->Tone", "->Tone", "->DTCS", "DTCS->", "DTCS->DTCS" ] rf.valid_modes = ["FM", "NFM"] rf.valid_duplexes = ["", "-", "+", "split", "off"] rf.memory_bounds = (1, 32) rf.valid_bands = [(13600000, 174000000)] rf.valid_skips = ["", "S"] rf.valid_power_levels = POWER_LEVELS rf.valid_name_length = 4 rf.valid_characters = CHARSET return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_settings = True rf.has_cross = True rf.has_bank = False rf.has_tuning_step = False rf.can_odd_split = True rf.has_rx_dtcs = True rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS', 'Cross'] rf.valid_modes = MODES rf.valid_cross_modes = [ "Tone->Tone", "DTCS->", "->DTCS", "Tone->DTCS", "DTCS->Tone", "->Tone", "DTCS->DTCS" ] rf.valid_characters = chirp_common.CHARSET_ASCII rf.valid_name_length = 7 rf.valid_power_levels = self._power_levels rf.valid_duplexes = ["", "-", "+", "split", "off"] rf.valid_skips = ["", "S"] rf.valid_bands = [(136000000, 174000000), (400000000, 470000000)] rf.memory_bounds = (1, 199) return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.can_odd_split = True rf.has_bank = False rf.has_ctone = False rf.has_dtcs = False rf.has_dtcs_polarity = False rf.has_name = False rf.has_tuning_step = False rf.memory_bounds = (0, self._upper) rf.valid_bands = TS850_BANDS rf.valid_characters = chirp_common.CHARSET_UPPER_NUMERIC rf.valid_duplexes = TS850_DUPLEX rf.valid_modes = TS850_MODES.keys() rf.valid_skips = TS850_SKIP rf.valid_tmodes = TS850_TMODES return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.memory_bounds = (0, 199) rf.has_ctone = False rf.has_tuning_step = False rf.has_dtcs_polarity = False rf.has_bank = False rf.valid_tuning_steps = [5.0, 10.0, 12.5, 15.0, 20.0, 25.0, 50.0, 100.0] rf.valid_modes = MODES rf.valid_tmodes = TMODES rf.valid_bands = [(137000000, 174000000)] rf.valid_power_levels = POWER_LEVELS rf.valid_duplexes = DUPLEX rf.valid_skips = ["", "S", "P"] rf.valid_name_length = 6 rf.valid_characters = CHARSET return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.memory_bounds = (1, 128) rf.has_bank = False rf.has_ctone = True rf.has_tuning_step = False rf.has_cross = True rf.has_rx_dtcs = True rf.has_settings = False rf.can_odd_split = False rf.valid_duplexes = ['', '-', '+'] rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS", "Cross"] rf.valid_characters = chirp_common.CHARSET_UPPER_NUMERIC + "-" rf.valid_bands = [(136000000, 174000000), (400000000, 480000000)] rf.valid_skips = ["", "S"] rf.valid_power_levels = POWER_LEVELS rf.valid_modes = ["FM", "NFM"] rf.valid_name_length = 7 rf.valid_cross_modes = ["Tone->Tone", "Tone->DTCS", "DTCS->Tone", "->Tone", "->DTCS", "DTCS->", "DTCS->DTCS"] return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_bank = False rf.has_settings = False rf.can_odd_split = True rf.has_name = True rf.has_offset = True rf.valid_name_length = 5 rf.valid_duplexes = ['', '+', '-', 'split', 'off'] rf.valid_characters = CHARSET_ASCII_PLUS rf.has_dtcs = True rf.has_rx_dtcs = True rf.has_dtcs_polarity = True rf.valid_dtcs_codes = chirp_common.ALL_DTCS_CODES rf.has_ctone = True rf.has_cross = True rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS', 'Cross'] rf.valid_cross_modes = [ 'Tone->Tone', 'Tone->DTCS', 'DTCS->Tone', 'DTCS->DTCS', 'DTCS->', '->DTCS', '->Tone' ] rf.memory_bounds = (1, 200) # This radio supports memories 1-200 try: rf.valid_bands = get_band_limits_Hz( int(self._memobj.radio_settings.bandlimit)) except TypeError as e: # If we're asked without memory loaded, assume the most permissive rf.valid_bands = get_band_limits_Hz(1) except Exception as e: LOG.error('Failed to get band limits for anytone778uv: %s' % e) rf.valid_bands = get_band_limits_Hz(1) rf.valid_modes = ['FM', 'NFM'] rf.valid_power_levels = POWER_LEVELS rf.valid_tuning_steps = [2.5, 5, 6.25, 10, 12.5, 20, 25, 30, 50] rf.has_tuning_step = False return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.memory_bounds = (1, 800) rf.has_bank = False rf.has_tuning_step = True rf.valid_tuning_steps = STEPS rf.can_odd_split = True rf.valid_duplexes = ["", "-", "+", "split", "off"] rf.valid_tmodes = TMODES rf.has_ctone = False rf.valid_power_levels = POWER_LEVELS rf.valid_characters = chirp_common.CHARSET_UPPER_NUMERIC + "#*-+" rf.valid_bands = [(26000000, 33000000), (47000000, 54000000), (108000000, 180000000), (350000000, 399995000), (400000000, 512000000), (750000000, 950000000)] rf.valid_skips = SCAN_MODES rf.valid_modes = MODES + ["AM"] rf.valid_name_length = 6 rf.has_settings = True return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_settings = True rf.has_bank = False rf.has_cross = True rf.has_rx_dtcs = True rf.has_tuning_step = False rf.can_odd_split = True rf.valid_name_length = 7 rf.valid_characters = chirp_common.CHARSET_ASCII rf.valid_skips = ["", "S"] rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS", "Cross"] rf.valid_cross_modes = ["Tone->Tone", "Tone->DTCS", "DTCS->Tone", "->Tone", "->DTCS", "DTCS->", "DTCS->DTCS"] rf.valid_power_levels = SHX8800_POWER_LEVELS rf.valid_duplexes = ["", "-", "+", "split", "off"] rf.valid_modes = ["FM", "NFM"] rf.valid_tuning_steps = STEPS rf.valid_bands = [(100000000, 176000000), (400000000, 521000000)] rf.memory_bounds = (0, 127) return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_settings = True rf.has_cross = True rf.has_bank = False rf.has_tuning_step = False rf.has_name = False rf.has_rx_dtcs = True rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS', 'Cross'] rf.valid_modes = MODES rf.valid_cross_modes = [ "Tone->Tone", "DTCS->", "->DTCS", "Tone->DTCS", "DTCS->Tone", "->Tone", "DTCS->DTCS"] rf.valid_power_levels = POWER_LEVELS rf.valid_skips = ["", "S"] rf.valid_bands = [self._range] rf.memory_bounds = (1, self._upper) return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_settings = True rf.has_bank = False rf.has_cross = True rf.has_tuning_step = False rf.has_rx_dtcs = True rf.valid_skips = ["", "S"] rf.valid_modes = MODES rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS', 'Cross'] rf.valid_cross_modes = [ "Tone->Tone", "Tone->DTCS", "DTCS->Tone", "->Tone", "->DTCS", "DTCS->", "DTCS->DTCS" ] rf.valid_dtcs_codes = chirp_common.ALL_DTCS_CODES rf.valid_bands = [(136000000, 174000000), (400000000, 520000000)] rf.valid_characters = CHARSET rf.valid_name_length = 6 rf.valid_power_levels = POWER_LEVELS rf.valid_duplexes = DUPLEXES rf.can_odd_split = True rf.memory_bounds = (0, 199) return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.memory_bounds = (0, 129) rf.can_odd_split = False rf.has_ctone = False rf.has_tuning_step = True rf.has_dtcs_polarity = False rf.has_bank = False rf.valid_tuning_steps = STEPS rf.valid_modes = MODES rf.valid_tmodes = TMODES rf.valid_bands = [(137000000, 174000000)] rf.valid_power_levels = POWER_LEVELS rf.valid_duplexes = DUPLEX rf.valid_skips = ["", "S", "P"] rf.valid_name_length = 6 rf.valid_characters = CHARSET rf.has_cross = False return rf
def get_features(self): """Get the radio's features""" rf = chirp_common.RadioFeatures() rf.valid_special_chans = SPECIALS.keys() rf.has_settings = True rf.has_bank = False rf.has_tuning_step = False rf.can_odd_split = True rf.has_name = False rf.has_offset = True rf.has_mode = True rf.valid_modes = MODES rf.has_dtcs = True rf.has_rx_dtcs = True rf.has_dtcs_polarity = True rf.has_ctone = True rf.has_cross = True rf.valid_duplexes = ["", "-", "+", "split"] rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS', 'Cross'] rf.valid_cross_modes = [ "Tone->Tone", "DTCS->", "->DTCS", "Tone->DTCS", "DTCS->Tone", "->Tone", "DTCS->DTCS"] rf.valid_skips = SKIP_VALUES rf.valid_dtcs_codes = DTCS rf.memory_bounds = (1, self._upper) rf.valid_tuning_steps = [2.5, 5., 6.25, 10., 12.5, 25.] # normal dual bands rf.valid_bands = [self._vhf_range, self._uhf_range] return rf
def get_features(self): """Get the radio's features""" rf = chirp_common.RadioFeatures() rf.has_settings = True rf.has_bank = False rf.has_tuning_step = False rf.can_odd_split = True rf.has_name = True rf.has_offset = True rf.has_mode = True rf.has_dtcs = True rf.has_rx_dtcs = True rf.has_dtcs_polarity = True rf.has_ctone = True rf.has_cross = True rf.valid_modes = self.MODES rf.valid_characters = self.VALID_CHARS rf.valid_name_length = self.LENGTH_NAME rf.valid_duplexes = ["", "-", "+", "split", "off"] rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS', 'Cross'] rf.valid_cross_modes = [ "Tone->Tone", "DTCS->", "->DTCS", "Tone->DTCS", "DTCS->Tone", "->Tone", "DTCS->DTCS"] rf.valid_skips = self.SKIP_VALUES rf.valid_dtcs_codes = self.DTCS_CODES rf.memory_bounds = (0, 127) rf.valid_power_levels = self.POWER_LEVELS rf.valid_bands = self.VALID_BANDS rf.valid_tuning_steps = [2.5, 5.0, 6.25, 10.0, 12.5, 20.0, 25.0, 50.0] return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.memory_bounds = (0, 199) rf.can_odd_split = True rf.has_ctone = False rf.has_tuning_step = True rf.has_dtcs_polarity = False # in radio settings, not per memory rf.has_bank = False # has banks, but not implemented rf.valid_tuning_steps = STEPS rf.valid_modes = MODES rf.valid_tmodes = TMODES rf.valid_bands = [(137000000, 174000000)] rf.valid_power_levels = POWER_LEVELS rf.valid_duplexes = DUPLEX rf.valid_skips = ["", "S", "P"] rf.valid_name_length = 6 rf.valid_characters = CHARSET rf.has_cross = True rf.valid_cross_modes = list(CROSS_MODES) return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_ctone = True rf.has_cross = True rf.has_tuning_step = False rf.has_settings = True rf.has_bank = False rf.has_sub_devices = True rf.can_odd_split = True rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS'] rf.valid_bands = [(400000000, 520000000)] rf.valid_modes = ['FM', 'NFM'] rf.valid_tuning_steps = [ 2.5, 5.0, 6.25, 12.5, 10.0, 15.0, 20.0, 25.0, 50.0, 100.0 ] rf.valid_duplexes = ['', '-', '+', 'split', 'off'] rf.valid_power_levels = POWER_LEVELS rf.valid_name_length = 12 rf.valid_characters = ('ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' '0123456789' '!"#$%&\'()~+-,./:;<=>?@[\\]^`{}*| ') rf.memory_bounds = (1, 512) return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_settings = True rf.has_cross = True rf.has_rx_dtcs = True rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS", "Cross"] rf.valid_cross_modes = [ "Tone->Tone", "Tone->DTCS", "DTCS->Tone", "->Tone", "->DTCS", "DTCS->", "DTCS->DTCS" ] rf.valid_duplexes = DUPLEX rf.can_odd_split = True rf.valid_skips = ["", "S"] rf.valid_characters = CHARSET rf.valid_name_length = 5 rf.valid_bands = [(136000000, 174000000), (400000000, 520000000)] rf.valid_modes = ["FM", "NFM"] rf.valid_special_chans = SPECIALS.keys() rf.valid_power_levels = POWER_LEVELS rf.has_ctone = True rf.has_bank = False rf.has_tuning_step = False rf.memory_bounds = (1, 99) return rf
def get_features(self): """Return a RadioFeatures object for this radio""" rf = chirp_common.RadioFeatures() rf.has_settings = True rf.valid_modes = ['NFM', 'FM'] # 12.5 KHz, 25 kHz. rf.valid_power_levels = self.X3P_POWER_LEVELS rf.valid_skips = ['', 'S'] rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS', 'Cross'] rf.valid_duplexes = ['', '-', '+', 'split', 'off'] rf.can_odd_split = True rf.has_rx_dtcs = True rf.has_ctone = True rf.has_cross = True rf.valid_cross_modes = [ 'Tone->Tone', 'DTCS->', '->DTCS', 'Tone->DTCS', 'DTCS->Tone', '->Tone', 'DTCS->DTCS' ] rf.has_tuning_step = False rf.has_bank = False rf.has_name = False rf.memory_bounds = (1, self.CHANNELS) rf.valid_bands = [(400000000, 470000000)] return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS"] rf.valid_modes = ["FM", "NFM"] rf.valid_power_levels = POWER_LEVELS rf.valid_characters = ''.join(set(PUXING_CHARSET)) rf.valid_name_length = 6 rf.valid_tuning_steps = [ 2.5, 5.0, 6.25, 10.0, 12.5, 15.0, 20.0, 25.0, 30.0, 50.0, 100.0 ] rf.has_ctone = False rf.has_tuning_step = False rf.has_bank = False rf.memory_bounds = (1, 128) if not hasattr(self, "_memobj") or self._memobj is None: rf.valid_bands = [PUXING_777_BANDS[1]] elif self._memobj.model.model == PUXING_MODELS[777]: limit_idx = self._memobj.model.limits - 0xEE try: rf.valid_bands = [PUXING_777_BANDS[limit_idx]] except IndexError: LOG.error("Invalid band index %i (0x%02x)" % (limit_idx, self._memobj.model.limits)) rf.valid_bands = [PUXING_777_BANDS[1]] elif self._memobj.model.model == PUXING_MODELS[328]: # There are PX-777 that says to be model 328 ... # for them we only know this freq limits till now if self._memobj.model.limits == 0xEE: rf.valid_bands = [PUXING_777_BANDS[1]] else: raise Exception("Unsupported band limits 0x%02x for PX-777" % (self._memobj.model.limits) + " submodel 328" " - PLEASE REPORT THIS ERROR TO DEVELOPERS!!") return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_settings = True rf.has_bank_index = True rf.has_bank_names = True rf.has_cross = True rf.has_ctone = True rf.has_dtcs = True rf.has_rx_dtcs = False rf.has_dtcs_polarity = True rf.requires_call_lists = False rf.memory_bounds = (0, 999) rf.valid_modes = MMODES rf.valid_tmodes = MTONE_MODES rf.valid_duplexes = MDUPLEX rf.valid_tuning_steps = list(chirp_common.TUNING_STEPS[0:9]) rf.valid_bands = [(118000000, 174000000), (375000000, 550000000)] rf.valid_skips = MSKIPS rf.valid_characters = chirp_common.CHARSET_ASCII rf.valid_cross_modes = MCROSS_MODES rf.valid_name_length = 6 rf.valid_special_chans = sorted(_get_special().keys()) return rf
def get_features(self): rf = chirp_common.RadioFeatures() specials = [name for s in self.class_specials for name in s[1]] rf.valid_special_chans = specials rf.memory_bounds = (1, self.MAX_MEM_SLOT) rf.valid_duplexes = DUPLEX rf.valid_tmodes = VALID_TONE_MODES rf.valid_cross_modes = VALID_CROSS_MODES rf.valid_power_levels = POWER_LEVELS rf.valid_tuning_steps = self.legal_steps rf.valid_skips = SKIPS rf.valid_characters = CHARSET rf.valid_name_length = self.namelen rf.valid_modes = ["FM", "NFM"] rf.valid_bands = self.valid_bands rf.can_odd_split = True rf.has_ctone = True rf.has_rx_dtcs = True rf.has_dtcs_polarity = False # REV TN reverses the tone, not the dcs rf.has_cross = True rf.has_settings = True return rf
def get_features(self): """Return information about this radio's features""" rf = chirp_common.RadioFeatures() # this feature is READ ONLY by now. rf.has_settings = True rf.has_bank = False rf.has_tuning_step = False rf.has_name = False rf.has_offset = True rf.has_mode = False rf.has_dtcs = True rf.has_rx_dtcs = True rf.has_dtcs_polarity = True rf.has_ctone = True rf.has_cross = True rf.valid_duplexes = ["", "-", "+", "off"] rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS', 'Cross'] # we have to remove "Tone->" because this is the same to "TQSL" # I get a few days hitting the wall with my head about this... rf.valid_cross_modes = [ "Tone->Tone", "DTCS->", "->DTCS", "Tone->DTCS", "DTCS->Tone", "->Tone", "DTCS->DTCS"] # Power levels are golbal and no per channel, so disabled #rf.valid_power_levels = POWER_LEVELS # this radio has no skips rf.valid_skips = [] # this radio modes are global and not per channel, so just FM rf.valid_modes = ["FM"] rf.valid_bands = [self._range] rf.memory_bounds = (1, self._upper) return rf
def _get_rf(self): rf = chirp_common.RadioFeatures() rf.memory_bounds = (1, 10) return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.memory_bounds = (0, 999) return rf
def get_features(self): rf = chirp_common.RadioFeatures() rf.has_sub_devices = True rf.valid_special_chans = IC9X_SPECIAL[self.vfo].keys() return rf