Developers
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
February 2020
- 7 participants
- 36 discussions
# HG changeset patch
# User Bernhard Hailer <ham73tux(a)gmail.com>
# Date 1580597959 28800
# Sat Feb 01 14:59:19 2020 -0800
# Node ID 04404b4e386b95acfe95b590af75d9f26619d0ba
# Parent 53cd045bbf8253d32b43a528b245caff243e4c02
While implementing two more radios of the Yaesu FT-4 family (the FT-25, see #7543, and the FT-4V, see #7387), I found that with some moderate reorganization, implementation of new radios will become easier. The proposed reorganization implements one more interstitial layer of inheritance to support the sub families of FT-4 (containing the FT-4X and FT-4V) and FT-65 (containing FT-65 and FT-25). Also, some variable assignments have been moved from the individual radio classes to the SCU-35 base class and to the interstitial classes named above.
This change also adds the infrastructure for adding European or Asian models, and as such prepare for addressing a number of currently open issues (6.25kHz tune step issues on EU models, frequency limitations; see #6619, #6651, #6677, #6761, #6869). It will also make it easier for a few additional fixes for issues which were found during my work on this driver (#7601, #7603, #7605). I will submit these fixes in additional patches.
Fixes: #7615
diff --git a/chirp/drivers/ft4.py b/chirp/drivers/ft4.py
--- a/chirp/drivers/ft4.py
+++ b/chirp/drivers/ft4.py
@@ -2,6 +2,7 @@
# Derives loosely from two sources released under GPLv2:
# ./template.py, Copyright 2012 Dan Smith <dsmith(a)danplanet.com>
# ./ft60.py, Copyright 2011 Dan Smith <dsmith(a)danplanet.com>
+# Edited 2020 Bernhard Hailer AE6YN <ham73tux(a)gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,8 +19,8 @@
"""
CHIRP driver for Yaesu radios that use the SCU-35 cable. This includes at
-least the FT-4, FT-25, FT-35, and FT-65. This driver will not work with
-older Yaesu models.
+least the FT-4X, FT-4V, FT-65, and FT-25. This driver will not work with older
+Yaesu models.
"""
import logging
import struct
@@ -261,7 +262,8 @@
msg = "Bad echo. Sent:" + util.hexprint(cmd) + ", "
msg += "Received:" + util.hexprint(echo)
LOG.debug(msg)
- raise errors.RadioError("Incorrect echo on serial port. Bad cable?")
+ raise errors.RadioError(
+ "Incorrect echo on serial port. Radio off? Bad cable?")
if response_len is None:
return variable_len_resp(pipe)
if response_len > 0:
@@ -474,8 +476,6 @@
SKIPS = ["", "S"]
-BASETYPE_FT4 = ["FT-4XR", "FT-4XE"]
-BASETYPE_FT65 = ["FT-65R"]
POWER_LEVELS = [chirp_common.PowerLevel("Low", watts=0.5),
chirp_common.PowerLevel("Mid", watts=2.5),
chirp_common.PowerLevel("High", watts=5.0)]
@@ -560,16 +560,53 @@
# Each special has unique constrants: band, name yes/no, and pms L/U
# The FT-65 class replaces the "prog" entry in this list.
# The name field must be the name of a slot array in MEM_FORMAT
-SPECIALS = [
+SPECIALS_FT4 = [
("pms", PMSNAMES),
("vfo", ["VFO A UHF", "VFO A VHF", "VFO B FM", "VFO B VHF", "VFO B UHF"]),
("home", ["HOME FM", "HOME VHF", "HOME UHF"]),
("prog", ["P1", "P2"])
]
-BAND_ASSIGNMENTS = [2, 1, 0, 1, 2, 0, 1, 2] # bands for the vfos and homes
+SPECIALS_FT65 = SPECIALS_FT4
FT65_PROGS = ("prog", ["P1", "P2", "P3", "P4"])
-FT65_SPECIALS = list(SPECIALS) # a shallow copy works here
-FT65_SPECIALS[-1] = FT65_PROGS # replace the last entry (P key names)
+SPECIALS_FT65[-1] = FT65_PROGS # replace the last entry (P key names)
+
+# I wonder whether we should simply open the bands to what the radios allow
+# for RX? The radios do take care of allowing or prohibiting TX on their own.
+# In that case, the ASIA settings can be used for any region model.
+# To be discussed with Dan Clemmensen. [AE6YN]
+
+VALID_BANDS_US_DUAL = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (144000000, 148000000), # VHF, US version, TX and RX
+ (430000000, 450000000) # UHF, US version, TX and RX
+ ]
+VALID_BANDS_EU_DUAL = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (144000000, 146000000), # VHF, EU version, TX and RX
+ (430000000, 440000000) # UHF, EU version, TX and RX
+ ]
+VALID_BANDS_ASIA_DUAL = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (136000000, 174000000), # VHF, Asia version, TX and RX
+ (400000000, 480000000) # UHF, Asia version, TX and RX
+ ]
+
+VALID_BANDS_US_VHF = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (144000000, 148000000), # VHF, US version, TX and RX
+ ]
+VALID_BANDS_EU_VHF = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (144000000, 146000000), # VHF, EU version, TX and RX
+ ]
+VALID_BANDS_ASIA_VHF = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (136000000, 174000000), # VHF, Asia version, TX and RX
+ ]
+
+# bands for the five VFO and three home channel memories
+BAND_ASSIGNMENTS_DUALBAND = [2, 1, 0, 1, 2, 0, 1, 2] # all locations used
+BAND_ASSIGNMENTS_MONO_VHF = [1, 1, 0, 1, 1, 0, 1, 1] # UHF locations unused
# None, and 50 Tones. Use this explicit array because the
@@ -620,8 +657,8 @@
chirp_common.ExperimentalRadio):
"""
Base class for all Yaesu radios using the SCU-35 programming cable
- and its protocol. Classes for specific radios extend this class and
- are found at the end of this file.
+ and its protocol. Classes for sub families extend this class and
+ are found towards the end of this file.
"""
VENDOR = "Yaesu"
MODEL = "SCU-35Generic" # No radio directly uses the base class
@@ -629,6 +666,12 @@
MAX_MEM_SLOT = 200
NEEDS_COMPAT_SERIAL = False
+ # These settings are common to all radios in this family.
+ _valid_chars = chirp_common.CHARSET_ASCII
+ numblocks = 0x215 # number of 16-byte blocks in the radio
+ _memsize = 16 * numblocks # used by CHIRP file loader to guess radio type
+ MAX_MEM_SLOT = 200
+
@classmethod
def get_prompts(cls):
rp = chirp_common.RadioPrompts()
@@ -669,7 +712,6 @@
rf.has_dtcs_polarity = False # REV TN reverses the tone, not the dcs
rf.has_cross = True
rf.has_settings = True
- rf.valid_tuning_steps = self.legal_steps
return rf
@@ -1027,14 +1069,11 @@
mem = chirp_common.Memory()
_mem, ndx, num, regtype, sname = self.slotloc(memref)
mem.number = num
- mem.freq = int(_mem.freq) * 10
- mem.offset = int(_mem.offset) * self.freq_offset_scale
- mem.duplex = DUPLEX[_mem.duplex]
- self.decode_sql(mem, _mem)
- mem.power = POWER_LEVELS[_mem.tx_pwr]
- mem.mode = ["FM", "NFM"][_mem.tx_width]
- mem.tuning_step = STEP_CODE[_mem.step]
+ # First, we need to know whether a channel is enabled,
+ # then we can process any channel parameters.
+ # It was found (at least on an FT-25) that channels might be
+ # uninitialized and memory is just completely filled with 0xFF.
if regtype == "pms":
mem.extd_number = sname
@@ -1043,15 +1082,34 @@
mem.name = clean_name(self._memobj.names[ndx].chrs)
mem.empty = not retrieve_bit(self._memobj.enable, ndx)
mem.skip = SKIPS[retrieve_bit(self._memobj.scan, ndx)]
- txfreq = int(self._memobj.txfreqs[ndx].freq) * 10
- if (txfreq != 0) and (txfreq != mem.freq):
- mem.duplex = "split"
- mem.offset = txfreq
else:
mem.empty = False
mem.extd_number = sname
mem.immutable = ["number", "extd_number", "name", "skip"]
+ # So, now if channel is not empty, we can do the evaluation of
+ # all parameters. Otherwise we set them to defaults.
+
+ if mem.empty:
+ mem.freq = 0
+ mem.offset = 0
+ mem.duplex = "off"
+ mem.power = POWER_LEVELS[0] # "High"
+ mem.mode = "FM"
+ mem.tuning_step = 0
+ else:
+ mem.freq = int(_mem.freq) * 10
+ txfreq = int(self._memobj.txfreqs[ndx].freq) * 10
+ if (txfreq != 0) and (txfreq != mem.freq):
+ mem.duplex = "split"
+ mem.offset = txfreq
+ else:
+ mem.offset = int(_mem.offset) * self.freq_offset_scale
+ mem.duplex = DUPLEX[_mem.duplex]
+ self.decode_sql(mem, _mem)
+ mem.power = POWER_LEVELS[2 - _mem.tx_pwr]
+ mem.mode = ["FM", "NFM"][_mem.tx_width]
+ mem.tuning_step = STEP_CODE[_mem.step]
return mem
def enforce_band(self, memloc, freq, mem_num, sname):
@@ -1105,28 +1163,16 @@
return
-(a)directory.register
-class YaesuFT4Radio(YaesuSC35GenericRadio):
- MODEL = "FT-4XR"
- _basetype = BASETYPE_FT4
- valid_bands = [
- (65000000, 108000000), # broadcast FM, receive only
- (144000000, 148000000), # VHF, US version, TX and RX
- (430000000, 450000000) # UHF, US version, TX and RX
- # VHF, RX (136000000, 174000000)
- # UHF, RX (400000000, 480000000)
- ]
- _valid_chars = chirp_common.CHARSET_ASCII
- numblocks = 0x215 # number of 16-byte blocks in the radio
- _memsize = 16 * numblocks # used by CHIRP file loader to guess radio type
- MAX_MEM_SLOT = 200
- Pkeys = 2 # number of programmable keys on the FT-4
- namelen = 6 # length of the mem name display on the FT-4 front-panel
- id_str = b'IFT-35R\x00\x00V100\x00\x00'
+class YaesuFT4GenericRadio(YaesuSC35GenericRadio):
+ """
+ FT-4 sub family class. Classes for individual radios extend
+ these classes and are found at the end of this file.
+ """
+ class_specials = SPECIALS_FT4
+ Pkeys = 2 # number of programmable keys
+ namelen = 6 # length of the mem name display on the front-panel
freq_offset_scale = 25000
- legal_steps = US_LEGAL_STEPS
class_group_descs = YaesuSC35GenericRadio.group_descriptions
- class_specials = SPECIALS
# names for the setmode function for the programmable keys. Mode zero means
# that the key is programmed for a memory not a setmode.
SETMODES = [
@@ -1143,31 +1189,19 @@
]
-(a)directory.register
-class YaesuFT65Radio(YaesuSC35GenericRadio):
- MODEL = "FT-65R"
- _basetype = BASETYPE_FT65
- valid_bands = [
- (65000000, 108000000), # broadcast FM, receive only
- (144000000, 148000000), # VHF, US version, TX and RX
- (430000000, 450000000) # UHF, US version, TX and RX
- # VHF, RX (136000000, 174000000)
- # UHF, RX (400000000, 480000000)
- ]
- _valid_chars = chirp_common.CHARSET_ASCII
- numblocks = 0x215 # number of 16-byte blocks in the radio
- _memsize = 16 * numblocks # used by CHIRP file loader to guess radio type
- MAX_MEM_SLOT = 200
- Pkeys = 4 # number of programmable keys on the FT-65
- namelen = 8 # length of the mem name display on the FT-65 front panel
- id_str = b'IH-420\x00\x00\x00V100\x00\x00'
+class YaesuFT65GenericRadio(YaesuSC35GenericRadio):
+ """
+ FT-65 sub family class. Classes for individual radios extend
+ these classes and are found at the end of this file.
+ """
+ class_specials = SPECIALS_FT65
+ Pkeys = 4 # number of programmable keys
+ namelen = 8 # length of the mem name display on the front-panel
freq_offset_scale = 50000
- legal_steps = US_LEGAL_STEPS
# we need a deep copy here because we are adding deeper than the top level.
class_group_descs = copy.deepcopy(YaesuSC35GenericRadio.group_descriptions)
add_paramdesc(
class_group_descs, "misc", ("compander", "Compander", ["OFF", "ON"]))
- class_specials = FT65_SPECIALS
# names for the setmode function for the programmable keys. Mode zero means
# that the key is programmed for a memory not a setmode.
SETMODES = [
@@ -1180,3 +1214,31 @@
"step", "tot", "tx pwr", "tx save", "vfo.spl", # 30-34
"vox", "wfm.rcv", "wide/nar", "wx alert", "scramble" # 35-39
]
+
+
+# Classes for each individual radio.
+
+
+(a)directory.register
+class YaesuFT4XRRadio(YaesuFT4GenericRadio):
+ """
+ FT-4X dual band, US version
+ """
+ MODEL = "FT-4XR"
+ id_str = b'IFT-35R\x00\x00V100\x00\x00'
+ valid_bands = VALID_BANDS_US_DUAL
+ legal_steps = US_LEGAL_STEPS
+ BAND_ASSIGNMENTS = BAND_ASSIGNMENTS_DUALBAND
+
+
+(a)directory.register
+class YaesuFT65RRadio(YaesuFT65GenericRadio):
+ """
+ FT-65 dual band, US version
+ """
+ MODEL = "FT-65R"
+ id_str = b'IH-420\x00\x00\x00V100\x00\x00'
+ valid_bands = VALID_BANDS_US_DUAL
+ legal_steps = US_LEGAL_STEPS
+ BAND_ASSIGNMENTS = BAND_ASSIGNMENTS_DUALBAND
+
1
1
Tested changes:
Changes for Build #857
[Dan Smith <dsmith(a)danplanet.com>] Add (fix) support for ic2300 power levels
The driver claimed to have them, but ignored them, which was pretty
confusing to the users. This adds proper support.
Closes #6617
[Tom Hayward <tom(a)tomh.us>] [id880] Fix typo in charset definition. #281
[Tom Hayward <tom(a)tomh.us>] [thf6a] Support full charset (ASCII). Fixes #141
[Tom Hayward <tom(a)tomh.us>] [id880] Support full charset. Fixes #281
[Tom Hayward <tom(a)tomh.us>] [vx5] Support full charset (ASCII). Fixes #292
[Tom Hayward <tom(a)tomh.us>] [id31a] set used bit when creating new memory, clear when deleting. Fixes #269
[Tom Hayward <tom(a)tomh.us>] Support PyGTK < 2.22 in bank edit. Fixes #231
[Tom Hayward <tom(a)tomh.us>] [d710] [v71] [d72] Fix tone list (not all tones are supported). Fixes #212
[Dan Smith <dsmith(a)danplanet.com>] [vx7] Fix setting memory power levels on 220MHz band
Fixes #214
[Dan Smith <dsmith(a)danplanet.com>] fips: Pennsylvania FIPS code was wrong. #117
[Marco Filippi <iz3gme.marco(a)gmail.com>] Consider lower bound frequency of each valid_band as valid
Fix bug #181
[Tom Hayward <tom(a)tomh.us>] tmd700: allow 8-char names. Fixes #176
[Dan Smith <dsmith(a)danplanet.com>] Fix the "blind deletion" problem, as well as properly direct copy/paste
Fixes #172
[David Griffith <dave(a)661.org>] Bug #155 fix: VX-7 1.25m power levels
[David Griffith <dave(a)661.org>] New INSTALL and README files
Fixes #122
[Tom Hayward <tom(a)tomh.us>] thd72: only use hardware flow on OS X. Fixes #166
[Marco Filippi <iz3gme.marco(a)gmail.com>] [FT817] Tone freq not set correctly
Same as #88 for FT857, to avoid code duplication fix code have been moved from
ft857 to its ancestor class
Fix bug #163
[Tom Hayward <tom(a)tomh.us>] Fix Mac .app so paths with spaces work. Fixes Bug #145
Full log:
[...truncated 560 lines...]
test_copy_all (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 copy all ... ok
test_detect (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 detect ... ok
test_edges (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 edges ... ok
test_settings (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus brute force ... ok
test_clone (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus clone ... ok
test_copy_all (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus copy all ... ok
test_detect (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus detect ... ok
test_edges (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus edges ... ok
test_settings (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus settings ... ok
test_banks (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A brute force ... ok
test_clone (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A clone ... ok
test_copy_all (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A copy all ... ok
test_detect (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A detect ... ok
test_edges (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A edges ... ok
test_settings (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A settings ... ok
test_banks (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B brute force ... ok
test_clone (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B clone ... ok
test_copy_all (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B copy all ... ok
test_detect (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B detect ... ok
test_edges (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B edges ... ok
test_settings (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B settings ... ok
test_banks (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B brute force ... ok
test_clone (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B clone ... ok
test_copy_all (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B copy all ... ok
test_detect (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B detect ... ok
test_edges (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B edges ... ok
test_settings (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B settings ... ok
test_banks (tests.TestCase_IcomIC208H)
Testing Icom IC-208H banks ... ok
test_brute_force (tests.TestCase_IcomIC208H)
Testing Icom IC-208H brute force ... ok
test_clone (tests.TestCase_IcomIC208H)
Testing Icom IC-208H clone ... ok
test_copy_all (tests.TestCase_IcomIC208H)
Testing Icom IC-208H copy all ... ok
test_detect (tests.TestCase_IcomIC208H)
Testing Icom IC-208H detect ... ok
test_edges (tests.TestCase_IcomIC208H)
Testing Icom IC-208H edges ... ok
test_settings (tests.TestCase_IcomIC208H)
Testing Icom IC-208H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H brute force ... ok
test_clone (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H clone ... ok
test_copy_all (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H copy all ... ok
test_detect (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H detect ... ok
test_edges (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H edges ... ok
test_settings (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H banks ... ok
test_brute_force (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H brute force ... ok
test_clone (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H clone ... ok
test_copy_all (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H copy all ... ok
test_detect (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H detect ... ok
test_edges (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H edges ... ok
test_settings (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H settings ... ok
test_banks (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H banks ... ok
test_brute_force (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H brute force ... ok
test_clone (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H clone ... ok
test_copy_all (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H copy all ... ok
test_detect (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H detect ... ok
test_edges (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H edges ... ok
test_settings (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H settings ... ok
test_banks (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H banks ... ok
test_brute_force (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H brute force ... ok
test_clone (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H clone ... ok
test_copy_all (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H copy all ... ok
test_detect (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H detect ... ok
test_edges (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H edges ... ok
test_settings (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A banks ... ok
test_brute_force (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A brute force ... ok
test_clone (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A clone ... ok
test_copy_all (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A copy all ... ok
test_detect (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A detect ... ok
test_edges (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A edges ... ok
test_settings (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A settings ... ok
test_banks (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H banks ... ok
test_brute_force (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H brute force ... ok
test_clone (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H clone ... ok
test_copy_all (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H copy all ... ok
test_detect (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H detect ... ok
test_edges (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H edges ... ok
test_settings (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H settings ... ok
test_banks (tests.TestCase_IcomICP7)
Testing Icom IC-P7 banks ... ok
test_brute_force (tests.TestCase_IcomICP7)
Testing Icom IC-P7 brute force ... ok
test_clone (tests.TestCase_IcomICP7)
Testing Icom IC-P7 clone ... ok
test_copy_all (tests.TestCase_IcomICP7)
Testing Icom IC-P7 copy all ... ok
test_detect (tests.TestCase_IcomICP7)
Testing Icom IC-P7 detect ... ok
test_edges (tests.TestCase_IcomICP7)
Testing Icom IC-P7 edges ... ok
test_settings (tests.TestCase_IcomICP7)
Testing Icom IC-P7 settings ... ok
test_banks (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A brute force ... ok
test_clone (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A clone ... ok
test_copy_all (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A copy all ... ok
test_detect (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A detect ... ok
test_edges (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A edges ... ok
test_settings (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A settings ... ok
test_banks (tests.TestCase_IcomICT70)
Testing Icom IC-T70 banks ... ok
test_brute_force (tests.TestCase_IcomICT70)
Testing Icom IC-T70 brute force ... ok
test_clone (tests.TestCase_IcomICT70)
Testing Icom IC-T70 clone ... ok
test_copy_all (tests.TestCase_IcomICT70)
Testing Icom IC-T70 copy all ... ok
test_detect (tests.TestCase_IcomICT70)
Testing Icom IC-T70 detect ... ok
test_edges (tests.TestCase_IcomICT70)
Testing Icom IC-T70 edges ... ok
test_settings (tests.TestCase_IcomICT70)
Testing Icom IC-T70 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H brute force ... ok
test_clone (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H clone ... ok
test_copy_all (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H copy all ... ok
test_detect (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H detect ... ok
test_edges (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H edges ... ok
test_settings (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A brute force ... ok
test_clone (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A clone ... ok
test_copy_all (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A copy all ... ok
test_detect (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A detect ... ok
test_edges (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A edges ... ok
test_settings (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 banks ... ok
test_brute_force (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 brute force ... ok
test_clone (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 clone ... ok
test_copy_all (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 copy all ... ok
test_detect (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 detect ... ok
test_edges (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 edges ... ok
test_settings (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A brute force ... ok
test_clone (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A clone ... ok
test_copy_all (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A copy all ... ok
test_detect (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A detect ... ok
test_edges (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A edges ... ok
test_settings (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E brute force ... ok
test_clone (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E clone ... ok
test_copy_all (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E copy all ... ok
test_detect (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E detect ... ok
test_edges (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E edges ... ok
test_settings (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomID31A)
Testing Icom ID-31A banks ... ok
test_brute_force (tests.TestCase_IcomID31A)
Testing Icom ID-31A brute force ... ok
test_clone (tests.TestCase_IcomID31A)
Testing Icom ID-31A clone ... ok
test_copy_all (tests.TestCase_IcomID31A)
Testing Icom ID-31A copy all ... ok
test_detect (tests.TestCase_IcomID31A)
Testing Icom ID-31A detect ... ok
test_edges (tests.TestCase_IcomID31A)
Testing Icom ID-31A edges ... ok
test_settings (tests.TestCase_IcomID31A)
Testing Icom ID-31A settings ... ok
test_banks (tests.TestCase_IcomID51)
Testing Icom ID-51 banks ... ok
test_brute_force (tests.TestCase_IcomID51)
Testing Icom ID-51 brute force ... ok
test_clone (tests.TestCase_IcomID51)
Testing Icom ID-51 clone ... ok
test_copy_all (tests.TestCase_IcomID51)
Testing Icom ID-51 copy all ... ok
test_detect (tests.TestCase_IcomID51)
Testing Icom ID-51 detect ... ok
test_edges (tests.TestCase_IcomID51)
Testing Icom ID-51 edges ... ok
test_settings (tests.TestCase_IcomID51)
Testing Icom ID-51 settings ... ok
test_banks (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus banks ... ok
test_brute_force (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus brute force ... ok
test_clone (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus clone ... ok
test_copy_all (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus copy all ... ok
test_detect (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus detect ... ok
test_edges (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus edges ... ok
test_settings (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus settings ... ok
test_banks (tests.TestCase_IcomID800H)
Testing Icom ID-800H banks ... ok
test_brute_force (tests.TestCase_IcomID800H)
Testing Icom ID-800H brute force ... ok
test_clone (tests.TestCase_IcomID800H)
Testing Icom ID-800H clone ... ok
test_copy_all (tests.TestCase_IcomID800H)
Testing Icom ID-800H copy all ... ok
test_detect (tests.TestCase_IcomID800H)
Testing Icom ID-800H detect ... ok
test_edges (tests.TestCase_IcomID800H)
Testing Icom ID-800H edges ... ok
test_settings (tests.TestCase_IcomID800H)
Testing Icom ID-800H settings ... ok
test_banks (tests.TestCase_IcomID880H)
Testing Icom ID-880H banks ... ok
test_brute_force (tests.TestCase_IcomID880H)
Testing Icom ID-880H brute force ... ok
test_clone (tests.TestCase_IcomID880H)
Testing Icom ID-880H clone ... ok
test_copy_all (tests.TestCase_IcomID880H)
Testing Icom ID-880H copy all ... ok
test_detect (tests.TestCase_IcomID880H)
Testing Icom ID-880H detect ... ok
test_edges (tests.TestCase_IcomID880H)
Testing Icom ID-880H edges ... ok
test_settings (tests.TestCase_IcomID880H)
Testing Icom ID-880H settings ... ok
test_banks (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M brute force ... ok
test_clone (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M clone ... ok
test_copy_all (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M copy all ... ok
test_detect (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M detect ... ok
test_edges (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M edges ... ok
test_settings (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M brute force ... ok
test_clone (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M clone ... ok
test_copy_all (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M copy all ... ok
test_detect (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M detect ... ok
test_edges (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M edges ... ok
test_settings (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M settings ... ok
test_banks (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH brute force ... ok
test_clone (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH clone ... ok
test_copy_all (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH copy all ... ok
test_detect (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH detect ... ok
test_edges (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH edges ... ok
test_settings (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH settings ... ok
test_banks (tests.TestCase_KYDIP620)
Testing KYD IP-620 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KYDIP620)
Testing KYD IP-620 brute force ... ok
test_clone (tests.TestCase_KYDIP620)
Testing KYD IP-620 clone ... ok
test_copy_all (tests.TestCase_KYDIP620)
Testing KYD IP-620 copy all ... ok
test_detect (tests.TestCase_KYDIP620)
Testing KYD IP-620 detect ... ok
test_edges (tests.TestCase_KYDIP620)
Testing KYD IP-620 edges ... ok
test_settings (tests.TestCase_KYDIP620)
Testing KYD IP-620 settings ... ok
test_banks (tests.TestCase_KYDNC630A)
Testing KYD NC-630A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KYDNC630A)
Testing KYD NC-630A brute force ... ok
test_clone (tests.TestCase_KYDNC630A)
Testing KYD NC-630A clone ... ok
test_copy_all (tests.TestCase_KYDNC630A)
Testing KYD NC-630A copy all ... ok
test_detect (tests.TestCase_KYDNC630A)
Testing KYD NC-630A detect ... ok
test_edges (tests.TestCase_KYDNC630A)
Testing KYD NC-630A edges ... ok
test_settings (tests.TestCase_KYDNC630A)
Testing KYD NC-630A settings ... ok
test_banks (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) brute force ... ok
test_clone (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) clone ... ok
test_copy_all (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) copy all ... ok
test_detect (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) detect ... ok
test_edges (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) edges ... ok
test_settings (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) settings ... ok
test_banks (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G banks ... ok
test_brute_force (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G brute force ... ok
test_clone (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G clone ... ok
test_copy_all (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G copy all ... ok
test_detect (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G detect ... ok
test_edges (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G edges ... ok
test_settings (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G settings ... ok
test_banks (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G banks ... ok
test_brute_force (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G brute force ... ok
test_clone (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G clone ... ok
test_copy_all (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G copy all ... ok
test_detect (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G detect ... ok
test_edges (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G edges ... ok
test_settings (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G settings ... ok
test_banks (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 brute force ... ok
test_clone (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 clone ... ok
test_copy_all (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 copy all ... ok
test_detect (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 detect ... ok
test_edges (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 edges ... ok
test_settings (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 settings ... ok
test_banks (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 brute force ... ok
test_clone (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 clone ... ok
test_copy_all (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 copy all ... ok
test_detect (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 detect ... ok
test_edges (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 edges ... ok
test_settings (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 settings ... ok
test_banks (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode brute force ... ok
test_clone (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode clone ... ok
test_copy_all (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode copy all ... ok
test_detect (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode detect ... ok
test_edges (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode edges ... ok
test_settings (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode settings ... ok
test_banks (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode brute force ... ok
test_clone (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode clone ... ok
test_copy_all (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode copy all ... ok
test_detect (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode detect ... ok
test_edges (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode edges ... ok
test_settings (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode settings ... ok
test_banks (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV brute force ... ok
test_clone (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV clone ... ok
test_copy_all (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV copy all ... ok
test_detect (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV detect ... ok
test_edges (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV edges ... ok
test_settings (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV settings ... ok
test_banks (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 brute force ... ok
test_clone (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 clone ... ok
test_copy_all (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 copy all ... ok
test_detect (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 detect ... ok
test_edges (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 edges ... ok
test_settings (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 settings ... ok
test_banks (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S brute force ... ok
test_clone (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S clone ... ok
test_copy_all (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S copy all ... ok
test_detect (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S detect ... ok
test_edges (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S edges ... ok
test_settings (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S settings ... ok
test_banks (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M brute force ... ok
test_clone (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M clone ... ok
test_copy_all (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M copy all ... ok
test_detect (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M detect ... ok
test_edges (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M edges ... ok
test_settings (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M settings ... ok
test_banks (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R brute force ... ok
test_clone (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R clone ... ok
test_copy_all (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R copy all ... ok
test_detect (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R detect ... ok
test_edges (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R edges ... ok
test_settings (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 brute force ... ok
test_clone (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 clone ... ok
test_copy_all (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 copy all ... ok
test_detect (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 detect ... ok
test_edges (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 edges ... ok
test_settings (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K brute force ... ok
test_clone (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K clone ... ok
test_copy_all (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K copy all ... ok
test_detect (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K detect ... ok
test_edges (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K edges ... ok
test_settings (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K settings ... ok
test_banks (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D brute force ... ok
test_clone (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D clone ... ok
test_copy_all (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D copy all ... ok
test_detect (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D detect ... ok
test_edges (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D edges ... ok
test_settings (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D settings ... ok
test_banks (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D brute force ... ok
test_clone (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D clone ... ok
test_copy_all (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D copy all ... ok
test_detect (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D detect ... ok
test_edges (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D edges ... ok
test_settings (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D settings ... ok
test_banks (tests.TestCase_RadioddityR2)
Testing Radioddity R2 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RadioddityR2)
Testing Radioddity R2 brute force ... ok
test_clone (tests.TestCase_RadioddityR2)
Testing Radioddity R2 clone ... ok
test_copy_all (tests.TestCase_RadioddityR2)
Testing Radioddity R2 copy all ... ok
test_detect (tests.TestCase_RadioddityR2)
Testing Radioddity R2 detect ... ok
test_edges (tests.TestCase_RadioddityR2)
Testing Radioddity R2 edges ... ok
test_settings (tests.TestCase_RadioddityR2)
Testing Radioddity R2 settings ... ok
test_banks (tests.TestCase_RadtelT18)
Testing Radtel T18 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RadtelT18)
Testing Radtel T18 brute force ... ok
test_clone (tests.TestCase_RadtelT18)
Testing Radtel T18 clone ... ok
test_copy_all (tests.TestCase_RadtelT18)
Testing Radtel T18 copy all ... ok
test_detect (tests.TestCase_RadtelT18)
Testing Radtel T18 detect ... ok
test_edges (tests.TestCase_RadtelT18)
Testing Radtel T18 edges ... ok
test_settings (tests.TestCase_RadtelT18)
Testing Radtel T18 settings ... ok
test_banks (tests.TestCase_RetevisRT21)
Testing Retevis RT21 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT21)
Testing Retevis RT21 brute force ... ok
test_clone (tests.TestCase_RetevisRT21)
Testing Retevis RT21 clone ... ok
test_copy_all (tests.TestCase_RetevisRT21)
Testing Retevis RT21 copy all ... ok
test_detect (tests.TestCase_RetevisRT21)
Testing Retevis RT21 detect ... ok
test_edges (tests.TestCase_RetevisRT21)
Testing Retevis RT21 edges ... ok
test_settings (tests.TestCase_RetevisRT21)
Testing Retevis RT21 settings ... ok
test_banks (tests.TestCase_RetevisRT22)
Testing Retevis RT22 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT22)
Testing Retevis RT22 brute force ... ok
test_clone (tests.TestCase_RetevisRT22)
Testing Retevis RT22 clone ... ok
test_copy_all (tests.TestCase_RetevisRT22)
Testing Retevis RT22 copy all ... ok
test_detect (tests.TestCase_RetevisRT22)
Testing Retevis RT22 detect ... ok
test_edges (tests.TestCase_RetevisRT22)
Testing Retevis RT22 edges ... ok
test_settings (tests.TestCase_RetevisRT22)
Testing Retevis RT22 settings ... ok
test_banks (tests.TestCase_RetevisRT23)
Testing Retevis RT23 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT23)
Testing Retevis RT23 brute force ... ok
test_clone (tests.TestCase_RetevisRT23)
Testing Retevis RT23 clone ... ok
test_copy_all (tests.TestCase_RetevisRT23)
Testing Retevis RT23 copy all ... ok
test_detect (tests.TestCase_RetevisRT23)
Testing Retevis RT23 detect ... ok
test_edges (tests.TestCase_RetevisRT23)
Testing Retevis RT23 edges ... ok
test_settings (tests.TestCase_RetevisRT23)
Testing Retevis RT23 settings ... ok
test_banks (tests.TestCase_RetevisRT26)
Testing Retevis RT26 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT26)
Testing Retevis RT26 brute force ... ok
test_clone (tests.TestCase_RetevisRT26)
Testing Retevis RT26 clone ... ok
test_copy_all (tests.TestCase_RetevisRT26)
Testing Retevis RT26 copy all ... ok
test_detect (tests.TestCase_RetevisRT26)
Testing Retevis RT26 detect ... ok
test_edges (tests.TestCase_RetevisRT26)
Testing Retevis RT26 edges ... ok
test_settings (tests.TestCase_RetevisRT26)
Testing Retevis RT26 settings ... ok
test_banks (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A brute force ... ok
test_clone (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A clone ... ok
test_copy_all (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A copy all ... ok
test_detect (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A detect ... ok
test_edges (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A edges ... ok
test_settings (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A settings ... ok
test_banks (tests.TestCase_TYTTH350)
Testing TYT TH-350 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTH350)
Testing TYT TH-350 brute force ... ok
test_clone (tests.TestCase_TYTTH350)
Testing TYT TH-350 clone ... ok
test_copy_all (tests.TestCase_TYTTH350)
Testing TYT TH-350 copy all ... ok
test_detect (tests.TestCase_TYTTH350)
Testing TYT TH-350 detect ... ok
test_edges (tests.TestCase_TYTTH350)
Testing TYT TH-350 edges ... ok
test_settings (tests.TestCase_TYTTH350)
Testing TYT TH-350 settings ... ok
test_banks (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 brute force ... ok
test_clone (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 clone ... ok
test_copy_all (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 copy all ... ok
test_detect (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 detect ... ok
test_edges (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 edges ... ok
test_settings (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 settings ... ok
test_banks (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 brute force ... ok
test_clone (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 clone ... ok
test_copy_all (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 copy all ... ok
test_detect (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 detect ... ok
test_edges (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 edges ... ok
test_settings (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 settings ... ok
test_banks (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 brute force ... ok
test_clone (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 clone ... ok
test_copy_all (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 copy all ... ok
test_detect (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 detect ... ok
test_edges (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 edges ... ok
test_settings (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R brute force ... ok
test_clone (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R clone ... ok
test_copy_all (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R copy all ... ok
test_detect (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R detect ... ok
test_edges (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R edges ... ok
test_settings (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 brute force ... ok
test_clone (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 clone ... ok
test_copy_all (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 copy all ... ok
test_detect (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 detect ... ok
test_edges (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 edges ... ok
test_settings (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 settings ... ok
test_banks (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 brute force ... ok
test_clone (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 clone ... ok
test_copy_all (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 copy all ... ok
test_detect (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 detect ... ok
test_edges (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 edges ... ok
test_settings (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 settings ... ok
test_banks (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 brute force ... ok
test_clone (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 clone ... ok
test_copy_all (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 copy all ... ok
test_detect (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 detect ... ok
test_edges (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 edges ... ok
test_settings (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 settings ... ok
test_banks (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 brute force ... ok
test_clone (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 clone ... ok
test_copy_all (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 copy all ... ok
test_detect (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 detect ... ok
test_edges (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 edges ... ok
test_settings (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 brute force ... ok
test_clone (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 clone ... ok
test_copy_all (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 copy all ... ok
test_detect (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 detect ... ok
test_edges (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 edges ... ok
test_settings (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 settings ... ok
test_banks (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 brute force ... ok
test_clone (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 clone ... ok
test_copy_all (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 copy all ... ok
test_detect (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 detect ... ok
test_edges (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 edges ... ok
test_settings (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 settings ... ok
test_banks (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 brute force ... ok
test_clone (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 clone ... ok
test_copy_all (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 copy all ... ok
test_detect (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 detect ... ok
test_edges (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 edges ... ok
test_settings (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 settings ... ok
test_banks (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 brute force ... ok
test_clone (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 copy all ... ok
test_detect (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 detect ... ok
test_edges (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 edges ... ok
test_settings (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 settings ... ok
test_banks (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D brute force ... ok
test_clone (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D copy all ... ok
test_detect (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D detect ... ok
test_edges (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D edges ... ok
test_settings (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D settings ... ok
test_banks (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus brute force ... ok
test_clone (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus copy all ... ok
test_detect (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus detect ... ok
test_edges (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus edges ... ok
test_settings (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus settings ... ok
test_banks (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E brute force ... ok
test_clone (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E copy all ... ok
test_detect (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E detect ... ok
test_edges (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E edges ... ok
test_settings (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E settings ... ok
test_banks (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus brute force ... ok
test_clone (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus copy all ... ok
test_detect (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus detect ... ok
test_edges (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus edges ... ok
test_settings (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus settings ... ok
test_banks (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P brute force ... ok
test_clone (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P clone ... ok
test_copy_all (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P copy all ... ok
test_detect (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P detect ... ok
test_edges (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P edges ... ok
test_settings (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P settings ... ok
test_banks (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M brute force ... ok
test_clone (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M clone ... ok
test_copy_all (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M copy all ... ok
test_detect (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M detect ... ok
test_edges (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M edges ... ok
test_settings (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M brute force ... ok
test_clone (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M clone ... ok
test_copy_all (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M copy all ... ok
test_detect (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M detect ... ok
test_edges (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M edges ... ok
test_settings (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D banks ... ok
test_brute_force (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D brute force ... ok
test_clone (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D clone ... ok
test_copy_all (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D copy all ... ok
test_detect (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D detect ... ok
test_edges (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D edges ... ok
test_settings (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D settings ... ok
test_banks (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M brute force ... ok
test_clone (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M clone ... ok
test_copy_all (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M copy all ... ok
test_detect (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M detect ... ok
test_edges (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M edges ... ok
test_settings (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R banks ... ok
test_brute_force (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R brute force ... ok
test_clone (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R clone ... ok
test_copy_all (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R copy all ... ok
test_detect (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R detect ... ok
test_edges (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R edges ... ok
test_settings (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R settings ... ok
test_banks (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D brute force ... ok
test_clone (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D clone ... ok
test_copy_all (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D copy all ... ok
test_detect (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D detect ... ok
test_edges (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D edges ... ok
test_settings (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D settings ... ok
test_banks (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR banks ... ok
test_brute_force (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR brute force ... ok
test_clone (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR clone ... ok
test_copy_all (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR copy all ... ok
test_detect (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR detect ... ok
test_edges (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR edges ... ok
test_settings (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR settings ... ok
test_banks (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 brute force ... ok
test_clone (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 clone ... ok
test_copy_all (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 copy all ... ok
test_detect (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 detect ... ok
test_edges (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 edges ... ok
test_settings (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 settings ... ok
test_banks (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 banks ... ok
test_brute_force (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 brute force ... ok
test_clone (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 clone ... ok
test_copy_all (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 copy all ... ok
test_detect (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 detect ... ok
test_edges (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 edges ... ok
test_settings (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 settings ... ok
test_banks (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R banks ... ok
test_brute_force (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R brute force ... ok
test_clone (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R clone ... ok
test_copy_all (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R copy all ... ok
test_detect (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R detect ... ok
test_edges (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R edges ... ok
test_settings (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R settings ... ok
test_banks (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D banks ... ok
test_brute_force (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D brute force ... ok
test_clone (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D clone ... ok
test_copy_all (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D copy all ... ok
test_detect (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D detect ... ok
test_edges (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D edges ... ok
test_settings (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D settings ... ok
test_banks (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M brute force ... ok
test_clone (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M clone ... ok
test_copy_all (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M copy all ... ok
test_detect (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M detect ... ok
test_edges (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M edges ... ok
test_settings (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M settings ... ok
test_banks (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 banks ... ok
test_brute_force (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 brute force ... ok
test_clone (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 clone ... ok
test_copy_all (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 copy all ... ok
test_detect (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 detect ... ok
test_edges (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 edges ... ok
test_settings (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 settings ... ok
test_banks (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 brute force ... ok
test_clone (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 clone ... ok
test_copy_all (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 copy all ... ok
test_detect (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 detect ... ok
test_edges (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 edges ... ok
test_settings (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 settings ... ok
test_banks (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND brute force ... ok
test_clone (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND clone ... ok
test_copy_all (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND copy all ... ok
test_detect (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND detect ... ok
test_edges (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND edges ... ok
test_settings (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND settings ... ok
test_banks (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) brute force ... ok
test_clone (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) clone ... ok
test_copy_all (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) copy all ... ok
test_detect (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) detect ... ok
test_edges (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) edges ... ok
test_settings (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) settings ... ok
test_banks (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 brute force ... ok
test_clone (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 clone ... ok
test_copy_all (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 copy all ... ok
test_detect (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 detect ... ok
test_edges (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 edges ... ok
test_settings (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 settings ... ok
test_banks (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 brute force ... ok
test_clone (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 clone ... ok
test_copy_all (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 copy all ... ok
test_detect (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 detect ... ok
test_edges (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 edges ... ok
test_settings (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 settings ... ok
test_banks (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) brute force ... ok
test_clone (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) clone ... ok
test_copy_all (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) copy all ... ok
test_detect (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) detect ... ok
test_edges (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) edges ... ok
test_settings (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) settings ... ok
test_banks (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 banks ... ok
test_brute_force (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 brute force ... ok
test_clone (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 clone ... ok
test_copy_all (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 copy all ... ok
test_detect (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 detect ... ok
test_edges (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 edges ... ok
test_settings (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 brute force ... ok
test_clone (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 clone ... ok
test_copy_all (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 copy all ... ok
test_detect (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 detect ... ok
test_edges (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 edges ... ok
test_settings (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D banks ... ok
test_brute_force (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D brute force ... ok
test_clone (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D clone ... ok
test_copy_all (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D copy all ... ok
test_detect (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D detect ... ok
test_edges (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D edges ... ok
test_settings (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D settings ... ok
test_banks (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D banks ... ok
test_brute_force (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D brute force ... ok
test_clone (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D clone ... ok
test_copy_all (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D copy all ... ok
test_detect (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D detect ... ok
test_edges (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D edges ... ok
test_settings (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D settings ... ok
test_banks (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D brute force ... ok
test_clone (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D clone ... ok
test_copy_all (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D copy all ... ok
test_detect (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D detect ... ok
test_edges (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D edges ... ok
test_settings (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 brute force ... ok
test_clone (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 clone ... ok
test_copy_all (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 copy all ... ok
test_detect (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 detect ... ok
test_edges (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 edges ... ok
test_settings (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 banks ... ok
test_brute_force (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 brute force ... ok
test_clone (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 clone ... ok
test_copy_all (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 copy all ... ok
test_detect (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 detect ... ok
test_edges (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 edges ... ok
test_settings (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 settings ... ok
test_banks (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 banks ... ok
test_brute_force (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 brute force ... ok
test_clone (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 clone ... ok
test_copy_all (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 copy all ... ok
test_detect (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 detect ... ok
test_edges (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 edges ... ok
test_settings (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 settings ... ok
test_banks (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 banks ... ok
test_brute_force (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 brute force ... ok
test_clone (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 clone ... ok
test_copy_all (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 copy all ... ok
test_detect (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 detect ... ok
test_edges (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 edges ... ok
test_settings (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 banks ... ok
test_brute_force (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 brute force ... ok
test_clone (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 clone ... ok
test_copy_all (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 copy all ... ok
test_detect (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 detect ... ok
test_edges (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 edges ... ok
test_settings (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 settings ... ok
test_banks (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 banks ... ok
test_brute_force (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 brute force ... ok
test_clone (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 clone ... ok
test_copy_all (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 copy all ... ok
test_detect (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 detect ... ok
test_edges (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 edges ... ok
test_settings (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR banks ... ok
test_brute_force (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR brute force ... ok
test_clone (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR clone ... ok
test_copy_all (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR copy all ... ok
test_detect (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR detect ... ok
test_edges (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR edges ... ok
test_settings (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR settings ... ok
test_banks (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE banks ... ok
test_brute_force (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE brute force ... ok
test_clone (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE clone ... ok
test_copy_all (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE copy all ... ok
test_detect (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE detect ... ok
test_edges (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE edges ... ok
test_settings (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE settings ... ok
test_banks (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R banks ... ok
test_brute_force (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R brute force ... ok
test_clone (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R clone ... ok
test_copy_all (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R copy all ... ok
test_detect (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R detect ... ok
test_edges (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R edges ... ok
test_settings (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R settings ... ok
----------------------------------------------------------------------
Ran 896 tests in 300.312s
OK (skipped=124)
#seekto 0x0100;
struct {
char sw_name[7];
char sw_ver[5];
u8 unknown1[4];
char sw_key[12];
u8 unknown2[4];
char model[5];
u8 unknown3[11];
} header;
#seekto 0x0140;
struct {
// 0x0140
u8 unknown1;
u8 sublcd;
u8 unknown2[30];
// 0x0160
char pon_msgtext[12];
u8 min_volume;
u8 max_volume;
u8 lo_volume;
u8 hi_volume;
// 0x0170
u8 tone_volume_offset;
u8 poweron_tone;
u8 control_tone;
u8 warning_tone;
u8 alert_tone;
u8 sidetone;
u8 locator_tone;
u8 unknown3[2];
u8 ignition_mode;
u8 ignition_time; // In tens of minutes (6 = 1h)
u8 micsense;
ul16 modereset;
u8 min_vol_preset;
u8 unknown4;
// 0x0180
u8 unknown5[16];
// 0x0190
u8 unknown6[3];
u8 pon_msgtype;
u8 unknown7[8];
u8 unknown8_1:2,
ssi:1,
busy_led:1,
power_switch_memory:1,
scrambler_memory:1,
unknown8_2:1,
off_hook_decode:1;
u8 unknown9_1:5,
clockfmt:1,
datefmt:1,
ignition_sense:1;
u8 unknownA[2];
// 0x01A0
u8 unknownB[8];
u8 ptt_timer;
u8 unknownB2[3];
u8 ptt_proceed:1,
unknownC_1:3,
tone_off:1,
ost_memory:1,
unknownC_2:1,
ptt_release:1;
u8 unknownD[3];
} settings;
#seekto 0x01E0;
struct {
char name[12];
ul16 rxtone;
ul16 txtone;
} ost_tones[40];
#seekto 0x0A00;
ul16 zone_starts[128];
struct zoneinfo {
u8 number;
u8 zonetype;
u8 unknown1[2];
u8 count;
char name[12];
u8 unknown2[2];
ul16 timeout; // 15-1200
ul16 tot_alert; // 10
ul16 tot_rekey; // 60
ul16 tot_reset; // 15
u8 unknown3[3];
u8 unknown21:2,
bcl_override:1,
unknown22:5;
u8 unknown5;
};
struct memory {
u8 number;
lbcd rx_freq[4];
lbcd tx_freq[4];
u8 unknown1[2];
ul16 rx_tone;
ul16 tx_tone;
char name[12];
u8 unknown2[19];
u8 unknown3_1:4,
highpower:1,
unknown3_2:1,
wide:1,
unknown3_3:1;
u8 unknown4;
};
#seekto 0xC570; // Fixme
u8 skipflags[64];
#seekto 0xb00;
struct {
struct zoneinfo zoneinfo;
struct memory memories[2];
} zone0;
style create: /chirp/.tox/style
style installdeps: pep8==1.6.2, future
style inst: /chirp/.tox/.tmp/package/1/chirp-0.3.0dev.zip
style installed: DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.,chirp==0.3.0.dev0,configparser==3.7.4,contextlib2==0.5.5,filelock==3.0.12,future==0.15.2,importlib-metadata==0.18,Mako==1.0.3,MarkupSafe==0.23,mercurial==3.7.3,packaging==19.0,pathlib2==2.3.4,pep8==1.6.2,pluggy==0.12.0,py==1.8.0,pygobject==3.20.0,pyparsing==2.4.0,pyserial==3.0.1,scandir==1.10.0,six==1.12.0,toml==0.10.0,tox==3.13.2,virtualenv==16.6.1,zipp==0.5.2
style run-test-pre: PYTHONHASHSEED='1107964605'
style run-test: commands[0] | python ./tools/cpep8.py
___________________________________ summary ____________________________________
unit: commands succeeded
driver: commands succeeded
style: commands succeeded
congratulations :)
Email was triggered for: Success
Sending email for trigger: Success
1
0
# HG changeset patch
# User Bernhard Hailer <ham73tux(a)gmail.com>
# Date 1580597959 28800
# Sat Feb 01 14:59:19 2020 -0800
# Node ID 04404b4e386b95acfe95b590af75d9f26619d0ba
# Parent 53cd045bbf8253d32b43a528b245caff243e4c02
While implementing two more radios of the Yaesu FT-4 family (the FT-25,
see #7543, and the FT-4V, see #7387), I found that with some moderate
reorganization, implementation of new radios will become easier. The
proposed reorganization implements one more interstitial layer of
inheritance to support the sub families of FT-4 (containing the FT-4X
and FT-4V) and FT-65 (containing FT-65 and FT-25). Also, some variable
assignments have been moved from the individual radio classes to the
SCU-35 base class and to the interstitial classes named above.
This change also adds the infrastructure for adding European or Asian
models, and as such prepare for addressing a number of currently open
issues (6.25kHz tune step issues on EU models, frequency limitations;
see #6619, #6651, #6677, #6761, #6869). It will also make it easier for
a few additional fixes for issues which were found during my work on
this driver (#7601, #7603, #7605). I will submit these fixes in
additional patches.
Fixes: #7615
diff --git a/chirp/drivers/ft4.py b/chirp/drivers/ft4.py
--- a/chirp/drivers/ft4.py
+++ b/chirp/drivers/ft4.py
@@ -2,6 +2,7 @@
# Derives loosely from two sources released under GPLv2:
# ./template.py, Copyright 2012 Dan Smith <dsmith(a)danplanet.com>
# ./ft60.py, Copyright 2011 Dan Smith <dsmith(a)danplanet.com>
+# Edited 2020 Bernhard Hailer AE6YN <ham73tux(a)gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,8 +19,8 @@
"""
CHIRP driver for Yaesu radios that use the SCU-35 cable. This includes at
-least the FT-4, FT-25, FT-35, and FT-65. This driver will not work with
-older Yaesu models.
+least the FT-4X, FT-4V, FT-65, and FT-25. This driver will not work
with older
+Yaesu models.
"""
import logging
import struct
@@ -261,7 +262,8 @@
msg = "Bad echo. Sent:" + util.hexprint(cmd) + ", "
msg += "Received:" + util.hexprint(echo)
LOG.debug(msg)
- raise errors.RadioError("Incorrect echo on serial port. Bad
cable?")
+ raise errors.RadioError(
+ "Incorrect echo on serial port. Radio off? Bad cable?")
if response_len is None:
return variable_len_resp(pipe)
if response_len > 0:
@@ -474,8 +476,6 @@
SKIPS = ["", "S"]
-BASETYPE_FT4 = ["FT-4XR", "FT-4XE"]
-BASETYPE_FT65 = ["FT-65R"]
POWER_LEVELS = [chirp_common.PowerLevel("Low", watts=0.5),
chirp_common.PowerLevel("Mid", watts=2.5),
chirp_common.PowerLevel("High", watts=5.0)]
@@ -560,16 +560,53 @@
# Each special has unique constrants: band, name yes/no, and pms L/U
# The FT-65 class replaces the "prog" entry in this list.
# The name field must be the name of a slot array in MEM_FORMAT
-SPECIALS = [
+SPECIALS_FT4 = [
("pms", PMSNAMES),
("vfo", ["VFO A UHF", "VFO A VHF", "VFO B FM", "VFO B VHF", "VFO B
UHF"]),
("home", ["HOME FM", "HOME VHF", "HOME UHF"]),
("prog", ["P1", "P2"])
]
-BAND_ASSIGNMENTS = [2, 1, 0, 1, 2, 0, 1, 2] # bands for the vfos and homes
+SPECIALS_FT65 = SPECIALS_FT4
FT65_PROGS = ("prog", ["P1", "P2", "P3", "P4"])
-FT65_SPECIALS = list(SPECIALS) # a shallow copy works here
-FT65_SPECIALS[-1] = FT65_PROGS # replace the last entry (P key names)
+SPECIALS_FT65[-1] = FT65_PROGS # replace the last entry (P key names)
+
+# I wonder whether we should simply open the bands to what the radios allow
+# for RX? The radios do take care of allowing or prohibiting TX on
their own.
+# In that case, the ASIA settings can be used for any region model.
+# To be discussed with Dan Clemmensen. [AE6YN]
+
+VALID_BANDS_US_DUAL = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (144000000, 148000000), # VHF, US version, TX and RX
+ (430000000, 450000000) # UHF, US version, TX and RX
+ ]
+VALID_BANDS_EU_DUAL = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (144000000, 146000000), # VHF, EU version, TX and RX
+ (430000000, 440000000) # UHF, EU version, TX and RX
+ ]
+VALID_BANDS_ASIA_DUAL = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (136000000, 174000000), # VHF, Asia version, TX and RX
+ (400000000, 480000000) # UHF, Asia version, TX and RX
+ ]
+
+VALID_BANDS_US_VHF = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (144000000, 148000000), # VHF, US version, TX and RX
+ ]
+VALID_BANDS_EU_VHF = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (144000000, 146000000), # VHF, EU version, TX and RX
+ ]
+VALID_BANDS_ASIA_VHF = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (136000000, 174000000), # VHF, Asia version, TX and RX
+ ]
+
+# bands for the five VFO and three home channel memories
+BAND_ASSIGNMENTS_DUALBAND = [2, 1, 0, 1, 2, 0, 1, 2] # all locations used
+BAND_ASSIGNMENTS_MONO_VHF = [1, 1, 0, 1, 1, 0, 1, 1] # UHF locations
unused
# None, and 50 Tones. Use this explicit array because the
@@ -620,8 +657,8 @@
chirp_common.ExperimentalRadio):
"""
Base class for all Yaesu radios using the SCU-35 programming cable
- and its protocol. Classes for specific radios extend this class and
- are found at the end of this file.
+ and its protocol. Classes for sub families extend this class and
+ are found towards the end of this file.
"""
VENDOR = "Yaesu"
MODEL = "SCU-35Generic" # No radio directly uses the base class
@@ -629,6 +666,12 @@
MAX_MEM_SLOT = 200
NEEDS_COMPAT_SERIAL = False
+ # These settings are common to all radios in this family.
+ _valid_chars = chirp_common.CHARSET_ASCII
+ numblocks = 0x215 # number of 16-byte blocks in the radio
+ _memsize = 16 * numblocks # used by CHIRP file loader to guess
radio type
+ MAX_MEM_SLOT = 200
+
@classmethod
def get_prompts(cls):
rp = chirp_common.RadioPrompts()
@@ -669,7 +712,6 @@
rf.has_dtcs_polarity = False # REV TN reverses the tone,
not the dcs
rf.has_cross = True
rf.has_settings = True
- rf.valid_tuning_steps = self.legal_steps
return rf
@@ -1027,14 +1069,11 @@
mem = chirp_common.Memory()
_mem, ndx, num, regtype, sname = self.slotloc(memref)
mem.number = num
- mem.freq = int(_mem.freq) * 10
- mem.offset = int(_mem.offset) * self.freq_offset_scale
- mem.duplex = DUPLEX[_mem.duplex]
- self.decode_sql(mem, _mem)
- mem.power = POWER_LEVELS[_mem.tx_pwr]
- mem.mode = ["FM", "NFM"][_mem.tx_width]
- mem.tuning_step = STEP_CODE[_mem.step]
+ # First, we need to know whether a channel is enabled,
+ # then we can process any channel parameters.
+ # It was found (at least on an FT-25) that channels might be
+ # uninitialized and memory is just completely filled with 0xFF.
if regtype == "pms":
mem.extd_number = sname
@@ -1043,15 +1082,34 @@
mem.name = clean_name(self._memobj.names[ndx].chrs)
mem.empty = not retrieve_bit(self._memobj.enable, ndx)
mem.skip = SKIPS[retrieve_bit(self._memobj.scan, ndx)]
- txfreq = int(self._memobj.txfreqs[ndx].freq) * 10
- if (txfreq != 0) and (txfreq != mem.freq):
- mem.duplex = "split"
- mem.offset = txfreq
else:
mem.empty = False
mem.extd_number = sname
mem.immutable = ["number", "extd_number", "name", "skip"]
+ # So, now if channel is not empty, we can do the evaluation of
+ # all parameters. Otherwise we set them to defaults.
+
+ if mem.empty:
+ mem.freq = 0
+ mem.offset = 0
+ mem.duplex = "off"
+ mem.power = POWER_LEVELS[0] # "High"
+ mem.mode = "FM"
+ mem.tuning_step = 0
+ else:
+ mem.freq = int(_mem.freq) * 10
+ txfreq = int(self._memobj.txfreqs[ndx].freq) * 10
+ if (txfreq != 0) and (txfreq != mem.freq):
+ mem.duplex = "split"
+ mem.offset = txfreq
+ else:
+ mem.offset = int(_mem.offset) * self.freq_offset_scale
+ mem.duplex = DUPLEX[_mem.duplex]
+ self.decode_sql(mem, _mem)
+ mem.power = POWER_LEVELS[2 - _mem.tx_pwr]
+ mem.mode = ["FM", "NFM"][_mem.tx_width]
+ mem.tuning_step = STEP_CODE[_mem.step]
return mem
def enforce_band(self, memloc, freq, mem_num, sname):
@@ -1105,28 +1163,16 @@
return
-(a)directory.register
-class YaesuFT4Radio(YaesuSC35GenericRadio):
- MODEL = "FT-4XR"
- _basetype = BASETYPE_FT4
- valid_bands = [
- (65000000, 108000000), # broadcast FM, receive only
- (144000000, 148000000), # VHF, US version, TX and RX
- (430000000, 450000000) # UHF, US version, TX and RX
- # VHF, RX (136000000, 174000000)
- # UHF, RX (400000000, 480000000)
- ]
- _valid_chars = chirp_common.CHARSET_ASCII
- numblocks = 0x215 # number of 16-byte blocks in the radio
- _memsize = 16 * numblocks # used by CHIRP file loader to guess
radio type
- MAX_MEM_SLOT = 200
- Pkeys = 2 # number of programmable keys on the FT-4
- namelen = 6 # length of the mem name display on the FT-4 front-panel
- id_str = b'IFT-35R\x00\x00V100\x00\x00'
+class YaesuFT4GenericRadio(YaesuSC35GenericRadio):
+ """
+ FT-4 sub family class. Classes for individual radios extend
+ these classes and are found at the end of this file.
+ """
+ class_specials = SPECIALS_FT4
+ Pkeys = 2 # number of programmable keys
+ namelen = 6 # length of the mem name display on the front-panel
freq_offset_scale = 25000
- legal_steps = US_LEGAL_STEPS
class_group_descs = YaesuSC35GenericRadio.group_descriptions
- class_specials = SPECIALS
# names for the setmode function for the programmable keys. Mode
zero means
# that the key is programmed for a memory not a setmode.
SETMODES = [
@@ -1143,31 +1189,19 @@
]
-(a)directory.register
-class YaesuFT65Radio(YaesuSC35GenericRadio):
- MODEL = "FT-65R"
- _basetype = BASETYPE_FT65
- valid_bands = [
- (65000000, 108000000), # broadcast FM, receive only
- (144000000, 148000000), # VHF, US version, TX and RX
- (430000000, 450000000) # UHF, US version, TX and RX
- # VHF, RX (136000000, 174000000)
- # UHF, RX (400000000, 480000000)
- ]
- _valid_chars = chirp_common.CHARSET_ASCII
- numblocks = 0x215 # number of 16-byte blocks in the radio
- _memsize = 16 * numblocks # used by CHIRP file loader to guess
radio type
- MAX_MEM_SLOT = 200
- Pkeys = 4 # number of programmable keys on the FT-65
- namelen = 8 # length of the mem name display on the FT-65 front panel
- id_str = b'IH-420\x00\x00\x00V100\x00\x00'
+class YaesuFT65GenericRadio(YaesuSC35GenericRadio):
+ """
+ FT-65 sub family class. Classes for individual radios extend
+ these classes and are found at the end of this file.
+ """
+ class_specials = SPECIALS_FT65
+ Pkeys = 4 # number of programmable keys
+ namelen = 8 # length of the mem name display on the front-panel
freq_offset_scale = 50000
- legal_steps = US_LEGAL_STEPS
# we need a deep copy here because we are adding deeper than the
top level.
class_group_descs =
copy.deepcopy(YaesuSC35GenericRadio.group_descriptions)
add_paramdesc(
class_group_descs, "misc", ("compander", "Compander", ["OFF",
"ON"]))
- class_specials = FT65_SPECIALS
# names for the setmode function for the programmable keys. Mode
zero means
# that the key is programmed for a memory not a setmode.
SETMODES = [
@@ -1180,3 +1214,31 @@
"step", "tot", "tx pwr", "tx save", "vfo.spl", # 30-34
"vox", "wfm.rcv", "wide/nar", "wx alert", "scramble" # 35-39
]
+
+
+# Classes for each individual radio.
+
+
+(a)directory.register
+class YaesuFT4XRRadio(YaesuFT4GenericRadio):
+ """
+ FT-4X dual band, US version
+ """
+ MODEL = "FT-4XR"
+ id_str = b'IFT-35R\x00\x00V100\x00\x00'
+ valid_bands = VALID_BANDS_US_DUAL
+ legal_steps = US_LEGAL_STEPS
+ BAND_ASSIGNMENTS = BAND_ASSIGNMENTS_DUALBAND
+
+
+(a)directory.register
+class YaesuFT65RRadio(YaesuFT65GenericRadio):
+ """
+ FT-65 dual band, US version
+ """
+ MODEL = "FT-65R"
+ id_str = b'IH-420\x00\x00\x00V100\x00\x00'
+ valid_bands = VALID_BANDS_US_DUAL
+ legal_steps = US_LEGAL_STEPS
+ BAND_ASSIGNMENTS = BAND_ASSIGNMENTS_DUALBAND
+
2
2
Tested changes:
Changes for Build #856
[Jaroslav Škarvada <jskarvad(a)redhat.com>] Show 8.33 tuning step in the UI, fixes #7073
[Tom Hayward <tom(a)tomh.us>] [id880] Fix typo in charset definition. #281
[Tom Hayward <tom(a)tomh.us>] [thf6a] Support full charset (ASCII). Fixes #141
[Tom Hayward <tom(a)tomh.us>] [id880] Support full charset. Fixes #281
[Tom Hayward <tom(a)tomh.us>] [vx5] Support full charset (ASCII). Fixes #292
[Tom Hayward <tom(a)tomh.us>] [id31a] set used bit when creating new memory, clear when deleting. Fixes #269
[Tom Hayward <tom(a)tomh.us>] Support PyGTK < 2.22 in bank edit. Fixes #231
[Tom Hayward <tom(a)tomh.us>] [d710] [v71] [d72] Fix tone list (not all tones are supported). Fixes #212
[Dan Smith <dsmith(a)danplanet.com>] [vx7] Fix setting memory power levels on 220MHz band
Fixes #214
[Dan Smith <dsmith(a)danplanet.com>] fips: Pennsylvania FIPS code was wrong. #117
[Marco Filippi <iz3gme.marco(a)gmail.com>] Consider lower bound frequency of each valid_band as valid
Fix bug #181
[Tom Hayward <tom(a)tomh.us>] tmd700: allow 8-char names. Fixes #176
[Dan Smith <dsmith(a)danplanet.com>] Fix the "blind deletion" problem, as well as properly direct copy/paste
Fixes #172
[David Griffith <dave(a)661.org>] Bug #155 fix: VX-7 1.25m power levels
[David Griffith <dave(a)661.org>] New INSTALL and README files
Fixes #122
[Tom Hayward <tom(a)tomh.us>] thd72: only use hardware flow on OS X. Fixes #166
[Marco Filippi <iz3gme.marco(a)gmail.com>] [FT817] Tone freq not set correctly
Same as #88 for FT857, to avoid code duplication fix code have been moved from
ft857 to its ancestor class
Fix bug #163
[Tom Hayward <tom(a)tomh.us>] Fix Mac .app so paths with spaces work. Fixes Bug #145
Full log:
[...truncated 564 lines...]
test_copy_all (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 copy all ... ok
test_detect (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 detect ... ok
test_edges (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 edges ... ok
test_settings (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus brute force ... ok
test_clone (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus clone ... ok
test_copy_all (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus copy all ... ok
test_detect (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus detect ... ok
test_edges (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus edges ... ok
test_settings (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus settings ... ok
test_banks (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A brute force ... ok
test_clone (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A clone ... ok
test_copy_all (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A copy all ... ok
test_detect (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A detect ... ok
test_edges (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A edges ... ok
test_settings (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A settings ... ok
test_banks (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B brute force ... ok
test_clone (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B clone ... ok
test_copy_all (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B copy all ... ok
test_detect (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B detect ... ok
test_edges (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B edges ... ok
test_settings (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B settings ... ok
test_banks (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B brute force ... ok
test_clone (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B clone ... ok
test_copy_all (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B copy all ... ok
test_detect (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B detect ... ok
test_edges (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B edges ... ok
test_settings (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B settings ... ok
test_banks (tests.TestCase_IcomIC208H)
Testing Icom IC-208H banks ... ok
test_brute_force (tests.TestCase_IcomIC208H)
Testing Icom IC-208H brute force ... ok
test_clone (tests.TestCase_IcomIC208H)
Testing Icom IC-208H clone ... ok
test_copy_all (tests.TestCase_IcomIC208H)
Testing Icom IC-208H copy all ... ok
test_detect (tests.TestCase_IcomIC208H)
Testing Icom IC-208H detect ... ok
test_edges (tests.TestCase_IcomIC208H)
Testing Icom IC-208H edges ... ok
test_settings (tests.TestCase_IcomIC208H)
Testing Icom IC-208H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H brute force ... ok
test_clone (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H clone ... ok
test_copy_all (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H copy all ... ok
test_detect (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H detect ... ok
test_edges (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H edges ... ok
test_settings (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H banks ... ok
test_brute_force (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H brute force ... ok
test_clone (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H clone ... ok
test_copy_all (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H copy all ... ok
test_detect (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H detect ... ok
test_edges (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H edges ... ok
test_settings (tests.TestCase_IcomIC2200H)
Testing Icom IC-2200H settings ... ok
test_banks (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H banks ... ok
test_brute_force (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H brute force ... ok
test_clone (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H clone ... ok
test_copy_all (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H copy all ... ok
test_detect (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H detect ... ok
test_edges (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H edges ... ok
test_settings (tests.TestCase_IcomIC2300H)
Testing Icom IC-2300H settings ... ok
test_banks (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H banks ... ok
test_brute_force (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H brute force ... ok
test_clone (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H clone ... ok
test_copy_all (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H copy all ... ok
test_detect (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H detect ... ok
test_edges (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H edges ... ok
test_settings (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A banks ... ok
test_brute_force (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A brute force ... ok
test_clone (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A clone ... ok
test_copy_all (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A copy all ... ok
test_detect (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A detect ... ok
test_edges (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A edges ... ok
test_settings (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A settings ... ok
test_banks (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H banks ... ok
test_brute_force (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H brute force ... ok
test_clone (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H clone ... ok
test_copy_all (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H copy all ... ok
test_detect (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H detect ... ok
test_edges (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H edges ... ok
test_settings (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H settings ... ok
test_banks (tests.TestCase_IcomICP7)
Testing Icom IC-P7 banks ... ok
test_brute_force (tests.TestCase_IcomICP7)
Testing Icom IC-P7 brute force ... ok
test_clone (tests.TestCase_IcomICP7)
Testing Icom IC-P7 clone ... ok
test_copy_all (tests.TestCase_IcomICP7)
Testing Icom IC-P7 copy all ... ok
test_detect (tests.TestCase_IcomICP7)
Testing Icom IC-P7 detect ... ok
test_edges (tests.TestCase_IcomICP7)
Testing Icom IC-P7 edges ... ok
test_settings (tests.TestCase_IcomICP7)
Testing Icom IC-P7 settings ... ok
test_banks (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A brute force ... ok
test_clone (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A clone ... ok
test_copy_all (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A copy all ... ok
test_detect (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A detect ... ok
test_edges (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A edges ... ok
test_settings (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A settings ... ok
test_banks (tests.TestCase_IcomICT70)
Testing Icom IC-T70 banks ... ok
test_brute_force (tests.TestCase_IcomICT70)
Testing Icom IC-T70 brute force ... ok
test_clone (tests.TestCase_IcomICT70)
Testing Icom IC-T70 clone ... ok
test_copy_all (tests.TestCase_IcomICT70)
Testing Icom IC-T70 copy all ... ok
test_detect (tests.TestCase_IcomICT70)
Testing Icom IC-T70 detect ... ok
test_edges (tests.TestCase_IcomICT70)
Testing Icom IC-T70 edges ... ok
test_settings (tests.TestCase_IcomICT70)
Testing Icom IC-T70 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H brute force ... ok
test_clone (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H clone ... ok
test_copy_all (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H copy all ... ok
test_detect (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H detect ... ok
test_edges (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H edges ... ok
test_settings (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A brute force ... ok
test_clone (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A clone ... ok
test_copy_all (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A copy all ... ok
test_detect (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A detect ... ok
test_edges (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A edges ... ok
test_settings (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 banks ... ok
test_brute_force (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 brute force ... ok
test_clone (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 clone ... ok
test_copy_all (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 copy all ... ok
test_detect (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 detect ... ok
test_edges (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 edges ... ok
test_settings (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A brute force ... ok
test_clone (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A clone ... ok
test_copy_all (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A copy all ... ok
test_detect (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A detect ... ok
test_edges (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A edges ... ok
test_settings (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E brute force ... ok
test_clone (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E clone ... ok
test_copy_all (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E copy all ... ok
test_detect (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E detect ... ok
test_edges (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E edges ... ok
test_settings (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomID31A)
Testing Icom ID-31A banks ... ok
test_brute_force (tests.TestCase_IcomID31A)
Testing Icom ID-31A brute force ... ok
test_clone (tests.TestCase_IcomID31A)
Testing Icom ID-31A clone ... ok
test_copy_all (tests.TestCase_IcomID31A)
Testing Icom ID-31A copy all ... ok
test_detect (tests.TestCase_IcomID31A)
Testing Icom ID-31A detect ... ok
test_edges (tests.TestCase_IcomID31A)
Testing Icom ID-31A edges ... ok
test_settings (tests.TestCase_IcomID31A)
Testing Icom ID-31A settings ... ok
test_banks (tests.TestCase_IcomID51)
Testing Icom ID-51 banks ... ok
test_brute_force (tests.TestCase_IcomID51)
Testing Icom ID-51 brute force ... ok
test_clone (tests.TestCase_IcomID51)
Testing Icom ID-51 clone ... ok
test_copy_all (tests.TestCase_IcomID51)
Testing Icom ID-51 copy all ... ok
test_detect (tests.TestCase_IcomID51)
Testing Icom ID-51 detect ... ok
test_edges (tests.TestCase_IcomID51)
Testing Icom ID-51 edges ... ok
test_settings (tests.TestCase_IcomID51)
Testing Icom ID-51 settings ... ok
test_banks (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus banks ... ok
test_brute_force (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus brute force ... ok
test_clone (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus clone ... ok
test_copy_all (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus copy all ... ok
test_detect (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus detect ... ok
test_edges (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus edges ... ok
test_settings (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus settings ... ok
test_banks (tests.TestCase_IcomID800H)
Testing Icom ID-800H banks ... ok
test_brute_force (tests.TestCase_IcomID800H)
Testing Icom ID-800H brute force ... ok
test_clone (tests.TestCase_IcomID800H)
Testing Icom ID-800H clone ... ok
test_copy_all (tests.TestCase_IcomID800H)
Testing Icom ID-800H copy all ... ok
test_detect (tests.TestCase_IcomID800H)
Testing Icom ID-800H detect ... ok
test_edges (tests.TestCase_IcomID800H)
Testing Icom ID-800H edges ... ok
test_settings (tests.TestCase_IcomID800H)
Testing Icom ID-800H settings ... ok
test_banks (tests.TestCase_IcomID880H)
Testing Icom ID-880H banks ... ok
test_brute_force (tests.TestCase_IcomID880H)
Testing Icom ID-880H brute force ... ok
test_clone (tests.TestCase_IcomID880H)
Testing Icom ID-880H clone ... ok
test_copy_all (tests.TestCase_IcomID880H)
Testing Icom ID-880H copy all ... ok
test_detect (tests.TestCase_IcomID880H)
Testing Icom ID-880H detect ... ok
test_edges (tests.TestCase_IcomID880H)
Testing Icom ID-880H edges ... ok
test_settings (tests.TestCase_IcomID880H)
Testing Icom ID-880H settings ... ok
test_banks (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M brute force ... ok
test_clone (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M clone ... ok
test_copy_all (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M copy all ... ok
test_detect (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M detect ... ok
test_edges (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M edges ... ok
test_settings (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M brute force ... ok
test_clone (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M clone ... ok
test_copy_all (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M copy all ... ok
test_detect (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M detect ... ok
test_edges (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M edges ... ok
test_settings (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M settings ... ok
test_banks (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH brute force ... ok
test_clone (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH clone ... ok
test_copy_all (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH copy all ... ok
test_detect (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH detect ... ok
test_edges (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH edges ... ok
test_settings (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH settings ... ok
test_banks (tests.TestCase_KYDIP620)
Testing KYD IP-620 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KYDIP620)
Testing KYD IP-620 brute force ... ok
test_clone (tests.TestCase_KYDIP620)
Testing KYD IP-620 clone ... ok
test_copy_all (tests.TestCase_KYDIP620)
Testing KYD IP-620 copy all ... ok
test_detect (tests.TestCase_KYDIP620)
Testing KYD IP-620 detect ... ok
test_edges (tests.TestCase_KYDIP620)
Testing KYD IP-620 edges ... ok
test_settings (tests.TestCase_KYDIP620)
Testing KYD IP-620 settings ... ok
test_banks (tests.TestCase_KYDNC630A)
Testing KYD NC-630A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KYDNC630A)
Testing KYD NC-630A brute force ... ok
test_clone (tests.TestCase_KYDNC630A)
Testing KYD NC-630A clone ... ok
test_copy_all (tests.TestCase_KYDNC630A)
Testing KYD NC-630A copy all ... ok
test_detect (tests.TestCase_KYDNC630A)
Testing KYD NC-630A detect ... ok
test_edges (tests.TestCase_KYDNC630A)
Testing KYD NC-630A edges ... ok
test_settings (tests.TestCase_KYDNC630A)
Testing KYD NC-630A settings ... ok
test_banks (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) brute force ... ok
test_clone (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) clone ... ok
test_copy_all (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) copy all ... ok
test_detect (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) detect ... ok
test_edges (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) edges ... ok
test_settings (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) settings ... ok
test_banks (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G banks ... ok
test_brute_force (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G brute force ... ok
test_clone (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G clone ... ok
test_copy_all (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G copy all ... ok
test_detect (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G detect ... ok
test_edges (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G edges ... ok
test_settings (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G settings ... ok
test_banks (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G banks ... ok
test_brute_force (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G brute force ... ok
test_clone (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G clone ... ok
test_copy_all (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G copy all ... ok
test_detect (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G detect ... ok
test_edges (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G edges ... ok
test_settings (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G settings ... ok
test_banks (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 brute force ... ok
test_clone (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 clone ... ok
test_copy_all (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 copy all ... ok
test_detect (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 detect ... ok
test_edges (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 edges ... ok
test_settings (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 settings ... ok
test_banks (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 brute force ... ok
test_clone (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 clone ... ok
test_copy_all (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 copy all ... ok
test_detect (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 detect ... ok
test_edges (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 edges ... ok
test_settings (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 settings ... ok
test_banks (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode brute force ... ok
test_clone (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode clone ... ok
test_copy_all (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode copy all ... ok
test_detect (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode detect ... ok
test_edges (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode edges ... ok
test_settings (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode settings ... ok
test_banks (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode brute force ... ok
test_clone (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode clone ... ok
test_copy_all (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode copy all ... ok
test_detect (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode detect ... ok
test_edges (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode edges ... ok
test_settings (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode settings ... ok
test_banks (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV brute force ... ok
test_clone (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV clone ... ok
test_copy_all (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV copy all ... ok
test_detect (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV detect ... ok
test_edges (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV edges ... ok
test_settings (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV settings ... ok
test_banks (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 brute force ... ok
test_clone (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 clone ... ok
test_copy_all (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 copy all ... ok
test_detect (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 detect ... ok
test_edges (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 edges ... ok
test_settings (tests.TestCase_LeixenVV898)
Testing Leixen VV-898 settings ... ok
test_banks (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S brute force ... ok
test_clone (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S clone ... ok
test_copy_all (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S copy all ... ok
test_detect (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S detect ... ok
test_edges (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S edges ... ok
test_settings (tests.TestCase_LeixenVV898S)
Testing Leixen VV-898S settings ... ok
test_banks (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M brute force ... ok
test_clone (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M clone ... ok
test_copy_all (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M copy all ... ok
test_detect (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M detect ... ok
test_edges (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M edges ... ok
test_settings (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M settings ... ok
test_banks (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R brute force ... ok
test_clone (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R clone ... ok
test_copy_all (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R copy all ... ok
test_detect (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R detect ... ok
test_edges (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R edges ... ok
test_settings (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 brute force ... ok
test_clone (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 clone ... ok
test_copy_all (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 copy all ... ok
test_detect (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 detect ... ok
test_edges (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 edges ... ok
test_settings (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K brute force ... ok
test_clone (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K clone ... ok
test_copy_all (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K copy all ... ok
test_detect (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K detect ... ok
test_edges (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K edges ... ok
test_settings (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K settings ... ok
test_banks (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D brute force ... ok
test_clone (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D clone ... ok
test_copy_all (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D copy all ... ok
test_detect (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D detect ... ok
test_edges (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D edges ... ok
test_settings (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D settings ... ok
test_banks (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D brute force ... ok
test_clone (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D clone ... ok
test_copy_all (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D copy all ... ok
test_detect (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D detect ... ok
test_edges (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D edges ... ok
test_settings (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D settings ... ok
test_banks (tests.TestCase_RadioddityR2)
Testing Radioddity R2 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RadioddityR2)
Testing Radioddity R2 brute force ... ok
test_clone (tests.TestCase_RadioddityR2)
Testing Radioddity R2 clone ... ok
test_copy_all (tests.TestCase_RadioddityR2)
Testing Radioddity R2 copy all ... ok
test_detect (tests.TestCase_RadioddityR2)
Testing Radioddity R2 detect ... ok
test_edges (tests.TestCase_RadioddityR2)
Testing Radioddity R2 edges ... ok
test_settings (tests.TestCase_RadioddityR2)
Testing Radioddity R2 settings ... ok
test_banks (tests.TestCase_RadtelT18)
Testing Radtel T18 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RadtelT18)
Testing Radtel T18 brute force ... ok
test_clone (tests.TestCase_RadtelT18)
Testing Radtel T18 clone ... ok
test_copy_all (tests.TestCase_RadtelT18)
Testing Radtel T18 copy all ... ok
test_detect (tests.TestCase_RadtelT18)
Testing Radtel T18 detect ... ok
test_edges (tests.TestCase_RadtelT18)
Testing Radtel T18 edges ... ok
test_settings (tests.TestCase_RadtelT18)
Testing Radtel T18 settings ... ok
test_banks (tests.TestCase_RetevisRT21)
Testing Retevis RT21 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT21)
Testing Retevis RT21 brute force ... ok
test_clone (tests.TestCase_RetevisRT21)
Testing Retevis RT21 clone ... ok
test_copy_all (tests.TestCase_RetevisRT21)
Testing Retevis RT21 copy all ... ok
test_detect (tests.TestCase_RetevisRT21)
Testing Retevis RT21 detect ... ok
test_edges (tests.TestCase_RetevisRT21)
Testing Retevis RT21 edges ... ok
test_settings (tests.TestCase_RetevisRT21)
Testing Retevis RT21 settings ... ok
test_banks (tests.TestCase_RetevisRT22)
Testing Retevis RT22 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT22)
Testing Retevis RT22 brute force ... ok
test_clone (tests.TestCase_RetevisRT22)
Testing Retevis RT22 clone ... ok
test_copy_all (tests.TestCase_RetevisRT22)
Testing Retevis RT22 copy all ... ok
test_detect (tests.TestCase_RetevisRT22)
Testing Retevis RT22 detect ... ok
test_edges (tests.TestCase_RetevisRT22)
Testing Retevis RT22 edges ... ok
test_settings (tests.TestCase_RetevisRT22)
Testing Retevis RT22 settings ... ok
test_banks (tests.TestCase_RetevisRT23)
Testing Retevis RT23 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT23)
Testing Retevis RT23 brute force ... ok
test_clone (tests.TestCase_RetevisRT23)
Testing Retevis RT23 clone ... ok
test_copy_all (tests.TestCase_RetevisRT23)
Testing Retevis RT23 copy all ... ok
test_detect (tests.TestCase_RetevisRT23)
Testing Retevis RT23 detect ... ok
test_edges (tests.TestCase_RetevisRT23)
Testing Retevis RT23 edges ... ok
test_settings (tests.TestCase_RetevisRT23)
Testing Retevis RT23 settings ... ok
test_banks (tests.TestCase_RetevisRT26)
Testing Retevis RT26 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT26)
Testing Retevis RT26 brute force ... ok
test_clone (tests.TestCase_RetevisRT26)
Testing Retevis RT26 clone ... ok
test_copy_all (tests.TestCase_RetevisRT26)
Testing Retevis RT26 copy all ... ok
test_detect (tests.TestCase_RetevisRT26)
Testing Retevis RT26 detect ... ok
test_edges (tests.TestCase_RetevisRT26)
Testing Retevis RT26 edges ... ok
test_settings (tests.TestCase_RetevisRT26)
Testing Retevis RT26 settings ... ok
test_banks (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A brute force ... ok
test_clone (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A clone ... ok
test_copy_all (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A copy all ... ok
test_detect (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A detect ... ok
test_edges (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A edges ... ok
test_settings (tests.TestCase_TDXoneTDQ8A)
Testing TDXone TD-Q8A settings ... ok
test_banks (tests.TestCase_TYTTH350)
Testing TYT TH-350 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTH350)
Testing TYT TH-350 brute force ... ok
test_clone (tests.TestCase_TYTTH350)
Testing TYT TH-350 clone ... ok
test_copy_all (tests.TestCase_TYTTH350)
Testing TYT TH-350 copy all ... ok
test_detect (tests.TestCase_TYTTH350)
Testing TYT TH-350 detect ... ok
test_edges (tests.TestCase_TYTTH350)
Testing TYT TH-350 edges ... ok
test_settings (tests.TestCase_TYTTH350)
Testing TYT TH-350 settings ... ok
test_banks (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 brute force ... ok
test_clone (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 clone ... ok
test_copy_all (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 copy all ... ok
test_detect (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 detect ... ok
test_edges (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 edges ... ok
test_settings (tests.TestCase_TYTTH7800)
Testing TYT TH-7800 settings ... ok
test_banks (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 brute force ... ok
test_clone (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 clone ... ok
test_copy_all (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 copy all ... ok
test_detect (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 detect ... ok
test_edges (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 edges ... ok
test_settings (tests.TestCase_TYTTH9800)
Testing TYT TH-9800 settings ... ok
test_banks (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 brute force ... ok
test_clone (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 clone ... ok
test_copy_all (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 copy all ... ok
test_detect (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 detect ... ok
test_edges (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 edges ... ok
test_settings (tests.TestCase_TYTTHUV3R25)
Testing TYT TH-UV3R-25 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R brute force ... ok
test_clone (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R clone ... ok
test_copy_all (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R copy all ... ok
test_detect (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R detect ... ok
test_edges (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R edges ... ok
test_settings (tests.TestCase_TYTTHUV3R)
Testing TYT TH-UV3R settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 brute force ... ok
test_clone (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 clone ... ok
test_copy_all (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 copy all ... ok
test_detect (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 detect ... ok
test_edges (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 edges ... ok
test_settings (tests.TestCase_TYTTHUV8000)
Testing TYT TH-UV8000 settings ... ok
test_banks (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 brute force ... ok
test_clone (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 clone ... ok
test_copy_all (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 copy all ... ok
test_detect (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 detect ... ok
test_edges (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 edges ... ok
test_settings (tests.TestCase_TYTTHUVF1)
Testing TYT TH-UVF1 settings ... ok
test_banks (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 brute force ... ok
test_clone (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 clone ... ok
test_copy_all (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 copy all ... ok
test_detect (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 detect ... ok
test_edges (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 edges ... ok
test_settings (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 settings ... ok
test_banks (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 brute force ... ok
test_clone (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 clone ... ok
test_copy_all (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 copy all ... ok
test_detect (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 detect ... ok
test_edges (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 edges ... ok
test_settings (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 brute force ... ok
test_clone (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 clone ... ok
test_copy_all (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 copy all ... ok
test_detect (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 detect ... ok
test_edges (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 edges ... ok
test_settings (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 settings ... ok
test_banks (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 brute force ... ok
test_clone (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 clone ... ok
test_copy_all (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 copy all ... ok
test_detect (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 detect ... ok
test_edges (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 edges ... ok
test_settings (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 settings ... ok
test_banks (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 brute force ... ok
test_clone (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 clone ... ok
test_copy_all (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 copy all ... ok
test_detect (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 detect ... ok
test_edges (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 edges ... ok
test_settings (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 settings ... ok
test_banks (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 brute force ... ok
test_clone (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 copy all ... ok
test_detect (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 detect ... ok
test_edges (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 edges ... ok
test_settings (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 settings ... ok
test_banks (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D brute force ... ok
test_clone (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D copy all ... ok
test_detect (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D detect ... ok
test_edges (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D edges ... ok
test_settings (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D settings ... ok
test_banks (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus brute force ... ok
test_clone (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus copy all ... ok
test_detect (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus detect ... ok
test_edges (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus edges ... ok
test_settings (tests.TestCase_WouxunKGUV8DPlus)
Testing Wouxun KG-UV8D Plus settings ... ok
test_banks (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E brute force ... ok
test_clone (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E copy all ... ok
test_detect (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E detect ... ok
test_edges (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E edges ... ok
test_settings (tests.TestCase_WouxunKGUV8E)
Testing Wouxun KG-UV8E settings ... ok
test_banks (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus brute force ... ok
test_clone (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus copy all ... ok
test_detect (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus detect ... ok
test_edges (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus edges ... ok
test_settings (tests.TestCase_WouxunKGUV9DPlus)
Testing Wouxun KG-UV9D Plus settings ... ok
test_banks (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P brute force ... ok
test_clone (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P clone ... ok
test_copy_all (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P copy all ... ok
test_detect (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P detect ... ok
test_edges (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P edges ... ok
test_settings (tests.TestCase_WouxunKGUVD1P)
Testing Wouxun KG-UVD1P settings ... ok
test_banks (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M brute force ... ok
test_clone (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M clone ... ok
test_copy_all (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M copy all ... ok
test_detect (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M detect ... ok
test_edges (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M edges ... ok
test_settings (tests.TestCase_YaesuFT1500M)
Testing Yaesu FT-1500M settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M brute force ... ok
test_clone (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M clone ... ok
test_copy_all (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M copy all ... ok
test_detect (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M detect ... ok
test_edges (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M edges ... ok
test_settings (tests.TestCase_YaesuFT1802M)
Testing Yaesu FT-1802M settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D banks ... ok
test_brute_force (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D brute force ... ok
test_clone (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D clone ... ok
test_copy_all (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D copy all ... ok
test_detect (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D detect ... ok
test_edges (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D edges ... ok
test_settings (tests.TestCase_YaesuFT1D)
Testing Yaesu FT-1D settings ... ok
test_banks (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M brute force ... ok
test_clone (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M clone ... ok
test_copy_all (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M copy all ... ok
test_detect (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M detect ... ok
test_edges (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M edges ... ok
test_settings (tests.TestCase_YaesuFT2800M)
Testing Yaesu FT-2800M settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R banks ... ok
test_brute_force (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R brute force ... ok
test_clone (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R clone ... ok
test_copy_all (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R copy all ... ok
test_detect (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R detect ... ok
test_edges (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R edges ... ok
test_settings (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R settings ... ok
test_banks (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D brute force ... ok
test_clone (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D clone ... ok
test_copy_all (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D copy all ... ok
test_detect (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D detect ... ok
test_edges (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D edges ... ok
test_settings (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D settings ... ok
test_banks (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR banks ... ok
test_brute_force (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR brute force ... ok
test_clone (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR clone ... ok
test_copy_all (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR copy all ... ok
test_detect (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR detect ... ok
test_edges (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR edges ... ok
test_settings (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR settings ... ok
test_banks (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 brute force ... ok
test_clone (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 clone ... ok
test_copy_all (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 copy all ... ok
test_detect (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 detect ... ok
test_edges (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 edges ... ok
test_settings (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 settings ... ok
test_banks (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 banks ... ok
test_brute_force (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 brute force ... ok
test_clone (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 clone ... ok
test_copy_all (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 copy all ... ok
test_detect (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 detect ... ok
test_edges (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 edges ... ok
test_settings (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 settings ... ok
test_banks (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R banks ... ok
test_brute_force (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R brute force ... ok
test_clone (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R clone ... ok
test_copy_all (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R copy all ... ok
test_detect (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R detect ... ok
test_edges (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R edges ... ok
test_settings (tests.TestCase_YaesuFT65R)
Testing Yaesu FT-65R settings ... ok
test_banks (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D banks ... ok
test_brute_force (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D brute force ... ok
test_clone (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D clone ... ok
test_copy_all (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D copy all ... ok
test_detect (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D detect ... ok
test_edges (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D edges ... ok
test_settings (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D settings ... ok
test_banks (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M brute force ... ok
test_clone (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M clone ... ok
test_copy_all (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M copy all ... ok
test_detect (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M detect ... ok
test_edges (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M edges ... ok
test_settings (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M settings ... ok
test_banks (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 banks ... ok
test_brute_force (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 brute force ... ok
test_clone (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 clone ... ok
test_copy_all (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 copy all ... ok
test_detect (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 detect ... ok
test_edges (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 edges ... ok
test_settings (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 settings ... ok
test_banks (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 brute force ... ok
test_clone (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 clone ... ok
test_copy_all (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 copy all ... ok
test_detect (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 detect ... ok
test_edges (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 edges ... ok
test_settings (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 settings ... ok
test_banks (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND brute force ... ok
test_clone (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND clone ... ok
test_copy_all (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND copy all ... ok
test_detect (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND detect ... ok
test_edges (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND edges ... ok
test_settings (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND settings ... ok
test_banks (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) brute force ... ok
test_clone (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) clone ... ok
test_copy_all (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) copy all ... ok
test_detect (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) detect ... ok
test_edges (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) edges ... ok
test_settings (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) settings ... ok
test_banks (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 brute force ... ok
test_clone (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 clone ... ok
test_copy_all (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 copy all ... ok
test_detect (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 detect ... ok
test_edges (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 edges ... ok
test_settings (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 settings ... ok
test_banks (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 brute force ... ok
test_clone (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 clone ... ok
test_copy_all (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 copy all ... ok
test_detect (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 detect ... ok
test_edges (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 edges ... ok
test_settings (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 settings ... ok
test_banks (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) brute force ... ok
test_clone (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) clone ... ok
test_copy_all (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) copy all ... ok
test_detect (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) detect ... ok
test_edges (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) edges ... ok
test_settings (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) settings ... ok
test_banks (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 banks ... ok
test_brute_force (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 brute force ... ok
test_clone (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 clone ... ok
test_copy_all (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 copy all ... ok
test_detect (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 detect ... ok
test_edges (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 edges ... ok
test_settings (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 brute force ... ok
test_clone (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 clone ... ok
test_copy_all (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 copy all ... ok
test_detect (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 detect ... ok
test_edges (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 edges ... ok
test_settings (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D banks ... ok
test_brute_force (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D brute force ... ok
test_clone (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D clone ... ok
test_copy_all (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D copy all ... ok
test_detect (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D detect ... ok
test_edges (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D edges ... ok
test_settings (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D settings ... ok
test_banks (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D banks ... ok
test_brute_force (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D brute force ... ok
test_clone (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D clone ... ok
test_copy_all (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D copy all ... ok
test_detect (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D detect ... ok
test_edges (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D edges ... ok
test_settings (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D settings ... ok
test_banks (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D brute force ... ok
test_clone (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D clone ... ok
test_copy_all (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D copy all ... ok
test_detect (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D detect ... ok
test_edges (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D edges ... ok
test_settings (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 brute force ... ok
test_clone (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 clone ... ok
test_copy_all (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 copy all ... ok
test_detect (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 detect ... ok
test_edges (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 edges ... ok
test_settings (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 banks ... ok
test_brute_force (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 brute force ... ok
test_clone (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 clone ... ok
test_copy_all (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 copy all ... ok
test_detect (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 detect ... ok
test_edges (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 edges ... ok
test_settings (tests.TestCase_YaesuVX2)
Testing Yaesu VX-2 settings ... ok
test_banks (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 banks ... ok
test_brute_force (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 brute force ... ok
test_clone (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 clone ... ok
test_copy_all (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 copy all ... ok
test_detect (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 detect ... ok
test_edges (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 edges ... ok
test_settings (tests.TestCase_YaesuVX3)
Testing Yaesu VX-3 settings ... ok
test_banks (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 banks ... ok
test_brute_force (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 brute force ... ok
test_clone (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 clone ... ok
test_copy_all (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 copy all ... ok
test_detect (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 detect ... ok
test_edges (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 edges ... ok
test_settings (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 banks ... ok
test_brute_force (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 brute force ... ok
test_clone (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 clone ... ok
test_copy_all (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 copy all ... ok
test_detect (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 detect ... ok
test_edges (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 edges ... ok
test_settings (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 settings ... ok
test_banks (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 banks ... ok
test_brute_force (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 brute force ... ok
test_clone (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 clone ... ok
test_copy_all (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 copy all ... ok
test_detect (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 detect ... ok
test_edges (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 edges ... ok
test_settings (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR banks ... ok
test_brute_force (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR brute force ... ok
test_clone (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR clone ... ok
test_copy_all (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR copy all ... ok
test_detect (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR detect ... ok
test_edges (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR edges ... ok
test_settings (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR settings ... ok
test_banks (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE banks ... ok
test_brute_force (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE brute force ... ok
test_clone (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE clone ... ok
test_copy_all (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE copy all ... ok
test_detect (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE detect ... ok
test_edges (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE edges ... ok
test_settings (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE settings ... ok
test_banks (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R banks ... ok
test_brute_force (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R brute force ... ok
test_clone (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R clone ... ok
test_copy_all (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R copy all ... ok
test_detect (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R detect ... ok
test_edges (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R edges ... ok
test_settings (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R settings ... ok
----------------------------------------------------------------------
Ran 896 tests in 300.382s
OK (skipped=124)
#seekto 0x0100;
struct {
char sw_name[7];
char sw_ver[5];
u8 unknown1[4];
char sw_key[12];
u8 unknown2[4];
char model[5];
u8 unknown3[11];
} header;
#seekto 0x0140;
struct {
// 0x0140
u8 unknown1;
u8 sublcd;
u8 unknown2[30];
// 0x0160
char pon_msgtext[12];
u8 min_volume;
u8 max_volume;
u8 lo_volume;
u8 hi_volume;
// 0x0170
u8 tone_volume_offset;
u8 poweron_tone;
u8 control_tone;
u8 warning_tone;
u8 alert_tone;
u8 sidetone;
u8 locator_tone;
u8 unknown3[2];
u8 ignition_mode;
u8 ignition_time; // In tens of minutes (6 = 1h)
u8 micsense;
ul16 modereset;
u8 min_vol_preset;
u8 unknown4;
// 0x0180
u8 unknown5[16];
// 0x0190
u8 unknown6[3];
u8 pon_msgtype;
u8 unknown7[8];
u8 unknown8_1:2,
ssi:1,
busy_led:1,
power_switch_memory:1,
scrambler_memory:1,
unknown8_2:1,
off_hook_decode:1;
u8 unknown9_1:5,
clockfmt:1,
datefmt:1,
ignition_sense:1;
u8 unknownA[2];
// 0x01A0
u8 unknownB[8];
u8 ptt_timer;
u8 unknownB2[3];
u8 ptt_proceed:1,
unknownC_1:3,
tone_off:1,
ost_memory:1,
unknownC_2:1,
ptt_release:1;
u8 unknownD[3];
} settings;
#seekto 0x01E0;
struct {
char name[12];
ul16 rxtone;
ul16 txtone;
} ost_tones[40];
#seekto 0x0A00;
ul16 zone_starts[128];
struct zoneinfo {
u8 number;
u8 zonetype;
u8 unknown1[2];
u8 count;
char name[12];
u8 unknown2[2];
ul16 timeout; // 15-1200
ul16 tot_alert; // 10
ul16 tot_rekey; // 60
ul16 tot_reset; // 15
u8 unknown3[3];
u8 unknown21:2,
bcl_override:1,
unknown22:5;
u8 unknown5;
};
struct memory {
u8 number;
lbcd rx_freq[4];
lbcd tx_freq[4];
u8 unknown1[2];
ul16 rx_tone;
ul16 tx_tone;
char name[12];
u8 unknown2[19];
u8 unknown3_1:4,
highpower:1,
unknown3_2:1,
wide:1,
unknown3_3:1;
u8 unknown4;
};
#seekto 0xC570; // Fixme
u8 skipflags[64];
#seekto 0xb00;
struct {
struct zoneinfo zoneinfo;
struct memory memories[2];
} zone0;
style create: /chirp/.tox/style
style installdeps: pep8==1.6.2, future
style inst: /chirp/.tox/.tmp/package/1/chirp-0.3.0dev.zip
style installed: DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.,chirp==0.3.0.dev0,configparser==3.7.4,contextlib2==0.5.5,filelock==3.0.12,future==0.15.2,importlib-metadata==0.18,Mako==1.0.3,MarkupSafe==0.23,mercurial==3.7.3,packaging==19.0,pathlib2==2.3.4,pep8==1.6.2,pluggy==0.12.0,py==1.8.0,pygobject==3.20.0,pyparsing==2.4.0,pyserial==3.0.1,scandir==1.10.0,six==1.12.0,toml==0.10.0,tox==3.13.2,virtualenv==16.6.1,zipp==0.5.2
style run-test-pre: PYTHONHASHSEED='1438308669'
style run-test: commands[0] | python ./tools/cpep8.py
___________________________________ summary ____________________________________
unit: commands succeeded
driver: commands succeeded
style: commands succeeded
congratulations :)
Email was triggered for: Success
Sending email for trigger: Success
1
0
Hi Jim,
would you like to close #3931? Seems to me it was completed a good while
ago. :-)
73
Bernhard AE6YN
2
1
# HG changeset patch
# Parent 53cd045bbf8253d32b43a528b245caff243e4c02
[Yaesu FT-25] has been added to FT-4 driver.
Thanks to Dan Clemmensen for all his work to prepare for it! A test
image is attached.
A few issues with the FT-4 driver were discovered while the work for the
FT-25 was carried out; see #7601, #7603, #7605. Additional patches will
be provided.
73
Bernhard AE6YN
Fixes: #7543
diff --git a/chirp/drivers/ft4.py b/chirp/drivers/ft4.py
--- a/chirp/drivers/ft4.py
+++ b/chirp/drivers/ft4.py
@@ -2,6 +2,7 @@
# Derives loosely from two sources released under GPLv2:
# ./template.py, Copyright 2012 Dan Smith <dsmith(a)danplanet.com>
# ./ft60.py, Copyright 2011 Dan Smith <dsmith(a)danplanet.com>
+# Edited 2020 Bernhard Hailer <ham73tux(a)gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -261,7 +262,8 @@
msg = "Bad echo. Sent:" + util.hexprint(cmd) + ", "
msg += "Received:" + util.hexprint(echo)
LOG.debug(msg)
- raise errors.RadioError("Incorrect echo on serial port. Bad
cable?")
+ raise errors.RadioError(
+ "Incorrect echo on serial port. Radio off? Bad cable?")
if response_len is None:
return variable_len_resp(pipe)
if response_len > 0:
@@ -475,7 +477,7 @@
SKIPS = ["", "S"]
BASETYPE_FT4 = ["FT-4XR", "FT-4XE"]
-BASETYPE_FT65 = ["FT-65R"]
+BASETYPE_FT65 = ["FT-65R", "FT-25R"]
POWER_LEVELS = [chirp_common.PowerLevel("Low", watts=0.5),
chirp_common.PowerLevel("Mid", watts=2.5),
chirp_common.PowerLevel("High", watts=5.0)]
@@ -569,6 +571,12 @@
BAND_ASSIGNMENTS = [2, 1, 0, 1, 2, 0, 1, 2] # bands for the vfos and
homes
FT65_PROGS = ("prog", ["P1", "P2", "P3", "P4"])
FT65_SPECIALS = list(SPECIALS) # a shallow copy works here
+FT25_SPECIALS = [
+ ("pms", PMSNAMES),
+ ("vfo", ["VFO A UHF", "VFO A VHF", "VFO B FM"]),
+ ("home", ["HOME FM", "HOME VHF"]),
+ ("prog", ["P1", "P2"])
+ ]
FT65_SPECIALS[-1] = FT65_PROGS # replace the last entry (P key names)
@@ -669,8 +677,6 @@
rf.has_dtcs_polarity = False # REV TN reverses the tone,
not the dcs
rf.has_cross = True
rf.has_settings = True
- rf.valid_tuning_steps = self.legal_steps
-
return rf
def get_bank_model(self):
@@ -1027,31 +1033,50 @@
mem = chirp_common.Memory()
_mem, ndx, num, regtype, sname = self.slotloc(memref)
mem.number = num
- mem.freq = int(_mem.freq) * 10
- mem.offset = int(_mem.offset) * self.freq_offset_scale
- mem.duplex = DUPLEX[_mem.duplex]
- self.decode_sql(mem, _mem)
- mem.power = POWER_LEVELS[_mem.tx_pwr]
- mem.mode = ["FM", "NFM"][_mem.tx_width]
- mem.tuning_step = STEP_CODE[_mem.step]
-
+ """
+ First, we need to know whether a channel is enabled,
+ then we can process any channel parameters.
+ It was found (at least on an FT-25) that channels might be
+ uninitialized and memory is just completely filled with 0xFF.
+ """
if regtype == "pms":
mem.extd_number = sname
+
if regtype in ["memory", "pms"]:
ndx = num - 1
mem.name = clean_name(self._memobj.names[ndx].chrs)
mem.empty = not retrieve_bit(self._memobj.enable, ndx)
mem.skip = SKIPS[retrieve_bit(self._memobj.scan, ndx)]
- txfreq = int(self._memobj.txfreqs[ndx].freq) * 10
- if (txfreq != 0) and (txfreq != mem.freq):
- mem.duplex = "split"
- mem.offset = txfreq
else:
mem.empty = False
mem.extd_number = sname
mem.immutable = ["number", "extd_number", "name", "skip"]
+ """
+ So, now if channel is not empty, we can do the evaluation of
+ all parameters. Otherwise we set them to defaults.
+ """
+ if mem.empty:
+ mem.freq = 0
+ mem.offset = 0
+ mem.duplex = "off"
+ mem.power = POWER_LEVELS[2] # "High"
+ mem.mode = "FM"
+ mem.tuning_step = 0
+ else:
+ mem.freq = int(_mem.freq) * 10
+ txfreq = int(self._memobj.txfreqs[ndx].freq) * 10
+ if (txfreq != 0) and (txfreq != mem.freq):
+ mem.duplex = "split"
+ mem.offset = txfreq
+ else:
+ mem.offset = int(_mem.offset) * self.freq_offset_scale
+ mem.duplex = DUPLEX[_mem.duplex]
+ self.decode_sql(mem, _mem)
+ mem.power = POWER_LEVELS[mem.tx_pwr]
+ mem.mode = ["FM", "NFM"][_mem.tx_width]
+ mem.tuning_step = STEP_CODE[_mem.step]
return mem
def enforce_band(self, memloc, freq, mem_num, sname):
@@ -1117,7 +1142,7 @@
# UHF, RX (400000000, 480000000)
]
_valid_chars = chirp_common.CHARSET_ASCII
- numblocks = 0x215 # number of 16-byte blocks in the radio
+ numblocks = 0x215 # number of 16-byte blocks in the radio
_memsize = 16 * numblocks # used by CHIRP file loader to guess
radio type
MAX_MEM_SLOT = 200
Pkeys = 2 # number of programmable keys on the FT-4
@@ -1180,3 +1205,40 @@
"step", "tot", "tx pwr", "tx save", "vfo.spl", # 30-34
"vox", "wfm.rcv", "wide/nar", "wx alert", "scramble" # 35-39
]
+
+
+(a)directory.register
+class YaesuFT25Radio(YaesuSC35GenericRadio):
+ MODEL = "FT-25R"
+ _basetype = BASETYPE_FT65
+ valid_bands = [
+ (65000000, 108000000), # broadcast FM, receive only
+ (144000000, 148000000), # VHF, US version, TX and RX
+ # VHF, RX (136000000, 174000000)
+ ]
+ _valid_chars = chirp_common.CHARSET_ASCII
+ numblocks = 0x215 # number of 16-byte blocks in the radio
+ _memsize = 16 * numblocks # used by CHIRP file loader to guess
radio type
+ MAX_MEM_SLOT = 200
+ Pkeys = 4 # number of programmable keys on the FT-65
+ namelen = 8 # length of the mem name display on the FT-65 front panel
+ id_str = b'IFT-25R\x00\x00V100\x00\x00'
+ freq_offset_scale = 50000
+ legal_steps = US_LEGAL_STEPS
+ # we need a deep copy here because we are adding deeper than the
top level.
+ class_group_descs =
copy.deepcopy(YaesuSC35GenericRadio.group_descriptions)
+ add_paramdesc(
+ class_group_descs, "misc", ("compander", "Compander", ["OFF",
"ON"]))
+ class_specials = FT25_SPECIALS
+ # names for the setmode function for the programmable keys. Mode
zero means
+ # that the key is programmed for a memory not a setmode.
+ SETMODES = [
+ "mem", "apo", "arts", "battsave", "b-ch.l/o", # 00-04
+ "beep", "bell", "compander", "ctcss", "cw id", # 05-09
+ "dc volt", "dcs code", "dtmf set", "dtmf wrt", "edg bep", # 10-14
+ "key lock", "lamp", "ledbsy", "mem del", "mon/t-cl", # 15-19
+ "name tag", "pager", "password", "pri.rvt", "repeater", # 20-24
+ "resume", "rf.sql", "scn.lamp", "skip", "sql type", # 25-29
+ "step", "tot", "tx pwr", "tx save", "vfo.spl", # 30-34
+ "vox", "wfm.rcv", "wide/nar", "wx alert", "scramble" # 35-39
+ ]
2
3