Developers
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 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
- 3 participants
- 2972 discussions
# HG changeset patch
# User K. Arvanitis <kosta(a)alumni.uvic.ca>
# Date 1422736039 28800
# Parent 05767e5dabb45d0a99ca63df5705bc799e1858a3
[PATCH] Updated Memory Edit View #1
This patch helps addres a concern some individuals were having
accessing the memory property page which contains some "extra"
memory settings which are not editable on the main treeview.
This change modified the memory editor taskbar to include a button
which connects to the memory property page as well as adding a properties
menu item to the vie menu and memory editor context menu.
Access to the memory property page should now be slightly improved and
more accessible to those people whom are not used to functioning with
a 2-button mouse button.
Feature #2273
diff -r 05767e5dabb4 chirpui/mainapp.py
--- a/chirpui/mainapp.py Thu Jan 29 07:24:01 2015 -0600
+++ b/chirpui/mainapp.py Sat Jan 31 12:30:12 2015 -0800
@@ -112,7 +112,8 @@
for i in ["export", "close", "columns", "irbook", "irfinder",
"move_up", "move_dn", "exchange", "iradioreference",
- "cut", "copy", "paste", "delete", "viewdeveloper"]:
+ "cut", "copy", "paste", "delete", "viewdeveloper",
+ "properties"]:
set_action_sensitive(i, eset is not None)
def ev_status(self, editorset, msg):
@@ -1420,7 +1421,7 @@
self.do_toggle_developer(_action)
elif action in ["cut", "copy", "paste", "delete",
"move_up", "move_dn", "exchange",
- "devshowraw", "devdiffraw"]:
+ "devshowraw", "devdiffraw", "properties"]:
self.get_current_editorset().get_current_editor().hotkey(_action)
elif action == "devdifftab":
self.do_diff_radio()
@@ -1461,6 +1462,8 @@
<menuitem action="move_up"/>
<menuitem action="move_dn"/>
<menuitem action="exchange"/>
+ <separator/>
+ <menuitem action="properties"/>
</menu>
<menu action="view">
<menuitem action="columns"/>
@@ -1524,6 +1527,7 @@
('move_up', None, _("Move _Up"), "<Control>Up", None, self.mh),
('move_dn', None, _("Move Dow_n"), "<Control>Down", None, self.mh),
('exchange', None, _("E_xchange"), "<Control><Shift>x", None, self.mh),
+ ('properties', None, _("P_roperties"), None, None, self.mh),
('view', None, _("_View"), None, None, self.mh),
('columns', None, _("Columns"), None, None, self.mh),
('viewdeveloper', None, _("Developer"), None, None, self.mh),
diff -r 05767e5dabb4 chirpui/memdetail.py
--- a/chirpui/memdetail.py Thu Jan 29 07:24:01 2015 -0600
+++ b/chirpui/memdetail.py Sat Jan 31 12:30:12 2015 -0800
@@ -193,8 +193,6 @@
self.vbox.pack_start(sw, 1, 1, 1)
tab.show()
- row = 0
-
def _err(name, msg):
try:
_img = self._editors[name][2]
@@ -210,6 +208,7 @@
self.set_response_sensitive(gtk.RESPONSE_OK,
True not in self._errors)
+ row = 0
for name in self._order:
labeltxt, editorcls, data = self._elements[name]
@@ -235,13 +234,10 @@
row += 1
self._order.append(name)
- def _title(self):
- return _("Edit Memory #{num}").format(num=self._memory.number)
-
def __init__(self, features, memory, parent=None):
self._memory = memory
gtk.Dialog.__init__(self,
- title=self._title(),
+ title="Memory Properties",
flags=gtk.DIALOG_MODAL,
parent=parent,
buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
@@ -337,8 +333,6 @@
return self._memory
class MultiMemoryDetailEditor(MemoryDetailEditor):
- def _title(self):
- return _("Edit Multiple Memories")
def __init__(self, features, memory, parent=None):
self._selections = dict()
diff -r 05767e5dabb4 chirpui/memedit.py
--- a/chirpui/memedit.py Thu Jan 29 07:24:01 2015 -0600
+++ b/chirpui/memedit.py Sat Jan 31 12:30:12 2015 -0800
@@ -795,7 +795,7 @@
self._show_raw(cur_pos)
elif action == "devdiffraw":
self._diff_raw(paths)
- elif action == "edit":
+ elif action == "properties":
job = common.RadioJob(self.edit_memory, "get_memory", cur_pos)
job.set_cb_args(selected)
self.rthread.submit(job)
@@ -828,7 +828,10 @@
menu_xml = """
<ui>
<popup name="Menu">
- <menuitem action="edit"/>
+ <menuitem action="cut"/>
+ <menuitem action="copy"/>
+ <menuitem action="paste"/>
+ <separator/>
<menuitem action="insert_prev"/>
<menuitem action="insert_next"/>
<menu action="deletes">
@@ -840,9 +843,7 @@
<menuitem action="move_dn"/>
<menuitem action="exchange"/>
<separator/>
- <menuitem action="cut"/>
- <menuitem action="copy"/>
- <menuitem action="paste"/>
+ <menuitem action="properties"/>
%s
</popup>
</ui>
@@ -854,7 +855,9 @@
istwo = len(paths) == 2
actions = [
- ("edit", _("Edit")),
+ ("cut", _("Cut")),
+ ("copy", _("Copy")),
+ ("paste", _("Paste")),
("insert_prev", _("Insert row above")),
("insert_next", _("Insert row below")),
("deletes", _("Delete")),
@@ -864,9 +867,7 @@
("move_up", _("Move up")),
("move_dn", _("Move down")),
("exchange", _("Exchange memories")),
- ("cut", _("Cut")),
- ("copy", _("Copy")),
- ("paste", _("Paste")),
+ ("properties", _("P_roperties")),
("devshowraw", _("Show Raw Memory")),
("devdiffraw", _("Diff Raw Memories")),
]
@@ -1153,7 +1154,7 @@
def make_controls(self, min, max):
hbox = gtk.HBox(False, 2)
- lab = gtk.Label(_("Memory range:"))
+ lab = gtk.Label(_("Memory Range:"))
lab.show()
hbox.pack_start(lab, 0, 0, 0)
@@ -1180,9 +1181,10 @@
hi.show()
hbox.pack_start(hi, 0, 0, 0)
- refresh = gtk.Button(_("Go"))
+ refresh = gtk.Button(_("Refresh"))
+ refresh.set_relief(gtk.RELIEF_NONE)
+ refresh.connect("clicked", lambda x: self.prefill())
refresh.show()
- refresh.connect("clicked", lambda x: self.prefill())
hbox.pack_start(refresh, 0, 0, 0)
def activate_go(widget):
@@ -1200,23 +1202,34 @@
sep = gtk.VSeparator()
sep.show()
- sep.set_size_request(20, -1)
- hbox.pack_start(sep, 0, 0, 0)
+ hbox.pack_start(sep, 0, 0, 2)
- showspecial = gtk.CheckButton(_("Special Channels"))
+ showspecial = gtk.ToggleButton(_("Special Channels"))
+ showspecial.set_relief(gtk.RELIEF_NONE)
showspecial.set_active(self.show_special)
showspecial.connect("toggled",
lambda x: self.set_show_special(x.get_active()))
showspecial.show()
hbox.pack_start(showspecial, 0, 0, 0)
- showempty = gtk.CheckButton(_("Show Empty"))
+ showempty = gtk.ToggleButton(_("Show Empty"))
+ showempty.set_relief(gtk.RELIEF_NONE)
showempty.set_active(self.show_empty);
showempty.connect("toggled",
lambda x: self.set_show_empty(x.get_active()))
showempty.show()
hbox.pack_start(showempty, 0, 0, 0)
+ sep = gtk.VSeparator()
+ sep.show()
+ hbox.pack_start(sep, 0, 0, 2)
+
+ props = gtk.Button(_("Properties"))
+ props.set_relief(gtk.RELIEF_NONE)
+ props.connect("clicked", lambda x: self.hotkey(gtk.Action("properties", "", "", 0)))
+ props.show()
+ hbox.pack_start(props, 0, 0, 0)
+
hbox.show()
return hbox
1
0
# HG changeset patch User Eric Allen <eric(a)hackerengineer.net> Date
# 14227542__68 28800 Sat Jan 31 17:31:08 2015 -0800 Node ID
# 0ee06737ce8c741e19376dad5d4391307a54aafe Parent
# 05767e5dabb45d0a99ca63df5705bc799e1858a3
Fix skip reading in TH-UVF8D
Turns out the and/or Python ternary doesn't work when you do "and ''",
because '' is falsey.
diff -r 05767e5dabb4 -r 0ee06737ce8c chirp/th_uvf8d.py ---
a/chirp/th_uvf8d.pyThu Jan 29 07:24:01 2015 -0600 +++
b/chirp/th_uvf8d.pySat Jan 31 17:31:08 2015 -0800 @@ -386,7 +386,10 @@
mem.name = str(_mem.name).rstrip('\xFF ')
- mem.skip = dont_skip and "" or "S"
+ if dont_skip:
+ mem.skip = ''
+ else:
+ mem.skip = 'S'
mem.mode = _mem.wideband and "FM" or "NFM" mem.power = POWER_LEVELS[1 -
_mem.ishighpower]
1
0

[chirp_devel] [PATCH] [th_uv3r] Add support for newer 2.5kHz TYT TH-UV3R (2nd version)
by Eric Allen 01 Feb '15
by Eric Allen 01 Feb '15
01 Feb '15
# HG changeset patch User Eric Allen <eric(a)hackerengineer.net> Date
# 1422752216 28800 Sat Jan 31 16:56:56 2015 -0800 Node ID
# 03cbc94e6b9097c38f38a7d50361a52c5dc808e2 Parent
# cfa8a356cf3867cb3df35c7d73193285cc2b50d1
Add support for new firmware in TYT TH-UV3R that supports 2.5kHz steps.
This hopefully fixes #1227
diff -r cfa8a356cf38 -r 03cbc94e6b90 chirp/th_uv3r25.py --- /dev/nullThu
Jan 01 00:00:00 1970 +0000 +++ b/chirp/th_uv3r25.pySat Jan 31 16:56:56
2015 -0800 @@ -0,0 +1,208 @@ +# Copyright 2015 Eric Allen
<eric(a)hackerengineer.net> +# +# 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 +# the Free Software Foundation, either
version 3 of the License, or +# (at your option) any later version. +#
+# This program is distributed in the hope that it will be useful, +#
but WITHOUT ANY WARRANTY; without even the implied warranty of +#
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU
General Public License for more details. +# +# You should have received
a copy of the GNU General Public License +# along with this program. If
not, see <http://www.gnu.org/licenses/>. + +"""TYT uv3r (2.5kHz) radio
management module""" + +from chirp import chirp_common, bitwise,
directory +from chirp.wouxun_common import do_download, do_upload +
+from chirp.settings import RadioSetting, RadioSettingGroup, \
+ RadioSettingValueInteger, RadioSettingValueList, \
+ RadioSettingValueBoolean, RadioSettingValueString + +from th_uv3r
import TYTUV3RRadio, tyt_uv3r_prep, THUV3R_CHARSET + + +def
tyt_uv3r_download(radio):
+ tyt_uv3r_prep(radio)
+ return do_download(radio, 0x0000, 0x0B30, 0x0010) + + +def
tyt_uv3r_upload(radio):
+ tyt_uv3r_prep(radio)
+ return do_upload(radio, 0x0000, 0x0B30, 0x0010) + +mem_format = """
+// 20 bytes per memory +struct memory {
+ ul32 rx_freq; // 4 bytes
+ ul32 tx_freq; // 8 bytes +
+ ul16 rx_tone; // 10 bytes
+ ul16 tx_tone; // 12 bytes +
+ u8 unknown1a:1,
+ iswide:1,
+ bclo_n:1,
+ vox_n:1,
+ tail:1,
+ power_high:1,
+ voice_mode:2;
+ u8 name[6]; // 19 bytes
+ u8 unknown2; // 20 bytes +}; + +#seekto 0x0010; +struct memory
memory[128]; + +#seekto 0x0A80; +u8 emptyflags[16]; +u8 skipflags[16];
+""" + +VOICE_MODE_LIST = ["Compander", "Scrambler", "None"] +
+(a)directory.register +class TYTUV3R25Radio(TYTUV3RRadio):
+ MODEL = "TH-UV3R (2.5kHz)"
+ _memsize = 2864 +
+ POWER_LEVELS = [chirp_common.PowerLevel("High", watts=2.00),
+ chirp_common.PowerLevel("Low", watts=0.80)] +
+ def get_features(self):
+ rf = super(TYTUV3R25Radio, self).get_features() +
+ rf.valid_tuning_steps = [2.5, 5.0, 6.25, 10.0, 12.5, 25.0, 37.50,
+ 50.0, 100.0]
+ rf.valid_power_levels = self.POWER_LEVELS
+ return rf +
+ def sync_in(self):
+ self.pipe.setTimeout(2)
+ self._mmap = tyt_uv3r_download(self)
+ self.process_mmap() +
+ def sync_out(self):
+ tyt_uv3r_upload(self) +
+ def process_mmap(self):
+ self._memobj = bitwise.parse(mem_format, self._mmap) +
+ def get_raw_memory(self, number):
+ return repr(self._memobj.memory[number - 1]) +
+ def get_memory(self, number):
+ _mem = self._memobj.memory[number - 1]
+ mem = chirp_common.Memory()
+ mem.number = number +
+ bit = 1 << ((number - 1) % 8)
+ byte = (number - 1) / 8 +
+ if self._memobj.emptyflags[byte] & bit:
+ mem.empty = True
+ return mem +
+ mem.freq = _mem.rx_freq * 10
+ mem.offset = abs(_mem.rx_freq - _mem.tx_freq) * 10
+ if _mem.tx_freq == _mem.rx_freq:
+ mem.duplex = ""
+ elif _mem.tx_freq < _mem.rx_freq:
+ mem.duplex = "-"
+ elif _mem.tx_freq > _mem.rx_freq:
+ mem.duplex = "+" +
+ mem.mode = _mem.iswide and "FM" or "NFM"
+ self._decode_tone(mem, _mem)
+ mem.skip = (self._memobj.skipflags[byte] & bit) and "S" or "" +
+ for char in _mem.name:
+ try:
+ c = THUV3R_CHARSET[char]
+ except:
+ c = ""
+ mem.name += c
+ mem.name = mem.name.rstrip() +
+ mem.power = self.POWER_LEVELS[not _mem.power_high] +
+ mem.extra = RadioSettingGroup("extra", "Extra Settings") +
+ rs = RadioSetting("bclo_n", "Busy Channel Lockout",
+ RadioSettingValueBoolean(not _mem.bclo_n))
+ mem.extra.append(rs) +
+ rs = RadioSetting("vox_n", "VOX",
+ RadioSettingValueBoolean(not _mem.vox_n))
+ mem.extra.append(rs) +
+ rs = RadioSetting("tail", "Squelch Tail Elimination",
+ RadioSettingValueBoolean(_mem.tail))
+ mem.extra.append(rs) +
+ rs = RadioSetting("voice_mode", "Voice Mode",
+ RadioSettingValueList(VOICE_MODE_LIST,
+ VOICE_MODE_LIST[_mem.voice_mode-1]))
+ mem.extra.append(rs) +
+ return mem +
+ def set_memory(self, mem):
+ _mem = self._memobj.memory[mem.number - 1]
+ bit = 1 << ((mem.number - 1) % 8)
+ byte = (mem.number - 1) / 8 +
+ if mem.empty:
+ self._memobj.emptyflags[byte] |= bit
+ _mem.set_raw("\xFF" * 16)
+ return +
+ self._memobj.emptyflags[byte] &= ~bit +
+ _mem.rx_freq = mem.freq / 10 +
+ if mem.duplex == "":
+ _mem.tx_freq = _mem.rx_freq
+ elif mem.duplex == "-":
+ _mem.tx_freq = _mem.rx_freq - mem.offset / 10.0
+ elif mem.duplex == "+":
+ _mem.tx_freq = _mem.rx_freq + mem.offset / 10.0 +
+ _mem.iswide = mem.mode == "FM" +
+ self._encode_tone(mem, _mem) +
+ if mem.skip:
+ self._memobj.skipflags[byte] |= bit
+ else:
+ self._memobj.skipflags[byte] &= ~bit +
+ name = []
+ for char in mem.name.ljust(6):
+ try:
+ c = THUV3R_CHARSET.index(char)
+ except:
+ c = THUV3R_CHARSET.index(" ")
+ name.append(c)
+ _mem.name = name +
+ if mem.power == self.POWER_LEVELS[0]:
+ _mem.power_high = 1
+ else:
+ _mem.power_high = 0 +
+ for element in mem.extra:
+ if element.get_name() == 'voice_mode':
+ setattr(_mem, element.get_name(), int(element.value) + 1)
+ elif element.get_name().endswith('_n'):
+ setattr(_mem, element.get_name(), 1 - int(element.value))
+ else:
+ setattr(_mem, element.get_name(), element.value) + +
+ @classmethod
+ def match_model(cls, filedata, filename):
+ return len(filedata) == cls._memsize
1
0

01 Feb '15
# HG changeset patch User Eric Allen <eric(a)hackerengineer.net> Date
# 1422595106 28800 Thu Jan 29 21:18:26 2015 -0800 Node ID
# fd4bb2f6fd60680f6f811b7573f6fef1132fa9d3 Parent
# bd1d2bac911911051c0a7b7f345cb6a0eba58ea7
Add support for new firmware in TYT TH-UV3R that supports 2.5kHz steps.
This hopefully fixes #1227
diff -r bd1d2bac9119 -r fd4bb2f6fd60 chirp/th_uv3r25.py --- /dev/nullThu
Jan 01 00:00:00 1970 +0000 +++ b/chirp/th_uv3r25.pyThu Jan 29 21:18:26
2015 -0800 @@ -0,0 +1,175 @@ +# Copyright 2015 Eric Allen
<eric(a)hackerengineer.net> +# +# 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 +# the Free Software Foundation, either
version 3 of the License, or +# (at your option) any later version. +#
+# This program is distributed in the hope that it will be useful, +#
but WITHOUT ANY WARRANTY; without even the implied warranty of +#
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU
General Public License for more details. +# +# You should have received
a copy of the GNU General Public License +# along with this program. If
not, see <http://www.gnu.org/licenses/>. + +"""TYT uv3r (2.5kHz) radio
management module""" + +from chirp import chirp_common, bitwise,
directory +from chirp.wouxun_common import do_download, do_upload +
+from th_uv3r import TYTUV3RRadio, tyt_uv3r_prep, THUV3R_CHARSET + +
+def tyt_uv3r_download(radio):
+ tyt_uv3r_prep(radio)
+ return do_download(radio, 0x0000, 0x0B30, 0x0010) + + +def
tyt_uv3r_upload(radio):
+ tyt_uv3r_prep(radio)
+ return do_upload(radio, 0x0000, 0x0B30, 0x0010) + +mem_format = """
+// 20 bytes per memory +struct memory {
+ ul32 rx_freq; // 4 bytes
+ ul32 tx_freq; // 8 bytes +
+ ul16 rx_tone; // 10 bytes
+ ul16 tx_tone; // 12 bytes +
+ u8 unknown1a:1,
+ iswide:1,
+ bclo_n:1, // TODO: expose in UI
+ vox_n:1, // TODO: expose in UI
+ epilogue:1, // TODO: figure out what this even is
+ power_high:1,
+ voice_mode:2; // TODO: expose in UI
+ u8 name[6]; // 19 bytes
+ u8 unknown2; // 20 bytes +}; + +#seekto 0x0010; +struct memory
memory[128]; + +#seekto 0x0A80; +u8 emptyflags[16]; +u8 skipflags[16];
+""" + + +(a)directory.register +class TYTUV3R25Radio(TYTUV3RRadio):
+ MODEL = "TH-UV3R (2.5kHz)"
+ _memsize = 2864 +
+ POWER_LEVELS = [chirp_common.PowerLevel("High", watts=2.00),
+ chirp_common.PowerLevel("Low", watts=0.80)] +
+ def get_features(self):
+ rf = super(TYTUV3R25Radio, self).get_features() +
+ rf.valid_tuning_steps = [2.5, 5.0, 6.25, 10.0, 12.5, 25.0, 37.50,
+ 50.0, 100.0]
+ rf.valid_power_levels = self.POWER_LEVELS
+ return rf +
+ def sync_in(self):
+ self.pipe.setTimeout(2)
+ self._mmap = tyt_uv3r_download(self)
+ self.process_mmap() +
+ def sync_out(self):
+ tyt_uv3r_upload(self) +
+ def process_mmap(self):
+ self._memobj = bitwise.parse(mem_format, self._mmap) +
+ def get_raw_memory(self, number):
+ return repr(self._memobj.memory[number - 1]) +
+ def get_memory(self, number):
+ _mem = self._memobj.memory[number - 1]
+ mem = chirp_common.Memory()
+ mem.number = number +
+ bit = 1 << ((number - 1) % 8)
+ byte = (number - 1) / 8 +
+ if self._memobj.emptyflags[byte] & bit:
+ mem.empty = True
+ return mem +
+ mem.freq = _mem.rx_freq * 10
+ mem.offset = abs(_mem.rx_freq - _mem.tx_freq)
+ if _mem.tx_freq == _mem.rx_freq:
+ mem.duplex = ""
+ elif _mem.tx_freq < _mem.rx_freq:
+ mem.duplex = "-"
+ elif _mem.tx_freq > _mem.rx_freq:
+ mem.duplex = "+" +
+ mem.mode = _mem.iswide and "FM" or "NFM"
+ self._decode_tone(mem, _mem)
+ mem.skip = (self._memobj.skipflags[byte] & bit) and "S" or "" +
+ for char in _mem.name:
+ try:
+ c = THUV3R_CHARSET[char]
+ except:
+ c = ""
+ mem.name += c
+ mem.name = mem.name.rstrip() +
+ mem.power = self.POWER_LEVELS[not _mem.power_high] +
+ return mem +
+ def set_memory(self, mem):
+ _mem = self._memobj.memory[mem.number - 1]
+ bit = 1 << ((mem.number - 1) % 8)
+ byte = (mem.number - 1) / 8 +
+ if mem.empty:
+ self._memobj.emptyflags[byte] |= bit
+ _mem.set_raw("\xFF" * 16)
+ return +
+ self._memobj.emptyflags[byte] &= ~bit +
+ _mem.rx_freq = mem.freq / 10 +
+ if mem.duplex == "":
+ _mem.tx_freq = _mem.rx_freq
+ elif mem.duplex == "-":
+ _mem.tx_freq = _mem.rx_freq - mem.offset
+ elif mem.duplex == "+":
+ _mem.tx_freq = _mem.rx_freq + mem.offset +
+ _mem.iswide = mem.mode == "FM" +
+ self._encode_tone(mem, _mem) +
+ if mem.skip:
+ self._memobj.skipflags[byte] |= bit
+ else:
+ self._memobj.skipflags[byte] &= ~bit +
+ name = []
+ for char in mem.name.ljust(6):
+ try:
+ c = THUV3R_CHARSET.index(char)
+ except:
+ c = THUV3R_CHARSET.index(" ")
+ name.append(c)
+ _mem.name = name +
+ if mem.power == self.POWER_LEVELS[0]:
+ _mem.power_high = 1
+ else:
+ _mem.power_high = 0 +
+ @classmethod
+ def match_model(cls, filedata, filename):
+ return len(filedata) == cls._memsize
4
4

31 Jan '15
# HG changeset patch
# User Jens Jensen <af5mi(a)yahoo.com>
# Date 1422737776 21600
# Sat Jan 31 14:56:16 2015 -0600
# Node ID 879f84ec0506db7dfa7fc73d72802368871eec8c
# Parent 05767e5dabb45d0a99ca63df5705bc799e1858a3
[th9800] remove duplicate fmdev extra setting #2187
Changing mode in edit panel does not take effect due to competing extra
setting fmdeviation. Remove extraneous setting, as mode covers this.
diff -r 05767e5dabb4 -r 879f84ec0506 chirp/th9800.py
--- a/chirp/th9800.py Thu Jan 29 07:24:01 2015 -0600
+++ b/chirp/th9800.py Sat Jan 31 14:56:16 2015 -0600
@@ -299,12 +299,6 @@
RadioSettingValueBoolean(bool(_mem.compand)))
compand.set_doc("Compress Audio")
mem.extra.append(compand)
-
- opts = ["Wide", "Midddle", "Narrow"]
- dev = RadioSetting("fmdev", "FM Deviation",
- RadioSettingValueList(opts, opts[_mem.fmdev]))
- dev.set_doc("Wide ~6KHz, Middle ~4KHz, Narrow ~2.5KHz")
- mem.extra.append(dev)
BeatShift = RadioSetting("BeatShift", "BeatShift",
RadioSettingValueBoolean(bool(_mem.BeatShift)))
1
0
Tested changes:
[Jens Jensen <af5mi(a)yahoo.com>] [th9800] change name/freq display behavior to be automatic #1353
Add automatic behavior so that channel name is displayed if it is set, and
freq is show if name is blank. Still allows manual override by user.
Full log:
[...truncated 243 lines...]
Registered Icom_IC-Q7A = ICQ7Radio
Registered Baofeng_UV-B5 = BaofengUVB5
Registered Generic_XML = XMLRadio
Registered Kenwood_HMK = HMKRadio
Registered Kenwood_TH-D72_clone_mode = THD72Radio
Registered Icom_IC-91_92AD = IC9xRadio
Registered Icom_IC-T70 = ICT70Radio
Registered Icom_IC-208H = IC208Radio
Registered Leixen_VV-898 = LeixenVV898Radio
Registered Jetstream_JT270M = JetstreamJT270MRadio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
Registered Baofeng_BF-888 = H777Radio
Registered Yaesu_FT-7800_7900 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered KYD_NC-630A = NC630aRadio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Yaesu_VX-170 = VX170Radio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Registered TYT_TH-UV3R = TYTUV3RRadio
Alinco DJ175 Detect PASSED: All tests
Alinco DJ175 Settings SKIPPED: Settings not supported
Alinco DJ175 Clone PASSED: All tests
Alinco DJ175 Edges PASSED: All tests
Alinco DJ175 BruteForce PASSED: All tests
Alinco DJ175 CopyAll PASSED: All tests
Alinco DJ175 Banks SKIPPED: Banks not supported
Alinco DJ596 Detect PASSED: All tests
Alinco DJ596 Settings SKIPPED: Settings not supported
Alinco DJ596 Clone PASSED: All tests
Alinco DJ596 Edges PASSED: All tests
Alinco DJ596 BruteForce PASSED: All tests
Alinco DJ596 CopyAll PASSED: All tests
Alinco DJ596 Banks SKIPPED: Banks not supported
Alinco DR235T Detect PASSED: All tests
Alinco DR235T Settings SKIPPED: Settings not supported
Alinco DR235T Clone PASSED: All tests
Alinco DR235T Edges PASSED: All tests
Alinco DR235T BruteForce PASSED: All tests
Alinco DR235T CopyAll PASSED: All tests
Alinco DR235T Banks SKIPPED: Banks not supported
Baofeng BF-888 Detect PASSED: All tests
Baofeng BF-888 Settings PASSED: All tests
Baofeng BF-888 Clone PASSED: All tests
Baofeng BF-888 Edges PASSED: All tests
Baofeng BF-888 BruteForce PASSED: All tests
Baofeng BF-888 CopyAll PASSED: All tests
Baofeng BF-888 Banks SKIPPED: Banks not supported
Baofeng F-11 Detect PASSED: All tests
Baofeng F-11 Settings PASSED: All tests
Baofeng F-11 Clone PASSED: All tests
Baofeng F-11 Edges PASSED: All tests
Baofeng F-11 BruteForce PASSED: All tests
Baofeng F-11 CopyAll PASSED: All tests
Baofeng F-11 Banks SKIPPED: Banks not supported
Baofeng UV-3R Detect PASSED: All tests
Baofeng UV-3R Settings PASSED: All tests
Baofeng UV-3R Clone PASSED: All tests
Baofeng UV-3R Edges PASSED: All tests
Baofeng UV-3R BruteForce PASSED: All tests
Baofeng UV-3R CopyAll PASSED: All tests
Baofeng UV-3R Banks SKIPPED: Banks not supported
Baofeng UV-5R Detect PASSED: All tests
Baofeng UV-5R Settings PASSED: All tests
Baofeng UV-5R Clone PASSED: All tests
Baofeng UV-5R Edges PASSED: All tests
Baofeng UV-5R BruteForce PASSED: All tests
Baofeng UV-5R CopyAll PASSED: All tests
Baofeng UV-5R Banks SKIPPED: Banks not supported
Baofeng UV-B5 Detect PASSED: All tests
Baofeng UV-B5 Settings PASSED: All tests
Baofeng UV-B5 Clone PASSED: All tests
Baofeng UV-B5 Edges PASSED: All tests
Baofeng UV-B5 BruteForce PASSED: All tests
Baofeng UV-B5 CopyAll PASSED: All tests
Baofeng UV-B5 Banks SKIPPED: Banks not supported
Icom IC-208H Detect PASSED: All tests
Icom IC-208H Settings SKIPPED: Settings not supported
Icom IC-208H Clone PASSED: All tests
Icom IC-208H Edges PASSED: All tests
Icom IC-208H BruteForce PASSED: All tests
Icom IC-208H CopyAll PASSED: All tests
Icom IC-208H Banks PASSED: All tests
Icom IC-2100H Detect PASSED: All tests
Icom IC-2100H Settings SKIPPED: Settings not supported
Icom IC-2100H Clone PASSED: All tests
Icom IC-2100H Edges PASSED: All tests
Icom IC-2100H BruteForce PASSED: All tests
Icom IC-2100H CopyAll PASSED: All tests
Icom IC-2100H Banks SKIPPED: Banks not supported
Icom IC-2200H Detect PASSED: All tests
Icom IC-2200H Settings PASSED: All tests
Icom IC-2200H Clone PASSED: All tests
Icom IC-2200H Edges PASSED: All tests
Icom IC-2200H BruteForce PASSED: All tests
Icom IC-2200H CopyAll PASSED: All tests
Icom IC-2200H Banks PASSED: All tests
Icom IC-2720H Detect PASSED: All tests
Icom IC-2720H Settings SKIPPED: Settings not supported
Icom IC-2720H Clone PASSED: All tests
Icom IC-2720H Edges PASSED: All tests
Icom IC-2720H BruteForce PASSED: All tests
Icom IC-2720H CopyAll PASSED: All tests
Icom IC-2720H Banks PASSED: All tests
Icom IC-2820H Detect PASSED: All tests
Icom IC-2820H Settings PASSED: All tests
Icom IC-2820H Clone PASSED: All tests
Icom IC-2820H Edges PASSED: All tests
Icom IC-2820H BruteForce PASSED: All tests
Icom IC-2820H CopyAll PASSED: All tests
Icom IC-2820H Banks PASSED: All tests
Icom IC-Q7A Detect PASSED: All tests
Icom IC-Q7A Settings PASSED: All tests
Icom IC-Q7A Clone PASSED: All tests
Icom IC-Q7A Edges PASSED: All tests
Icom IC-Q7A BruteForce PASSED: All tests
Icom IC-Q7A CopyAll PASSED: All tests
Icom IC-Q7A Banks SKIPPED: Banks not supported
Icom IC-T70 Detect PASSED: All tests
Icom IC-T70 Settings SKIPPED: Settings not supported
Icom IC-T70 Clone PASSED: All tests
Icom IC-T70 Edges PASSED: All tests
Icom IC-T70 BruteForce PASSED: All tests
Icom IC-T70 CopyAll PASSED: All tests
Icom IC-T70 Banks PASSED: All tests
Icom IC-T7H Detect PASSED: All tests
Icom IC-T7H Settings SKIPPED: Settings not supported
Icom IC-T7H Clone PASSED: All tests
Icom IC-T7H Edges PASSED: All tests
Icom IC-T7H BruteForce PASSED: All tests
Icom IC-T7H CopyAll PASSED: All tests
Icom IC-T7H Banks SKIPPED: Banks not supported
Icom IC-T8A Detect PASSED: All tests
Icom IC-T8A Settings SKIPPED: Settings not supported
Icom IC-T8A Clone PASSED: All tests
Icom IC-T8A Edges PASSED: All tests
Icom IC-T8A BruteForce PASSED: All tests
Icom IC-T8A CopyAll PASSED: All tests
Icom IC-T8A Banks SKIPPED: Banks not supported
Icom IC-V82/U82 Detect PASSED: All tests
Icom IC-V82/U82 Settings SKIPPED: Settings not supported
Icom IC-V82/U82 Clone PASSED: All tests
Icom IC-V82/U82 Edges PASSED: All tests
Icom IC-V82/U82 BruteForce PASSED: All tests
Icom IC-V82/U82 CopyAll PASSED: All tests
Icom IC-V82/U82 Banks PASSED: All tests
Icom IC-W32A VHF Detect PASSED: All tests
Icom IC-W32A VHF Settings SKIPPED: Settings not supported
Icom IC-W32A VHF Clone PASSED: All tests
Icom IC-W32A VHF Edges PASSED: All tests
Icom IC-W32A VHF BruteForce PASSED: All tests
Icom IC-W32A VHF CopyAll PASSED: All tests
Icom IC-W32A VHF Banks SKIPPED: Banks not supported
Icom IC-W32A UHF Detect PASSED: All tests
Icom IC-W32A UHF Settings SKIPPED: Settings not supported
Icom IC-W32A UHF Clone PASSED: All tests
Icom IC-W32A UHF Edges PASSED: All tests
Icom IC-W32A UHF BruteForce PASSED: All tests
Icom IC-W32A UHF CopyAll PASSED: All tests
Icom IC-W32A UHF Banks SKIPPED: Banks not supported
Icom ID-31A Detect PASSED: All tests
Icom ID-31A Settings PASSED: All tests
Icom ID-31A Clone PASSED: All tests
Icom ID-31A Edges PASSED: All tests
Icom ID-31A BruteForce PASSED: All tests
Icom ID-31A CopyAll PASSED: All tests
Icom ID-31A Banks PASSED: All tests
Icom ID-51A Detect PASSED: All tests
Icom ID-51A Settings PASSED: All tests
Icom ID-51A Clone PASSED: All tests
Icom ID-51A Edges PASSED: All tests
Icom ID-51A BruteForce PASSED: All tests
Icom ID-51A CopyAll PASSED: All tests
Icom ID-51A Banks PASSED: All tests
Icom ID-800H v2 Detect PASSED: All tests
Icom ID-800H v2 Settings PASSED: All tests
Icom ID-800H v2 Clone PASSED: All tests
Icom ID-800H v2 Edges PASSED: All tests
Icom ID-800H v2 BruteForce PASSED: All tests
Icom ID-800H v2 CopyAll PASSED: All tests
Icom ID-800H v2 Banks PASSED: All tests
Icom ID-880H Detect PASSED: All tests
Icom ID-880H Settings PASSED: All tests
Icom ID-880H Clone PASSED: All tests
Icom ID-880H Edges PASSED: All tests
Icom ID-880H BruteForce PASSED: All tests
Icom ID-880H CopyAll PASSED: All tests
Icom ID-880H Banks PASSED: All tests
Jetstream JT220M Detect PASSED: All tests
Jetstream JT220M Settings SKIPPED: Settings not supported
Jetstream JT220M Clone PASSED: All tests
Jetstream JT220M Edges PASSED: All tests
Jetstream JT220M BruteForce PASSED: All tests
Jetstream JT220M CopyAll PASSED: All tests
Jetstream JT220M Banks SKIPPED: Banks not supported
Jetstream JT270M Detect PASSED: All tests
Jetstream JT270M Settings PASSED: All tests
Jetstream JT270M Clone PASSED: All tests
Jetstream JT270M Edges PASSED: All tests
Jetstream JT270M BruteForce PASSED: All tests
Jetstream JT270M CopyAll PASSED: All tests
Jetstream JT270M Banks SKIPPED: Banks not supported
Kenwood TH-D72 (clone Detect PASSED: All tests
Kenwood TH-D72 (clone Settings SKIPPED: Settings not supported
Kenwood TH-D72 (clone Clone PASSED: All tests
Kenwood TH-D72 (clone Edges PASSED: All tests
Kenwood TH-D72 (clone BruteForce PASSED: All tests
Kenwood TH-D72 (clone CopyAll PASSED: All tests
Kenwood TH-D72 (clone Banks SKIPPED: Banks not supported
Kenwood TK-8102 Detect PASSED: All tests
Kenwood TK-8102 Settings PASSED: All tests
Kenwood TK-8102 Clone PASSED: All tests
Kenwood TK-8102 Edges PASSED: All tests
Kenwood TK-8102 BruteForce PASSED: All tests
Kenwood TK-8102 CopyAll PASSED: All tests
Kenwood TK-8102 Banks SKIPPED: Banks not supported
Leixen VV-898 Detect PASSED: All tests
Leixen VV-898 Settings PASSED: All tests
Leixen VV-898 Clone PASSED: All tests
Leixen VV-898 Edges PASSED: All tests
Leixen VV-898 BruteForce PASSED: All tests
Leixen VV-898 CopyAll PASSED: All tests
Leixen VV-898 Banks SKIPPED: Banks not supported
Polmar DB-50M Detect PASSED: All tests
Polmar DB-50M Settings PASSED: All tests
Polmar DB-50M Clone PASSED: All tests
Polmar DB-50M Edges PASSED: All tests
Polmar DB-50M BruteForce PASSED: All tests
Polmar DB-50M CopyAll PASSED: All tests
Polmar DB-50M Banks SKIPPED: Banks not supported
Puxing PX-2R Detect PASSED: All tests
Puxing PX-2R Settings SKIPPED: Settings not supported
Puxing PX-2R Clone PASSED: All tests
Puxing PX-2R Edges PASSED: All tests
Puxing PX-2R BruteForce PASSED: All tests
Puxing PX-2R CopyAll PASSED: All tests
Puxing PX-2R Banks SKIPPED: Banks not supported
Puxing PX-777 Detect PASSED: All tests
Puxing PX-777 Settings SKIPPED: Settings not supported
Puxing PX-777 Clone PASSED: All tests
Puxing PX-777 Edges PASSED: All tests
Puxing PX-777 BruteForce PASSED: All tests
Puxing PX-777 CopyAll PASSED: All tests
Puxing PX-777 Banks SKIPPED: Banks not supported
Sainsonic AP510 Detect PASSED: All tests
Sainsonic AP510 Settings PASSED: All tests
Sainsonic AP510 Clone PASSED: All tests
Sainsonic AP510 Edges PASSED: All tests
Sainsonic AP510 BruteForce PASSED: All tests
Sainsonic AP510 CopyAll PASSED: All tests
Sainsonic AP510 Banks SKIPPED: Banks not supported
TYT TH-9800 Detect PASSED: All tests
TYT TH-9800 Settings PASSED: All tests
TYT TH-9800 Clone PASSED: All tests
TYT TH-9800 Edges PASSED: All tests
TYT TH-9800 BruteForce PASSED: All tests
TYT TH-9800 CopyAll PASSED: All tests
TYT TH-9800 Banks SKIPPED: Banks not supported
TYT TH-UV3R Detect PASSED: All tests
TYT TH-UV3R Settings SKIPPED: Settings not supported
TYT TH-UV3R Clone PASSED: All tests
TYT TH-UV3R Edges PASSED: All tests
TYT TH-UV3R BruteForce PASSED: All tests
TYT TH-UV3R CopyAll PASSED: All tests
TYT TH-UV3R Banks SKIPPED: Banks not supported
TYT TH-UVF1 Detect PASSED: All tests
TYT TH-UVF1 Settings PASSED: All tests
TYT TH-UVF1 Clone PASSED: All tests
TYT TH-UVF1 Edges PASSED: All tests
TYT TH-UVF1 BruteForce PASSED: All tests
TYT TH-UVF1 CopyAll PASSED: All tests
TYT TH-UVF1 Banks SKIPPED: Banks not supported
Vertex VXA-700 Detect PASSED: All tests
Vertex VXA-700 Settings SKIPPED: Settings not supported
Vertex VXA-700 Clone PASSED: All tests
Vertex VXA-700 Edges PASSED: All tests
Vertex VXA-700 BruteForce PASSED: All tests
Vertex VXA-700 CopyAll PASSED: All tests
Vertex VXA-700 Banks SKIPPED: Banks not supported
Wouxun KG-816 Detect PASSED: All tests
Wouxun KG-816 Settings PASSED: All tests
Wouxun KG-816 Clone PASSED: All tests
Wouxun KG-816 Edges PASSED: All tests
Wouxun KG-816 BruteForce PASSED: All tests
Wouxun KG-816 CopyAll PASSED: All tests
Wouxun KG-816 Banks SKIPPED: Banks not supported
Wouxun KG-818 Detect PASSED: All tests
Wouxun KG-818 Settings PASSED: All tests
Wouxun KG-818 Clone PASSED: All tests
Wouxun KG-818 Edges PASSED: All tests
Wouxun KG-818 BruteForce PASSED: All tests
Wouxun KG-818 CopyAll PASSED: All tests
Wouxun KG-818 Banks SKIPPED: Banks not supported
Wouxun KG-UV6 Detect PASSED: All tests
Wouxun KG-UV6 Settings PASSED: All tests
Wouxun KG-UV6 Clone PASSED: All tests
Wouxun KG-UV6 Edges PASSED: All tests
Wouxun KG-UV6 BruteForce PASSED: All tests
Wouxun KG-UV6 CopyAll PASSED: All tests
Wouxun KG-UV6 Banks SKIPPED: Banks not supported
Wouxun KG-UV8D Detect PASSED: All tests
Wouxun KG-UV8D Settings PASSED: All tests
Wouxun KG-UV8D Clone PASSED: All tests
Wouxun KG-UV8D Edges PASSED: All tests
Wouxun KG-UV8D BruteForce PASSED: All tests
Wouxun KG-UV8D CopyAll PASSED: All tests
Wouxun KG-UV8D Banks SKIPPED: Banks not supported
Wouxun KG-UVD1P Detect PASSED: All tests
Wouxun KG-UVD1P Settings PASSED: All tests
Wouxun KG-UVD1P Clone PASSED: All tests
Wouxun KG-UVD1P Edges PASSED: All tests
Wouxun KG-UVD1P BruteForce PASSED: All tests
Wouxun KG-UVD1P CopyAll PASSED: All tests
Wouxun KG-UVD1P Banks SKIPPED: Banks not supported
Yaesu FT-1802M Detect PASSED: All tests
Yaesu FT-1802M Settings SKIPPED: Settings not supported
Yaesu FT-1802M Clone PASSED: All tests
Yaesu FT-1802M Edges PASSED: All tests
Yaesu FT-1802M BruteForce PASSED: All tests
Yaesu FT-1802M CopyAll PASSED: All tests
Yaesu FT-1802M Banks SKIPPED: Banks not supported
Yaesu FT-1D R Detect PASSED: All tests
Yaesu FT-1D R Settings PASSED: All tests
Yaesu FT-1D R Clone PASSED: All tests
Yaesu FT-1D R Edges PASSED: All tests
Yaesu FT-1D R BruteForce PASSED: All tests
Yaesu FT-1D R CopyAll PASSED: All tests
Yaesu FT-1D R Banks PASSED: All tests
Yaesu FT-2800M Detect PASSED: All tests
Yaesu FT-2800M Settings SKIPPED: Settings not supported
Yaesu FT-2800M Clone PASSED: All tests
Yaesu FT-2800M Edges PASSED: All tests
Yaesu FT-2800M BruteForce PASSED: All tests
Yaesu FT-2800M CopyAll PASSED: All tests
Yaesu FT-2800M Banks SKIPPED: Banks not supported
Yaesu FT-60 Detect PASSED: All tests
Yaesu FT-60 Settings PASSED: All tests
Yaesu FT-60 Clone PASSED: All tests
Yaesu FT-60 Edges PASSED: All tests
Yaesu FT-60 BruteForce PASSED: All tests
Yaesu FT-60 CopyAll PASSED: All tests
Yaesu FT-60 Banks PASSED: All tests
Yaesu FT-7800/7900 Detect PASSED: All tests
Yaesu FT-7800/7900 Settings PASSED: All tests
Yaesu FT-7800/7900 Clone PASSED: All tests
Yaesu FT-7800/7900 Edges PASSED: All tests
Yaesu FT-7800/7900 BruteForce PASSED: All tests
Yaesu FT-7800/7900 CopyAll PASSED: All tests
Yaesu FT-7800/7900 Banks PASSED: All tests
Yaesu FT-817 Detect PASSED: All tests
Yaesu FT-817 Settings PASSED: All tests
Yaesu FT-817 Clone PASSED: All tests
Yaesu FT-817 Edges PASSED: All tests
Yaesu FT-817 BruteForce PASSED: All tests
Yaesu FT-817 CopyAll PASSED: All tests
Yaesu FT-817 Banks SKIPPED: Banks not supported
Yaesu FT-817ND Detect PASSED: All tests
Yaesu FT-817ND Settings PASSED: All tests
Yaesu FT-817ND Clone PASSED: All tests
Yaesu FT-817ND Edges PASSED: All tests
Yaesu FT-817ND BruteForce PASSED: All tests
Yaesu FT-817ND CopyAll PASSED: All tests
Yaesu FT-817ND Banks SKIPPED: Banks not supported
Yaesu FT-817ND (US) Detect PASSED: All tests
Yaesu FT-817ND (US) Settings PASSED: All tests
Yaesu FT-817ND (US) Clone PASSED: All tests
Yaesu FT-817ND (US) Edges PASSED: All tests
Yaesu FT-817ND (US) BruteForce PASSED: All tests
Yaesu FT-817ND (US) CopyAll PASSED: All tests
Yaesu FT-817ND (US) Banks SKIPPED: Banks not supported
Yaesu FT-857/897 Detect PASSED: All tests
Yaesu FT-857/897 Settings PASSED: All tests
Yaesu FT-857/897 Clone PASSED: All tests
Yaesu FT-857/897 Edges PASSED: All tests
Yaesu FT-857/897 BruteForce PASSED: All tests
Yaesu FT-857/897 CopyAll PASSED: All tests
Yaesu FT-857/897 Banks SKIPPED: Banks not supported
Yaesu FT-857/897 (U Detect PASSED: All tests
Yaesu FT-857/897 (U Settings PASSED: All tests
Yaesu FT-857/897 (U Clone PASSED: All tests
Yaesu FT-857/897 (U Edges PASSED: All tests
Yaesu FT-857/897 (U BruteForce PASSED: All tests
Yaesu FT-857/897 (U CopyAll PASSED: All tests
Yaesu FT-857/897 (U Banks SKIPPED: Banks not supported
Yaesu FT-8800 Left Detect PASSED: All tests
Yaesu FT-8800 Left Settings SKIPPED: Settings not supported
Yaesu FT-8800 Left Clone PASSED: All tests
Yaesu FT-8800 Left Edges PASSED: All tests
Yaesu FT-8800 Left BruteForce PASSED: All tests
Yaesu FT-8800 Left CopyAll PASSED: All tests
Yaesu FT-8800 Left Banks PASSED: All tests
Yaesu FT-8800 Right Detect PASSED: All tests
Yaesu FT-8800 Right Settings SKIPPED: Settings not supported
Yaesu FT-8800 Right Clone PASSED: All tests
Yaesu FT-8800 Right Edges PASSED: All tests
Yaesu FT-8800 Right BruteForce PASSED: All tests
Yaesu FT-8800 Right CopyAll PASSED: All tests
Yaesu FT-8800 Right Banks PASSED: All tests
Yaesu FT-8900 Detect PASSED: All tests
Yaesu FT-8900 Settings SKIPPED: Settings not supported
Yaesu FT-8900 Clone PASSED: All tests
Yaesu FT-8900 Edges PASSED: All tests
Yaesu FT-8900 BruteForce PASSED: All tests
Yaesu FT-8900 CopyAll PASSED: All tests
Yaesu FT-8900 Banks SKIPPED: Banks not supported
Yaesu FTM-350 Left Detect PASSED: All tests
Yaesu FTM-350 Left Settings PASSED: All tests
Yaesu FTM-350 Left Clone PASSED: All tests
Yaesu FTM-350 Left Edges PASSED: All tests
Yaesu FTM-350 Left BruteForce PASSED: All tests
Yaesu FTM-350 Left CopyAll PASSED: All tests
Yaesu FTM-350 Left Banks SKIPPED: Banks not supported
Yaesu FTM-350 Right Detect PASSED: All tests
Yaesu FTM-350 Right Settings SKIPPED: Settings not supported
Yaesu FTM-350 Right Clone PASSED: All tests
Yaesu FTM-350 Right Edges PASSED: All tests
Yaesu FTM-350 Right BruteForce PASSED: All tests
Yaesu FTM-350 Right CopyAll PASSED: All tests
Yaesu FTM-350 Right Banks SKIPPED: Banks not supported
Yaesu VX-2 Detect PASSED: All tests
Yaesu VX-2 Settings PASSED: All tests
Yaesu VX-2 Clone PASSED: All tests
Yaesu VX-2 Edges PASSED: All tests
Yaesu VX-2 BruteForce PASSED: All tests
Yaesu VX-2 CopyAll PASSED: All tests
Yaesu VX-2 Banks PASSED: All tests
Yaesu VX-3 Detect PASSED: All tests
Yaesu VX-3 Settings PASSED: All tests
Yaesu VX-3 Clone PASSED: All tests
Yaesu VX-3 Edges PASSED: All tests
Yaesu VX-3 BruteForce PASSED: All tests
Yaesu VX-3 CopyAll PASSED: All tests
Yaesu VX-3 Banks PASSED: All tests
Yaesu VX-5 Detect PASSED: All tests
Yaesu VX-5 Settings SKIPPED: Settings not supported
Yaesu VX-5 Clone PASSED: All tests
Yaesu VX-5 Edges PASSED: All tests
Yaesu VX-5 BruteForce PASSED: All tests
Yaesu VX-5 CopyAll PASSED: All tests
Yaesu VX-5 Banks PASSED: All tests
Yaesu VX-6 Detect PASSED: All tests
Yaesu VX-6 Settings SKIPPED: Settings not supported
Yaesu VX-6 Clone PASSED: All tests
Yaesu VX-6 Edges PASSED: All tests
Yaesu VX-6 BruteForce PASSED: All tests
Yaesu VX-6 CopyAll PASSED: All tests
Yaesu VX-6 Banks PASSED: All tests
Yaesu VX-7 Detect PASSED: All tests
Yaesu VX-7 Settings SKIPPED: Settings not supported
Yaesu VX-7 Clone PASSED: All tests
Yaesu VX-7 Edges PASSED: All tests
Yaesu VX-7 BruteForce PASSED: All tests
Yaesu VX-7 CopyAll PASSED: All tests
Yaesu VX-7 Banks PASSED: All tests
Yaesu VX-8 R Detect PASSED: All tests
Yaesu VX-8 R Settings SKIPPED: Settings not supported
Yaesu VX-8 R Clone PASSED: All tests
Yaesu VX-8 R Edges PASSED: All tests
Yaesu VX-8 R BruteForce PASSED: All tests
Yaesu VX-8 R CopyAll PASSED: All tests
Yaesu VX-8 R Banks PASSED: All tests
----------------------------------------------------------------------
Results:
TOTAL : 441
FAILED : 0
SKIPPED: 70
PASSED : 371
CRASHED: 0
Registered Icom_IC-2820H = IC2820Radio
Registered TYT_TH-UVF8D = TYTUVF8DRadio
Registered AnyTone_5888UV = AnyTone5888UVRadio
Registered Intek_HR-2040 = IntekHR2040Radio
Registered Polmar_DB-50M = PolmarDB50MRadio
Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
Registered Icom_IC-2200H = IC2200Radio
Registered Yaesu_FT-2800M = FT2800Radio
Registered Yaesu_VX-3 = VX3Radio
Registered Icom_IC-2100H = IC2100Radio
Registered Yaesu_FTM-350 = FTM350Radio
Registered Icom_IC-V82_U82 = ICx8xRadio
Registered Yaesu_VX-6 = VX6Radio
Registered Yaesu_VX-5 = VX5Radio
Registered Yaesu_FT-60 = FT60Radio
Registered Yaesu_VX-7 = VX7Radio
Registered Sainsonic_AP510 = AP510Radio
Registered Baofeng_UV-5R = BaofengUV5R
Registered Baofeng_F-11 = BaofengF11Radio
Registered Baofeng_UV-82 = BaofengUV82Radio
Registered Baofeng_UV-6 = BaofengUV6Radio
Registered Intek_KT-980HP = IntekKT980Radio
Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
Registered Yaesu_FT-1802M = FT1802Radio
Registered Kenwood_TK-7102 = KenwoodTK7102Radio
Registered Kenwood_TK-8102 = KenwoodTK8102Radio
Registered Kenwood_TK-7108 = KenwoodTK7108Radio
Registered Kenwood_TK-8108 = KenwoodTK8108Radio
Registered Icom_ID-31A = ID31Radio
Registered Icom_ID-51A = ID51Radio
Registered Icom_IC-2720H = IC2720Radio
Registered Icom_IC-T8A = ICT8ARadio
Registered Wouxun_KG-UVD1P = KGUVD1PRadio
Registered Wouxun_KG-UV6 = KGUV6DRadio
Registered Wouxun_KG-816 = KG816Radio
Registered Wouxun_KG-818 = KG818Radio
Registered TYT_TH-UVF1 = TYTTHUVF1Radio
Registered Yaesu_FT-90 = FT90Radio
Registered Generic_CSV = CSVRadio
Registered Commander_KG-UV = CommanderCSVRadio
Registered RT_Systems_CSV = RTCSVRadio
Registered Kenwood_ITM = ITMRadio
Registered TYT_TH-9800_File = TYTTH9800File
Registered TYT_TH-9800 = TYTTH9800Radio
Registered Alinco_DR03T = DR03Radio
Registered Alinco_DR06T = DR06Radio
Registered Alinco_DR135T = DR135Radio
Registered Alinco_DR235T = DR235Radio
Registered Alinco_DR435T = DR435Radio
Registered Alinco_DJ596 = DJ596Radio
Registered Jetstream_JT220M = JT220MRadio
Registered Alinco_DJ175 = DJ175Radio
Registered Kenwood_TH-D7 = THD7Radio
Registered Kenwood_TH-D7G = THD7GRadio
Registered Kenwood_TM-D700 = TMD700Radio
Registered Kenwood_TM-V7 = TMV7Radio
Registered Kenwood_TM-G707 = TMG707Radio
Registered Kenwood_TH-G71 = THG71Radio
Registered Kenwood_TH-F6 = THF6ARadio
Registered Kenwood_TH-F7 = THF7ERadio
Registered Kenwood_TM-D710 = TMD710Radio
Registered Kenwood_TH-D72_live_mode = THD72Radio
Registered Kenwood_TM-V71 = TMV71Radio
Registered Kenwood_TM-D710G = TMD710GRadio
Registered Kenwood_TH-K2 = THK2Radio
Registered Kenwood_TM-271 = TM271Radio
Registered Kenwood_TM-281 = TM281Radio
Registered Kenwood_TM-471 = TM471Radio
Registered Yaesu_FT-1D_R = FT1Radio
Registered Wouxun_KG-UV8D = KGUV8DRadio
Registered Yaesu_VX-8_R = VX8Radio
Registered Yaesu_VX-8_DR = VX8DRadio
Registered Yaesu_VX-8_GE = VX8GERadio
Registered Icom_IC-T7H = ICT7HRadio
Registered Icom_IC-Q7A = ICQ7Radio
Registered Baofeng_UV-B5 = BaofengUVB5
Registered Generic_XML = XMLRadio
Registered Kenwood_HMK = HMKRadio
Registered Kenwood_TH-D72_clone_mode = THD72Radio
Registered Icom_IC-91_92AD = IC9xRadio
Registered Icom_IC-T70 = ICT70Radio
Registered Icom_IC-208H = IC208Radio
Registered Leixen_VV-898 = LeixenVV898Radio
Registered Jetstream_JT270M = JetstreamJT270MRadio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
Registered Baofeng_BF-888 = H777Radio
Registered Yaesu_FT-7800_7900 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered KYD_NC-630A = NC630aRadio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Yaesu_VX-170 = VX170Radio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Registered TYT_TH-UV3R = TYTUV3RRadio
Patch 'tip' is OK
================================================
Tests OK
Email was triggered for: Success
Sending email for trigger: Success
1
0

[chirp_devel] [PATCH] [th9800] change name/freq display behavior to be automatic #1353
by Jens Jensen 31 Jan '15
by Jens Jensen 31 Jan '15
31 Jan '15
# HG changeset patch
# User Jens Jensen <af5mi(a)yahoo.com>
# Date 1422537841 21600
# Thu Jan 29 07:24:01 2015 -0600
# Node ID f1e77e243ab445a8d0e0b44f6d76fde39c2c180c
# Parent ebeb7fdb70a7b00b5424394b0a7731b379ea997b
[th9800] change name/freq display behavior to be automatic #1353
Add automatic behavior so that channel name is displayed if it is set, and
freq is show if name is blank. Still allows manual override by user.
diff -r ebeb7fdb70a7 -r f1e77e243ab4 chirp/th9800.py
--- a/chirp/th9800.py Sun Jan 25 08:38:55 2015 -0600
+++ b/chirp/th9800.py Thu Jan 29 07:24:01 2015 -0600
@@ -359,6 +359,21 @@
_mem.name = mem.name.ljust(6, "\xFF")
+ # autoset display to name if filled, else show frequency
+ if mem.extra:
+ # mem.extra only seems to be populated when called from edit panel
+ display = mem.extra["display"]
+ else:
+ display = None
+ if mem.name:
+ _mem.display = True
+ if display and not display.changed():
+ display.value = "Name"
+ else:
+ _mem.display = False
+ if display and not display.changed():
+ display.value = "Frequency"
+
_mem.scan = SCAN_MODES.index(mem.skip)
if mem.mode == "AM":
@@ -372,6 +387,8 @@
_mem.step = STEPS.index(mem.tuning_step)
for setting in mem.extra:
+ if CHIRP_DEBUG:
+ print "@set_mem:", setting.get_name(), setting.value
setattr(_mem, setting.get_name(), setting.value)
def get_settings(self):
2
3
# HG changeset patch
# User K. Arvanitis <kosta(a)alumni.uvic.ca>
# Date 1422692399 28800
# Parent cfa8a356cf3867cb3df35c7d73193285cc2b50d1
[PATCH] Updated Memory Edit View
This patch helps addres a concern some individuals were having
accessing the memory property page which contains some "extra"
memory settings which are not editable on the main treeview.
This change 1) modified the memory editor taskbar to include a button
which connects to the memory property page as well as icons for the
remaining buttons, 2) reogranized the menu system to include a few
more items, such as "select all" and a accel ('r') to properties,
and 3) renamed a few memory entries and dialogs to be more slightly
more consitent.
Access to the memory property page should now be slightly improved and
more accessible to those people whom are not used to functioning with
a 2-button mouse button.
Feature #2273
diff -r cfa8a356cf38 -r 5e6f8509ab1d chirpui/mainapp.py
--- a/chirpui/mainapp.py Thu Jan 29 07:14:39 2015 -0800
+++ b/chirpui/mainapp.py Sat Jan 31 00:19:59 2015 -0800
@@ -112,7 +112,8 @@
for i in ["export", "close", "columns", "irbook", "irfinder",
"move_up", "move_dn", "exchange", "iradioreference",
- "cut", "copy", "paste", "delete", "viewdeveloper"]:
+ "cut", "copy", "paste", "delete", "viewdeveloper",
+ "all", "properties"]:
set_action_sensitive(i, eset is not None)
def ev_status(self, editorset, msg):
@@ -1219,7 +1220,7 @@
radio_name = "%s %s %s" % (eset.rthread.radio.VENDOR,
eset.rthread.radio.MODEL,
eset.rthread.radio.VARIANT)
- d = gtk.Dialog(title=_("Select Columns"),
+ d = gtk.Dialog(title=_("Choose Columns"),
parent=self,
buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
@@ -1418,8 +1419,8 @@
self.do_toggle_no_smart_tmode(_action)
elif action == "developer":
self.do_toggle_developer(_action)
- elif action in ["cut", "copy", "paste", "delete",
- "move_up", "move_dn", "exchange",
+ elif action in ["cut", "copy", "paste", "delete", "all",
+ "move_up", "move_dn", "exchange", "properties",
"devshowraw", "devdiffraw"]:
self.get_current_editorset().get_current_editor().hotkey(_action)
elif action == "devdifftab":
@@ -1458,12 +1459,17 @@
<menuitem action="paste"/>
<menuitem action="delete"/>
<separator/>
+ <menuitem action="all"/>
+ <separator/>
<menuitem action="move_up"/>
<menuitem action="move_dn"/>
<menuitem action="exchange"/>
+ <separator/>
+ <menuitem action="properties"/>
</menu>
<menu action="view">
<menuitem action="columns"/>
+ <separator/>
<menuitem action="hide_unused"/>
<menuitem action="no_smart_tmode"/>
<menu action="viewdeveloper">
@@ -1471,11 +1477,13 @@
<menuitem action="devdiffraw"/>
<menuitem action="devdifftab"/>
</menu>
+ <separator/>
<menuitem action="language"/>
</menu>
<menu action="radio" name="radio">
<menuitem action="download"/>
<menuitem action="upload"/>
+ <separator/>
<menu action="importsrc" name="importsrc">
<menuitem action="iradioreference"/>
<menuitem action="irbook"/>
@@ -1509,11 +1517,11 @@
('file', None, _("_File"), None, None, self.mh),
('new', gtk.STOCK_NEW, None, None, None, self.mh),
('open', gtk.STOCK_OPEN, None, None, None, self.mh),
- ('openstock', None, _("Open stock config"), None, None, self.mh),
+ ('openstock', None, _("Open Stock Config"), None, None, self.mh),
('recent', None, _("_Recent"), None, None, self.mh),
('save', gtk.STOCK_SAVE, None, None, None, self.mh),
('saveas', gtk.STOCK_SAVE_AS, None, None, None, self.mh),
- ('loadmod', None, _("Load Module"), None, None, self.mh),
+ ('loadmod', None, _("Load Module..."), None, None, self.mh),
('close', gtk.STOCK_CLOSE, None, None, None, self.mh),
('quit', gtk.STOCK_QUIT, None, None, None, self.mh),
('edit', None, _("_Edit"), None, None, self.mh),
@@ -1521,27 +1529,29 @@
('copy', None, _("_Copy"), "<Ctrl>c", None, self.mh),
('paste', None, _("_Paste"), "<Ctrl>v", None, self.mh),
('delete', None, _("_Delete"), "Delete", None, self.mh),
+ ('all', None, _("Select _All"), None, None, self.mh),
('move_up', None, _("Move _Up"), "<Control>Up", None, self.mh),
('move_dn', None, _("Move Dow_n"), "<Control>Down", None, self.mh),
('exchange', None, _("E_xchange"), "<Control><Shift>x", None, self.mh),
+ ('properties', None, _("P_roperties"), None, None, self.mh),
('view', None, _("_View"), None, None, self.mh),
- ('columns', None, _("Columns"), None, None, self.mh),
+ ('columns', None, _("C_hoose Columns..."), None, None, self.mh),
('viewdeveloper', None, _("Developer"), None, None, self.mh),
('devshowraw', None, _('Show raw memory'), "<Control><Shift>r", None, self.mh),
('devdiffraw', None, _("Diff raw memories"), "<Control><Shift>d", None, self.mh),
('devdifftab', None, _("Diff tabs"), "<Control><Shift>t", None, self.mh),
- ('language', None, _("Change language"), None, None, self.mh),
+ ('language', None, _("Change Language..."), None, None, self.mh),
('radio', None, _("_Radio"), None, None, self.mh),
('download', None, _("Download From Radio"), "<Alt>d", None, self.mh),
('upload', None, _("Upload To Radio"), "<Alt>u", None, self.mh),
- ('import', None, _("Import"), "<Alt>i", None, self.mh),
- ('export', None, _("Export"), "<Alt>x", None, self.mh),
- ('importsrc', None, _("Import from data source"), None, None, self.mh),
+ ('import', None, _("Import..."), "<Alt>i", None, self.mh),
+ ('export', None, _("Export..."), "<Alt>x", None, self.mh),
+ ('importsrc', None, _("Import Data Source"), None, None, self.mh),
('iradioreference', None, _("RadioReference.com"), None, None, self.mh),
('irfinder', None, _("RFinder"), None, None, self.mh),
('irbook', None, _("RepeaterBook"), None, None, self.mh),
('ipr', None, _("przemienniki.net"), None, None, self.mh),
- ('querysrc', None, _("Query data source"), None, None, self.mh),
+ ('querysrc', None, _("Query Data Source"), None, None, self.mh),
('qradioreference', None, _("RadioReference.com"), None, None, self.mh),
('qrfinder', None, _("RFinder"), None, None, self.mh),
('qpr', None, _("przemienniki.net"), None, None, self.mh),
@@ -1549,7 +1559,7 @@
('export_chirp', None, _("CHIRP Native File"), None, None, self.mh),
('export_csv', None, _("CSV File"), None, None, self.mh),
('stock', None, _("Import from stock config"), None, None, self.mh),
- ('channel_defaults', None, _("Channel defaults"), None, None, self.mh),
+ ('channel_defaults', None, _("Reset Channel Defaults"), None, None, self.mh),
('cancelq', gtk.STOCK_STOP, None, "Escape", None, self.mh),
('help', None, _('Help'), None, None, self.mh),
('about', gtk.STOCK_ABOUT, None, None, None, self.mh),
diff -r cfa8a356cf38 -r 5e6f8509ab1d chirpui/memdetail.py
--- a/chirpui/memdetail.py Thu Jan 29 07:14:39 2015 -0800
+++ b/chirpui/memdetail.py Sat Jan 31 00:19:59 2015 -0800
@@ -193,8 +193,6 @@
self.vbox.pack_start(sw, 1, 1, 1)
tab.show()
- row = 0
-
def _err(name, msg):
try:
_img = self._editors[name][2]
@@ -210,6 +208,7 @@
self.set_response_sensitive(gtk.RESPONSE_OK,
True not in self._errors)
+ row = 0
for name in self._order:
labeltxt, editorcls, data = self._elements[name]
@@ -235,13 +234,10 @@
row += 1
self._order.append(name)
- def _title(self):
- return _("Edit Memory #{num}").format(num=self._memory.number)
-
def __init__(self, features, memory, parent=None):
self._memory = memory
gtk.Dialog.__init__(self,
- title=self._title(),
+ title="Memory Properties",
flags=gtk.DIALOG_MODAL,
parent=parent,
buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
@@ -327,7 +323,7 @@
if isinstance(msg, chirp_common.ValidationError):
errors.append(msg)
if errors:
- common.show_error_text(_("Memory validation failed:"),
+ common.show_error_text(_("Memory Validation Failed:"),
os.linesep +
os.linesep.join(errors))
self.emit_stop_by_name('response')
@@ -337,9 +333,6 @@
return self._memory
class MultiMemoryDetailEditor(MemoryDetailEditor):
- def _title(self):
- return _("Edit Multiple Memories")
-
def __init__(self, features, memory, parent=None):
self._selections = dict()
super(MultiMemoryDetailEditor, self).__init__(features, memory, parent)
diff -r cfa8a356cf38 -r 5e6f8509ab1d chirpui/memedit.py
--- a/chirpui/memedit.py Thu Jan 29 07:14:39 2015 -0800
+++ b/chirpui/memedit.py Sat Jan 31 00:19:59 2015 -0800
@@ -524,7 +524,7 @@
return True # We changed memories
- def _delete_rows_and_shift(self, paths, all=False):
+ def _remove_rows_and_shift(self, paths, all=False):
iter = self.store.get_iter(paths[0])
starting_loc, = self.store.get(iter, self.col(_("Loc")))
for i in range(0, len(paths)):
@@ -780,9 +780,9 @@
elif action == "delete":
changed = self._delete_rows(paths)
elif action == "delete_s":
- changed = self._delete_rows_and_shift(paths)
+ changed = self._remove_rows_and_shift(paths)
elif action == "delete_sall":
- changed = self._delete_rows_and_shift(paths, all=True)
+ changed = self._remove_rows_and_shift(paths, all=True)
elif action in ["move_up", "move_dn"]:
changed = self._move_up_down(paths, action)
elif action == "exchange":
@@ -791,11 +791,13 @@
changed = self.copy_selection(action=="cut")
elif action == "paste":
changed = self.paste_selection()
+ elif action == "all":
+ self._select_all()
elif action == "devshowraw":
self._show_raw(cur_pos)
elif action == "devdiffraw":
self._diff_raw(paths)
- elif action == "edit":
+ elif action == "properties":
job = common.RadioJob(self.edit_memory, "get_memory", cur_pos)
job.set_cb_args(selected)
self.rthread.submit(job)
@@ -828,11 +830,18 @@
menu_xml = """
<ui>
<popup name="Menu">
- <menuitem action="edit"/>
- <menuitem action="insert_prev"/>
- <menuitem action="insert_next"/>
- <menu action="deletes">
- <menuitem action="delete"/>
+ <menuitem action="cut"/>
+ <menuitem action="copy"/>
+ <menuitem action="paste"/>
+ <menuitem action="delete"/>
+ <separator/>
+ <menuitem action="all"/>
+ <separator/>
+ <menu action="insert">
+ <menuitem action="insert_prev"/>
+ <menuitem action="insert_next"/>
+ </menu>
+ <menu action="remove">
<menuitem action="delete_s"/>
<menuitem action="delete_sall"/>
</menu>
@@ -840,9 +849,7 @@
<menuitem action="move_dn"/>
<menuitem action="exchange"/>
<separator/>
- <menuitem action="cut"/>
- <menuitem action="copy"/>
- <menuitem action="paste"/>
+ <menuitem action="properties"/>
%s
</popup>
</ui>
@@ -854,19 +861,21 @@
istwo = len(paths) == 2
actions = [
- ("edit", _("Edit")),
- ("insert_prev", _("Insert row above")),
- ("insert_next", _("Insert row below")),
- ("deletes", _("Delete")),
- ("delete", issingle and _("this memory") or _("these memories")),
+ ("properties", _("P_roperties")),
+ ("insert", _("Insert")),
+ ("insert_prev", _("Row Above")),
+ ("insert_next", _("Row Below")),
+ ("remove", _("Remove")),
("delete_s", _("...and shift block up")),
("delete_sall", _("...and shift all memories up")),
- ("move_up", _("Move up")),
- ("move_dn", _("Move down")),
- ("exchange", _("Exchange memories")),
+ ("move_up", _("Move Up")),
+ ("move_dn", _("Move Down")),
+ ("exchange", _("Exchange Memories")),
("cut", _("Cut")),
("copy", _("Copy")),
("paste", _("Paste")),
+ ("delete", _("Delete")),
+ ("all", _("Select All")),
("devshowraw", _("Show Raw Memory")),
("devdiffraw", _("Diff Raw Memories")),
]
@@ -1153,7 +1162,7 @@
def make_controls(self, min, max):
hbox = gtk.HBox(False, 2)
- lab = gtk.Label(_("Memory range:"))
+ lab = gtk.Label(_("Memory Range:"))
lab.show()
hbox.pack_start(lab, 0, 0, 0)
@@ -1180,11 +1189,22 @@
hi.show()
hbox.pack_start(hi, 0, 0, 0)
- refresh = gtk.Button(_("Go"))
+ refresh = gtk.Button()
+ refresh.set_relief(gtk.RELIEF_NONE)
+ image = gtk.Image()
+ image.set_from_stock(gtk.STOCK_REFRESH, gtk.ICON_SIZE_MENU)
+ image.show()
+ label = gtk.Label(_("Refresh"))
+ label.show()
+ box = gtk.HBox(False, 2)
+ box.pack_start(image, 0, 0, 0)
+ box.pack_start(label, 0, 0, 0)
+ box.show()
+ refresh.add(box)
+ refresh.connect("clicked", lambda x: self.prefill())
refresh.show()
- refresh.connect("clicked", lambda x: self.prefill())
hbox.pack_start(refresh, 0, 0, 0)
-
+
def activate_go(widget):
refresh.clicked()
@@ -1200,23 +1220,44 @@
sep = gtk.VSeparator()
sep.show()
- sep.set_size_request(20, -1)
- hbox.pack_start(sep, 0, 0, 0)
+ hbox.pack_start(sep, 0, 0, 2)
- showspecial = gtk.CheckButton(_("Special Channels"))
+ showspecial = gtk.ToggleButton(_("Special Channels"))
+ showspecial.set_relief(gtk.RELIEF_NONE)
showspecial.set_active(self.show_special)
showspecial.connect("toggled",
lambda x: self.set_show_special(x.get_active()))
showspecial.show()
hbox.pack_start(showspecial, 0, 0, 0)
-
- showempty = gtk.CheckButton(_("Show Empty"))
+
+ showempty = gtk.ToggleButton(_("Show Empty"))
+ showempty.set_relief(gtk.RELIEF_NONE)
showempty.set_active(self.show_empty);
showempty.connect("toggled",
lambda x: self.set_show_empty(x.get_active()))
showempty.show()
hbox.pack_start(showempty, 0, 0, 0)
+ sep = gtk.VSeparator()
+ sep.show()
+ hbox.pack_start(sep, 0, 0, 2)
+
+ edit = gtk.Button()
+ edit.set_relief(gtk.RELIEF_NONE)
+ image = gtk.Image()
+ image.set_from_stock(gtk.STOCK_EXECUTE, gtk.ICON_SIZE_MENU)
+ image.show()
+ label = gtk.Label(_("Properties"))
+ label.show()
+ box = gtk.HBox(False, 2)
+ box.pack_start(image, 0, 0, 0)
+ box.pack_start(label, 0, 0, 0)
+ box.show()
+ edit.add(box)
+ edit.connect("clicked", lambda x: self.hotkey(gtk.Action("properties", "", "", 0)))
+ edit.show()
+ hbox.pack_start(edit, 0, 0, 0)
+
hbox.show()
return hbox
@@ -1485,6 +1526,9 @@
clipboard = gtk.Clipboard(selection="PRIMARY")
clipboard.request_text(self._paste_selection)
+ def _select_all(self):
+ self.view.get_selection().select_all()
+
def prepare_close(self):
cols = self.view.get_columns()
self._config.set("column_order_%s" % self.__class__.__name__,
2
1
Tested changes:
[K. Arvanitis <kosta(a)alumni.uvic.ca>] [PATCH] Add Support for Settings UnitTest
Adding test coverage of the radio settings API.
Currently, all but one image passes the test (UV3R).
Feature #2235
[Dan Smith <dsmith(a)danplanet.com>] UV3R: Fix loading settings when band limits are uninitialized
Fixes #2275
Full log:
[...truncated 243 lines...]
Registered Icom_IC-Q7A = ICQ7Radio
Registered Baofeng_UV-B5 = BaofengUVB5
Registered Generic_XML = XMLRadio
Registered Kenwood_HMK = HMKRadio
Registered Kenwood_TH-D72_clone_mode = THD72Radio
Registered Icom_IC-91_92AD = IC9xRadio
Registered Icom_IC-T70 = ICT70Radio
Registered Icom_IC-208H = IC208Radio
Registered Leixen_VV-898 = LeixenVV898Radio
Registered Jetstream_JT270M = JetstreamJT270MRadio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
Registered Baofeng_BF-888 = H777Radio
Registered Yaesu_FT-7800_7900 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered KYD_NC-630A = NC630aRadio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Yaesu_VX-170 = VX170Radio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Registered TYT_TH-UV3R = TYTUV3RRadio
Alinco DJ175 Detect PASSED: All tests
Alinco DJ175 Settings SKIPPED: Settings not supported
Alinco DJ175 Clone PASSED: All tests
Alinco DJ175 Edges PASSED: All tests
Alinco DJ175 BruteForce PASSED: All tests
Alinco DJ175 CopyAll PASSED: All tests
Alinco DJ175 Banks SKIPPED: Banks not supported
Alinco DJ596 Detect PASSED: All tests
Alinco DJ596 Settings SKIPPED: Settings not supported
Alinco DJ596 Clone PASSED: All tests
Alinco DJ596 Edges PASSED: All tests
Alinco DJ596 BruteForce PASSED: All tests
Alinco DJ596 CopyAll PASSED: All tests
Alinco DJ596 Banks SKIPPED: Banks not supported
Alinco DR235T Detect PASSED: All tests
Alinco DR235T Settings SKIPPED: Settings not supported
Alinco DR235T Clone PASSED: All tests
Alinco DR235T Edges PASSED: All tests
Alinco DR235T BruteForce PASSED: All tests
Alinco DR235T CopyAll PASSED: All tests
Alinco DR235T Banks SKIPPED: Banks not supported
Baofeng BF-888 Detect PASSED: All tests
Baofeng BF-888 Settings PASSED: All tests
Baofeng BF-888 Clone PASSED: All tests
Baofeng BF-888 Edges PASSED: All tests
Baofeng BF-888 BruteForce PASSED: All tests
Baofeng BF-888 CopyAll PASSED: All tests
Baofeng BF-888 Banks SKIPPED: Banks not supported
Baofeng F-11 Detect PASSED: All tests
Baofeng F-11 Settings PASSED: All tests
Baofeng F-11 Clone PASSED: All tests
Baofeng F-11 Edges PASSED: All tests
Baofeng F-11 BruteForce PASSED: All tests
Baofeng F-11 CopyAll PASSED: All tests
Baofeng F-11 Banks SKIPPED: Banks not supported
Baofeng UV-3R Detect PASSED: All tests
Baofeng UV-3R Settings PASSED: All tests
Baofeng UV-3R Clone PASSED: All tests
Baofeng UV-3R Edges PASSED: All tests
Baofeng UV-3R BruteForce PASSED: All tests
Baofeng UV-3R CopyAll PASSED: All tests
Baofeng UV-3R Banks SKIPPED: Banks not supported
Baofeng UV-5R Detect PASSED: All tests
Baofeng UV-5R Settings PASSED: All tests
Baofeng UV-5R Clone PASSED: All tests
Baofeng UV-5R Edges PASSED: All tests
Baofeng UV-5R BruteForce PASSED: All tests
Baofeng UV-5R CopyAll PASSED: All tests
Baofeng UV-5R Banks SKIPPED: Banks not supported
Baofeng UV-B5 Detect PASSED: All tests
Baofeng UV-B5 Settings PASSED: All tests
Baofeng UV-B5 Clone PASSED: All tests
Baofeng UV-B5 Edges PASSED: All tests
Baofeng UV-B5 BruteForce PASSED: All tests
Baofeng UV-B5 CopyAll PASSED: All tests
Baofeng UV-B5 Banks SKIPPED: Banks not supported
Icom IC-208H Detect PASSED: All tests
Icom IC-208H Settings SKIPPED: Settings not supported
Icom IC-208H Clone PASSED: All tests
Icom IC-208H Edges PASSED: All tests
Icom IC-208H BruteForce PASSED: All tests
Icom IC-208H CopyAll PASSED: All tests
Icom IC-208H Banks PASSED: All tests
Icom IC-2100H Detect PASSED: All tests
Icom IC-2100H Settings SKIPPED: Settings not supported
Icom IC-2100H Clone PASSED: All tests
Icom IC-2100H Edges PASSED: All tests
Icom IC-2100H BruteForce PASSED: All tests
Icom IC-2100H CopyAll PASSED: All tests
Icom IC-2100H Banks SKIPPED: Banks not supported
Icom IC-2200H Detect PASSED: All tests
Icom IC-2200H Settings PASSED: All tests
Icom IC-2200H Clone PASSED: All tests
Icom IC-2200H Edges PASSED: All tests
Icom IC-2200H BruteForce PASSED: All tests
Icom IC-2200H CopyAll PASSED: All tests
Icom IC-2200H Banks PASSED: All tests
Icom IC-2720H Detect PASSED: All tests
Icom IC-2720H Settings SKIPPED: Settings not supported
Icom IC-2720H Clone PASSED: All tests
Icom IC-2720H Edges PASSED: All tests
Icom IC-2720H BruteForce PASSED: All tests
Icom IC-2720H CopyAll PASSED: All tests
Icom IC-2720H Banks PASSED: All tests
Icom IC-2820H Detect PASSED: All tests
Icom IC-2820H Settings PASSED: All tests
Icom IC-2820H Clone PASSED: All tests
Icom IC-2820H Edges PASSED: All tests
Icom IC-2820H BruteForce PASSED: All tests
Icom IC-2820H CopyAll PASSED: All tests
Icom IC-2820H Banks PASSED: All tests
Icom IC-Q7A Detect PASSED: All tests
Icom IC-Q7A Settings PASSED: All tests
Icom IC-Q7A Clone PASSED: All tests
Icom IC-Q7A Edges PASSED: All tests
Icom IC-Q7A BruteForce PASSED: All tests
Icom IC-Q7A CopyAll PASSED: All tests
Icom IC-Q7A Banks SKIPPED: Banks not supported
Icom IC-T70 Detect PASSED: All tests
Icom IC-T70 Settings SKIPPED: Settings not supported
Icom IC-T70 Clone PASSED: All tests
Icom IC-T70 Edges PASSED: All tests
Icom IC-T70 BruteForce PASSED: All tests
Icom IC-T70 CopyAll PASSED: All tests
Icom IC-T70 Banks PASSED: All tests
Icom IC-T7H Detect PASSED: All tests
Icom IC-T7H Settings SKIPPED: Settings not supported
Icom IC-T7H Clone PASSED: All tests
Icom IC-T7H Edges PASSED: All tests
Icom IC-T7H BruteForce PASSED: All tests
Icom IC-T7H CopyAll PASSED: All tests
Icom IC-T7H Banks SKIPPED: Banks not supported
Icom IC-T8A Detect PASSED: All tests
Icom IC-T8A Settings SKIPPED: Settings not supported
Icom IC-T8A Clone PASSED: All tests
Icom IC-T8A Edges PASSED: All tests
Icom IC-T8A BruteForce PASSED: All tests
Icom IC-T8A CopyAll PASSED: All tests
Icom IC-T8A Banks SKIPPED: Banks not supported
Icom IC-V82/U82 Detect PASSED: All tests
Icom IC-V82/U82 Settings SKIPPED: Settings not supported
Icom IC-V82/U82 Clone PASSED: All tests
Icom IC-V82/U82 Edges PASSED: All tests
Icom IC-V82/U82 BruteForce PASSED: All tests
Icom IC-V82/U82 CopyAll PASSED: All tests
Icom IC-V82/U82 Banks PASSED: All tests
Icom IC-W32A VHF Detect PASSED: All tests
Icom IC-W32A VHF Settings SKIPPED: Settings not supported
Icom IC-W32A VHF Clone PASSED: All tests
Icom IC-W32A VHF Edges PASSED: All tests
Icom IC-W32A VHF BruteForce PASSED: All tests
Icom IC-W32A VHF CopyAll PASSED: All tests
Icom IC-W32A VHF Banks SKIPPED: Banks not supported
Icom IC-W32A UHF Detect PASSED: All tests
Icom IC-W32A UHF Settings SKIPPED: Settings not supported
Icom IC-W32A UHF Clone PASSED: All tests
Icom IC-W32A UHF Edges PASSED: All tests
Icom IC-W32A UHF BruteForce PASSED: All tests
Icom IC-W32A UHF CopyAll PASSED: All tests
Icom IC-W32A UHF Banks SKIPPED: Banks not supported
Icom ID-31A Detect PASSED: All tests
Icom ID-31A Settings PASSED: All tests
Icom ID-31A Clone PASSED: All tests
Icom ID-31A Edges PASSED: All tests
Icom ID-31A BruteForce PASSED: All tests
Icom ID-31A CopyAll PASSED: All tests
Icom ID-31A Banks PASSED: All tests
Icom ID-51A Detect PASSED: All tests
Icom ID-51A Settings PASSED: All tests
Icom ID-51A Clone PASSED: All tests
Icom ID-51A Edges PASSED: All tests
Icom ID-51A BruteForce PASSED: All tests
Icom ID-51A CopyAll PASSED: All tests
Icom ID-51A Banks PASSED: All tests
Icom ID-800H v2 Detect PASSED: All tests
Icom ID-800H v2 Settings PASSED: All tests
Icom ID-800H v2 Clone PASSED: All tests
Icom ID-800H v2 Edges PASSED: All tests
Icom ID-800H v2 BruteForce PASSED: All tests
Icom ID-800H v2 CopyAll PASSED: All tests
Icom ID-800H v2 Banks PASSED: All tests
Icom ID-880H Detect PASSED: All tests
Icom ID-880H Settings PASSED: All tests
Icom ID-880H Clone PASSED: All tests
Icom ID-880H Edges PASSED: All tests
Icom ID-880H BruteForce PASSED: All tests
Icom ID-880H CopyAll PASSED: All tests
Icom ID-880H Banks PASSED: All tests
Jetstream JT220M Detect PASSED: All tests
Jetstream JT220M Settings SKIPPED: Settings not supported
Jetstream JT220M Clone PASSED: All tests
Jetstream JT220M Edges PASSED: All tests
Jetstream JT220M BruteForce PASSED: All tests
Jetstream JT220M CopyAll PASSED: All tests
Jetstream JT220M Banks SKIPPED: Banks not supported
Jetstream JT270M Detect PASSED: All tests
Jetstream JT270M Settings PASSED: All tests
Jetstream JT270M Clone PASSED: All tests
Jetstream JT270M Edges PASSED: All tests
Jetstream JT270M BruteForce PASSED: All tests
Jetstream JT270M CopyAll PASSED: All tests
Jetstream JT270M Banks SKIPPED: Banks not supported
Kenwood TH-D72 (clone Detect PASSED: All tests
Kenwood TH-D72 (clone Settings SKIPPED: Settings not supported
Kenwood TH-D72 (clone Clone PASSED: All tests
Kenwood TH-D72 (clone Edges PASSED: All tests
Kenwood TH-D72 (clone BruteForce PASSED: All tests
Kenwood TH-D72 (clone CopyAll PASSED: All tests
Kenwood TH-D72 (clone Banks SKIPPED: Banks not supported
Kenwood TK-8102 Detect PASSED: All tests
Kenwood TK-8102 Settings PASSED: All tests
Kenwood TK-8102 Clone PASSED: All tests
Kenwood TK-8102 Edges PASSED: All tests
Kenwood TK-8102 BruteForce PASSED: All tests
Kenwood TK-8102 CopyAll PASSED: All tests
Kenwood TK-8102 Banks SKIPPED: Banks not supported
Leixen VV-898 Detect PASSED: All tests
Leixen VV-898 Settings PASSED: All tests
Leixen VV-898 Clone PASSED: All tests
Leixen VV-898 Edges PASSED: All tests
Leixen VV-898 BruteForce PASSED: All tests
Leixen VV-898 CopyAll PASSED: All tests
Leixen VV-898 Banks SKIPPED: Banks not supported
Polmar DB-50M Detect PASSED: All tests
Polmar DB-50M Settings PASSED: All tests
Polmar DB-50M Clone PASSED: All tests
Polmar DB-50M Edges PASSED: All tests
Polmar DB-50M BruteForce PASSED: All tests
Polmar DB-50M CopyAll PASSED: All tests
Polmar DB-50M Banks SKIPPED: Banks not supported
Puxing PX-2R Detect PASSED: All tests
Puxing PX-2R Settings SKIPPED: Settings not supported
Puxing PX-2R Clone PASSED: All tests
Puxing PX-2R Edges PASSED: All tests
Puxing PX-2R BruteForce PASSED: All tests
Puxing PX-2R CopyAll PASSED: All tests
Puxing PX-2R Banks SKIPPED: Banks not supported
Puxing PX-777 Detect PASSED: All tests
Puxing PX-777 Settings SKIPPED: Settings not supported
Puxing PX-777 Clone PASSED: All tests
Puxing PX-777 Edges PASSED: All tests
Puxing PX-777 BruteForce PASSED: All tests
Puxing PX-777 CopyAll PASSED: All tests
Puxing PX-777 Banks SKIPPED: Banks not supported
Sainsonic AP510 Detect PASSED: All tests
Sainsonic AP510 Settings PASSED: All tests
Sainsonic AP510 Clone PASSED: All tests
Sainsonic AP510 Edges PASSED: All tests
Sainsonic AP510 BruteForce PASSED: All tests
Sainsonic AP510 CopyAll PASSED: All tests
Sainsonic AP510 Banks SKIPPED: Banks not supported
TYT TH-9800 Detect PASSED: All tests
TYT TH-9800 Settings PASSED: All tests
TYT TH-9800 Clone PASSED: All tests
TYT TH-9800 Edges PASSED: All tests
TYT TH-9800 BruteForce PASSED: All tests
TYT TH-9800 CopyAll PASSED: All tests
TYT TH-9800 Banks SKIPPED: Banks not supported
TYT TH-UV3R Detect PASSED: All tests
TYT TH-UV3R Settings SKIPPED: Settings not supported
TYT TH-UV3R Clone PASSED: All tests
TYT TH-UV3R Edges PASSED: All tests
TYT TH-UV3R BruteForce PASSED: All tests
TYT TH-UV3R CopyAll PASSED: All tests
TYT TH-UV3R Banks SKIPPED: Banks not supported
TYT TH-UVF1 Detect PASSED: All tests
TYT TH-UVF1 Settings PASSED: All tests
TYT TH-UVF1 Clone PASSED: All tests
TYT TH-UVF1 Edges PASSED: All tests
TYT TH-UVF1 BruteForce PASSED: All tests
TYT TH-UVF1 CopyAll PASSED: All tests
TYT TH-UVF1 Banks SKIPPED: Banks not supported
Vertex VXA-700 Detect PASSED: All tests
Vertex VXA-700 Settings SKIPPED: Settings not supported
Vertex VXA-700 Clone PASSED: All tests
Vertex VXA-700 Edges PASSED: All tests
Vertex VXA-700 BruteForce PASSED: All tests
Vertex VXA-700 CopyAll PASSED: All tests
Vertex VXA-700 Banks SKIPPED: Banks not supported
Wouxun KG-816 Detect PASSED: All tests
Wouxun KG-816 Settings PASSED: All tests
Wouxun KG-816 Clone PASSED: All tests
Wouxun KG-816 Edges PASSED: All tests
Wouxun KG-816 BruteForce PASSED: All tests
Wouxun KG-816 CopyAll PASSED: All tests
Wouxun KG-816 Banks SKIPPED: Banks not supported
Wouxun KG-818 Detect PASSED: All tests
Wouxun KG-818 Settings PASSED: All tests
Wouxun KG-818 Clone PASSED: All tests
Wouxun KG-818 Edges PASSED: All tests
Wouxun KG-818 BruteForce PASSED: All tests
Wouxun KG-818 CopyAll PASSED: All tests
Wouxun KG-818 Banks SKIPPED: Banks not supported
Wouxun KG-UV6 Detect PASSED: All tests
Wouxun KG-UV6 Settings PASSED: All tests
Wouxun KG-UV6 Clone PASSED: All tests
Wouxun KG-UV6 Edges PASSED: All tests
Wouxun KG-UV6 BruteForce PASSED: All tests
Wouxun KG-UV6 CopyAll PASSED: All tests
Wouxun KG-UV6 Banks SKIPPED: Banks not supported
Wouxun KG-UV8D Detect PASSED: All tests
Wouxun KG-UV8D Settings PASSED: All tests
Wouxun KG-UV8D Clone PASSED: All tests
Wouxun KG-UV8D Edges PASSED: All tests
Wouxun KG-UV8D BruteForce PASSED: All tests
Wouxun KG-UV8D CopyAll PASSED: All tests
Wouxun KG-UV8D Banks SKIPPED: Banks not supported
Wouxun KG-UVD1P Detect PASSED: All tests
Wouxun KG-UVD1P Settings PASSED: All tests
Wouxun KG-UVD1P Clone PASSED: All tests
Wouxun KG-UVD1P Edges PASSED: All tests
Wouxun KG-UVD1P BruteForce PASSED: All tests
Wouxun KG-UVD1P CopyAll PASSED: All tests
Wouxun KG-UVD1P Banks SKIPPED: Banks not supported
Yaesu FT-1802M Detect PASSED: All tests
Yaesu FT-1802M Settings SKIPPED: Settings not supported
Yaesu FT-1802M Clone PASSED: All tests
Yaesu FT-1802M Edges PASSED: All tests
Yaesu FT-1802M BruteForce PASSED: All tests
Yaesu FT-1802M CopyAll PASSED: All tests
Yaesu FT-1802M Banks SKIPPED: Banks not supported
Yaesu FT-1D R Detect PASSED: All tests
Yaesu FT-1D R Settings PASSED: All tests
Yaesu FT-1D R Clone PASSED: All tests
Yaesu FT-1D R Edges PASSED: All tests
Yaesu FT-1D R BruteForce PASSED: All tests
Yaesu FT-1D R CopyAll PASSED: All tests
Yaesu FT-1D R Banks PASSED: All tests
Yaesu FT-2800M Detect PASSED: All tests
Yaesu FT-2800M Settings SKIPPED: Settings not supported
Yaesu FT-2800M Clone PASSED: All tests
Yaesu FT-2800M Edges PASSED: All tests
Yaesu FT-2800M BruteForce PASSED: All tests
Yaesu FT-2800M CopyAll PASSED: All tests
Yaesu FT-2800M Banks SKIPPED: Banks not supported
Yaesu FT-60 Detect PASSED: All tests
Yaesu FT-60 Settings PASSED: All tests
Yaesu FT-60 Clone PASSED: All tests
Yaesu FT-60 Edges PASSED: All tests
Yaesu FT-60 BruteForce PASSED: All tests
Yaesu FT-60 CopyAll PASSED: All tests
Yaesu FT-60 Banks PASSED: All tests
Yaesu FT-7800/7900 Detect PASSED: All tests
Yaesu FT-7800/7900 Settings PASSED: All tests
Yaesu FT-7800/7900 Clone PASSED: All tests
Yaesu FT-7800/7900 Edges PASSED: All tests
Yaesu FT-7800/7900 BruteForce PASSED: All tests
Yaesu FT-7800/7900 CopyAll PASSED: All tests
Yaesu FT-7800/7900 Banks PASSED: All tests
Yaesu FT-817 Detect PASSED: All tests
Yaesu FT-817 Settings PASSED: All tests
Yaesu FT-817 Clone PASSED: All tests
Yaesu FT-817 Edges PASSED: All tests
Yaesu FT-817 BruteForce PASSED: All tests
Yaesu FT-817 CopyAll PASSED: All tests
Yaesu FT-817 Banks SKIPPED: Banks not supported
Yaesu FT-817ND Detect PASSED: All tests
Yaesu FT-817ND Settings PASSED: All tests
Yaesu FT-817ND Clone PASSED: All tests
Yaesu FT-817ND Edges PASSED: All tests
Yaesu FT-817ND BruteForce PASSED: All tests
Yaesu FT-817ND CopyAll PASSED: All tests
Yaesu FT-817ND Banks SKIPPED: Banks not supported
Yaesu FT-817ND (US) Detect PASSED: All tests
Yaesu FT-817ND (US) Settings PASSED: All tests
Yaesu FT-817ND (US) Clone PASSED: All tests
Yaesu FT-817ND (US) Edges PASSED: All tests
Yaesu FT-817ND (US) BruteForce PASSED: All tests
Yaesu FT-817ND (US) CopyAll PASSED: All tests
Yaesu FT-817ND (US) Banks SKIPPED: Banks not supported
Yaesu FT-857/897 Detect PASSED: All tests
Yaesu FT-857/897 Settings PASSED: All tests
Yaesu FT-857/897 Clone PASSED: All tests
Yaesu FT-857/897 Edges PASSED: All tests
Yaesu FT-857/897 BruteForce PASSED: All tests
Yaesu FT-857/897 CopyAll PASSED: All tests
Yaesu FT-857/897 Banks SKIPPED: Banks not supported
Yaesu FT-857/897 (U Detect PASSED: All tests
Yaesu FT-857/897 (U Settings PASSED: All tests
Yaesu FT-857/897 (U Clone PASSED: All tests
Yaesu FT-857/897 (U Edges PASSED: All tests
Yaesu FT-857/897 (U BruteForce PASSED: All tests
Yaesu FT-857/897 (U CopyAll PASSED: All tests
Yaesu FT-857/897 (U Banks SKIPPED: Banks not supported
Yaesu FT-8800 Left Detect PASSED: All tests
Yaesu FT-8800 Left Settings SKIPPED: Settings not supported
Yaesu FT-8800 Left Clone PASSED: All tests
Yaesu FT-8800 Left Edges PASSED: All tests
Yaesu FT-8800 Left BruteForce PASSED: All tests
Yaesu FT-8800 Left CopyAll PASSED: All tests
Yaesu FT-8800 Left Banks PASSED: All tests
Yaesu FT-8800 Right Detect PASSED: All tests
Yaesu FT-8800 Right Settings SKIPPED: Settings not supported
Yaesu FT-8800 Right Clone PASSED: All tests
Yaesu FT-8800 Right Edges PASSED: All tests
Yaesu FT-8800 Right BruteForce PASSED: All tests
Yaesu FT-8800 Right CopyAll PASSED: All tests
Yaesu FT-8800 Right Banks PASSED: All tests
Yaesu FT-8900 Detect PASSED: All tests
Yaesu FT-8900 Settings SKIPPED: Settings not supported
Yaesu FT-8900 Clone PASSED: All tests
Yaesu FT-8900 Edges PASSED: All tests
Yaesu FT-8900 BruteForce PASSED: All tests
Yaesu FT-8900 CopyAll PASSED: All tests
Yaesu FT-8900 Banks SKIPPED: Banks not supported
Yaesu FTM-350 Left Detect PASSED: All tests
Yaesu FTM-350 Left Settings PASSED: All tests
Yaesu FTM-350 Left Clone PASSED: All tests
Yaesu FTM-350 Left Edges PASSED: All tests
Yaesu FTM-350 Left BruteForce PASSED: All tests
Yaesu FTM-350 Left CopyAll PASSED: All tests
Yaesu FTM-350 Left Banks SKIPPED: Banks not supported
Yaesu FTM-350 Right Detect PASSED: All tests
Yaesu FTM-350 Right Settings SKIPPED: Settings not supported
Yaesu FTM-350 Right Clone PASSED: All tests
Yaesu FTM-350 Right Edges PASSED: All tests
Yaesu FTM-350 Right BruteForce PASSED: All tests
Yaesu FTM-350 Right CopyAll PASSED: All tests
Yaesu FTM-350 Right Banks SKIPPED: Banks not supported
Yaesu VX-2 Detect PASSED: All tests
Yaesu VX-2 Settings PASSED: All tests
Yaesu VX-2 Clone PASSED: All tests
Yaesu VX-2 Edges PASSED: All tests
Yaesu VX-2 BruteForce PASSED: All tests
Yaesu VX-2 CopyAll PASSED: All tests
Yaesu VX-2 Banks PASSED: All tests
Yaesu VX-3 Detect PASSED: All tests
Yaesu VX-3 Settings PASSED: All tests
Yaesu VX-3 Clone PASSED: All tests
Yaesu VX-3 Edges PASSED: All tests
Yaesu VX-3 BruteForce PASSED: All tests
Yaesu VX-3 CopyAll PASSED: All tests
Yaesu VX-3 Banks PASSED: All tests
Yaesu VX-5 Detect PASSED: All tests
Yaesu VX-5 Settings SKIPPED: Settings not supported
Yaesu VX-5 Clone PASSED: All tests
Yaesu VX-5 Edges PASSED: All tests
Yaesu VX-5 BruteForce PASSED: All tests
Yaesu VX-5 CopyAll PASSED: All tests
Yaesu VX-5 Banks PASSED: All tests
Yaesu VX-6 Detect PASSED: All tests
Yaesu VX-6 Settings SKIPPED: Settings not supported
Yaesu VX-6 Clone PASSED: All tests
Yaesu VX-6 Edges PASSED: All tests
Yaesu VX-6 BruteForce PASSED: All tests
Yaesu VX-6 CopyAll PASSED: All tests
Yaesu VX-6 Banks PASSED: All tests
Yaesu VX-7 Detect PASSED: All tests
Yaesu VX-7 Settings SKIPPED: Settings not supported
Yaesu VX-7 Clone PASSED: All tests
Yaesu VX-7 Edges PASSED: All tests
Yaesu VX-7 BruteForce PASSED: All tests
Yaesu VX-7 CopyAll PASSED: All tests
Yaesu VX-7 Banks PASSED: All tests
Yaesu VX-8 R Detect PASSED: All tests
Yaesu VX-8 R Settings SKIPPED: Settings not supported
Yaesu VX-8 R Clone PASSED: All tests
Yaesu VX-8 R Edges PASSED: All tests
Yaesu VX-8 R BruteForce PASSED: All tests
Yaesu VX-8 R CopyAll PASSED: All tests
Yaesu VX-8 R Banks PASSED: All tests
----------------------------------------------------------------------
Results:
TOTAL : 441
FAILED : 0
SKIPPED: 70
PASSED : 371
CRASHED: 0
Registered Icom_IC-2820H = IC2820Radio
Registered TYT_TH-UVF8D = TYTUVF8DRadio
Registered AnyTone_5888UV = AnyTone5888UVRadio
Registered Intek_HR-2040 = IntekHR2040Radio
Registered Polmar_DB-50M = PolmarDB50MRadio
Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
Registered Icom_IC-2200H = IC2200Radio
Registered Yaesu_FT-2800M = FT2800Radio
Registered Yaesu_VX-3 = VX3Radio
Registered Icom_IC-2100H = IC2100Radio
Registered Yaesu_FTM-350 = FTM350Radio
Registered Icom_IC-V82_U82 = ICx8xRadio
Registered Yaesu_VX-6 = VX6Radio
Registered Yaesu_VX-5 = VX5Radio
Registered Yaesu_FT-60 = FT60Radio
Registered Yaesu_VX-7 = VX7Radio
Registered Sainsonic_AP510 = AP510Radio
Registered Baofeng_UV-5R = BaofengUV5R
Registered Baofeng_F-11 = BaofengF11Radio
Registered Baofeng_UV-82 = BaofengUV82Radio
Registered Baofeng_UV-6 = BaofengUV6Radio
Registered Intek_KT-980HP = IntekKT980Radio
Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
Registered Yaesu_FT-1802M = FT1802Radio
Registered Kenwood_TK-7102 = KenwoodTK7102Radio
Registered Kenwood_TK-8102 = KenwoodTK8102Radio
Registered Kenwood_TK-7108 = KenwoodTK7108Radio
Registered Kenwood_TK-8108 = KenwoodTK8108Radio
Registered Icom_ID-31A = ID31Radio
Registered Icom_ID-51A = ID51Radio
Registered Icom_IC-2720H = IC2720Radio
Registered Icom_IC-T8A = ICT8ARadio
Registered Wouxun_KG-UVD1P = KGUVD1PRadio
Registered Wouxun_KG-UV6 = KGUV6DRadio
Registered Wouxun_KG-816 = KG816Radio
Registered Wouxun_KG-818 = KG818Radio
Registered TYT_TH-UVF1 = TYTTHUVF1Radio
Registered Yaesu_FT-90 = FT90Radio
Registered Generic_CSV = CSVRadio
Registered Commander_KG-UV = CommanderCSVRadio
Registered RT_Systems_CSV = RTCSVRadio
Registered Kenwood_ITM = ITMRadio
Registered TYT_TH-9800_File = TYTTH9800File
Registered TYT_TH-9800 = TYTTH9800Radio
Registered Alinco_DR03T = DR03Radio
Registered Alinco_DR06T = DR06Radio
Registered Alinco_DR135T = DR135Radio
Registered Alinco_DR235T = DR235Radio
Registered Alinco_DR435T = DR435Radio
Registered Alinco_DJ596 = DJ596Radio
Registered Jetstream_JT220M = JT220MRadio
Registered Alinco_DJ175 = DJ175Radio
Registered Kenwood_TH-D7 = THD7Radio
Registered Kenwood_TH-D7G = THD7GRadio
Registered Kenwood_TM-D700 = TMD700Radio
Registered Kenwood_TM-V7 = TMV7Radio
Registered Kenwood_TM-G707 = TMG707Radio
Registered Kenwood_TH-G71 = THG71Radio
Registered Kenwood_TH-F6 = THF6ARadio
Registered Kenwood_TH-F7 = THF7ERadio
Registered Kenwood_TM-D710 = TMD710Radio
Registered Kenwood_TH-D72_live_mode = THD72Radio
Registered Kenwood_TM-V71 = TMV71Radio
Registered Kenwood_TM-D710G = TMD710GRadio
Registered Kenwood_TH-K2 = THK2Radio
Registered Kenwood_TM-271 = TM271Radio
Registered Kenwood_TM-281 = TM281Radio
Registered Kenwood_TM-471 = TM471Radio
Registered Yaesu_FT-1D_R = FT1Radio
Registered Wouxun_KG-UV8D = KGUV8DRadio
Registered Yaesu_VX-8_R = VX8Radio
Registered Yaesu_VX-8_DR = VX8DRadio
Registered Yaesu_VX-8_GE = VX8GERadio
Registered Icom_IC-T7H = ICT7HRadio
Registered Icom_IC-Q7A = ICQ7Radio
Registered Baofeng_UV-B5 = BaofengUVB5
Registered Generic_XML = XMLRadio
Registered Kenwood_HMK = HMKRadio
Registered Kenwood_TH-D72_clone_mode = THD72Radio
Registered Icom_IC-91_92AD = IC9xRadio
Registered Icom_IC-T70 = ICT70Radio
Registered Icom_IC-208H = IC208Radio
Registered Leixen_VV-898 = LeixenVV898Radio
Registered Jetstream_JT270M = JetstreamJT270MRadio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
Registered Baofeng_BF-888 = H777Radio
Registered Yaesu_FT-7800_7900 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered KYD_NC-630A = NC630aRadio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Yaesu_VX-170 = VX170Radio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Registered TYT_TH-UV3R = TYTUV3RRadio
Patch 'tip' is OK
================================================
Tests OK
Email was triggered for: Success
Sending email for trigger: Success
1
0
Tested changes:
[Dan Smith <dsmith(a)danplanet.com>] Add updated Hungarian translation from Attila HA5JA
[Jim Unroe <rock.unroe(a)gmail.com>] [VV-898] Add Settings to Leixen VV-898 Module - Part 10
Add the following settings:
- Squelch Base Value (UHF)
- Squelch Base Value (VHF)
related to #2149
[Jim Unroe <rock.unroe(a)gmail.com>] [VV-898] Add Settings to Leixen VV-898 Module - Part 9
Add the following settings:
- DTMF Digit Time
- DTMF Digit Space Time
- DTMF First Digit Delay
- DTMF Pretime
- DTMF * and # Digit Delay
- DTMF ACK Decode
- DTMF Side Tone
Corrected spelling error in Part 7
related to #2149
[Jim Unroe <rock.unroe(a)gmail.com>] [VV-898] Add Settings to Leixen VV-898 Module - Part 8
Add the following settings:
- VOX Gain Level
- VOX Delay Time
- VOX Inhibit on Receive
related to #2149
[Jim Unroe <rock.unroe(a)gmail.com>] [VV-898] Add Settings to Leixen VV-898 Module - Part 7
Add the following Key Assignment settings:
- Long Press Time
- P1 Long
- P1 Short
- P2 Long
- P2 Short
- P3 Long
- P3 Short
- M Short
- Menu Enable
related to #2149
[K. Arvanitis <kosta(a)alumni.uvic.ca>] [PATCH] Dismissing save confirmation dialog was closing tab
A typical gtk Dialog will return a response of RESPONSE_DELETE_EVENT
when the dialog window is dismissed.
As a result dismissing the save confirmation dialog was performing similarly
to the user selecting the NO button (RESPONSE_NO)
This created a situation where a person could possibly loose their changes
should they dismiss the save confirmation dialog without using the cancel
button.
The fix essentially handles both the CANCEL and DELETE_EVENT responses as
the same.
Bug #2255
[K. Arvanitis <kosta(a)alumni.uvic.ca>] [FT-60] Memory Bank Link Scan
Added settings support for memory bank link scan.
Extended bitwise int data element to support xor operator.
Note: The mbs settings are stored in the 16 bits located at
memory location 0x09E in the high order bits.
Note: A bank can be linked even if it contains no memories.
In this case the radio ignores it during the mbl scan.
Bug #675
Bug #1945
[Jens Jensen <af5mi(a)yahoo.com>] [th9800] fix skip scan/priority issues #2247
Skip/priority settings were not taking effect.
Channel fields were for display only.
There are special channel banks controlling scan enable and priority.
This fix manipulates both channel fields and bank flags.
[K. Arvanitis <kosta(a)alumni.uvic.ca>] [PATCH] Fix Context-Menu Handler in Memory Editor
This patch modified the behaviour of the button event handler
for the memory editor to properly select the underlying elements
of the treeview when using the right mouse button.
Fixes #2249
[Jens Jensen <af5mi(a)yahoo.com>] [th9800] clarify channel display mode #1353
change "Frequency or Name" boolean to "Display" choice of Frequency or Name
[K. Arvanitis <kosta(a)alumni.uvic.ca>] [PATCH] Fix Link in About Dialog
The URL link in the about dialog is now functional. Tested in both
Ubuntu and Windows 8.1, verified working.
Replaced the MessageBox dialog for the 'Documentation' help menu item
with a hotlink to the website. The URL link in the MessageBox was non-
functional on Windows and overall it did not provide much information
outside of the link anyhow.
Bug #330
Full log:
[...truncated 175 lines...]
Registered Icom_IC-2200H = IC2200Radio
Registered Yaesu_FT-2800M = FT2800Radio
Registered Yaesu_VX-3 = VX3Radio
Registered Icom_IC-2100H = IC2100Radio
Registered Yaesu_FTM-350 = FTM350Radio
Registered Icom_IC-V82_U82 = ICx8xRadio
Registered Yaesu_VX-6 = VX6Radio
Registered Yaesu_VX-5 = VX5Radio
Registered Yaesu_FT-60 = FT60Radio
Registered Yaesu_VX-7 = VX7Radio
Registered Sainsonic_AP510 = AP510Radio
Registered Baofeng_UV-5R = BaofengUV5R
Registered Baofeng_F-11 = BaofengF11Radio
Registered Baofeng_UV-82 = BaofengUV82Radio
Registered Baofeng_UV-6 = BaofengUV6Radio
Registered Intek_KT-980HP = IntekKT980Radio
Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
Registered Yaesu_FT-1802M = FT1802Radio
Registered Kenwood_TK-7102 = KenwoodTK7102Radio
Registered Kenwood_TK-8102 = KenwoodTK8102Radio
Registered Kenwood_TK-7108 = KenwoodTK7108Radio
Registered Kenwood_TK-8108 = KenwoodTK8108Radio
Registered Icom_ID-31A = ID31Radio
Registered Icom_ID-51A = ID51Radio
Registered Icom_IC-2720H = IC2720Radio
Registered Icom_IC-T8A = ICT8ARadio
Registered Wouxun_KG-UVD1P = KGUVD1PRadio
Registered Wouxun_KG-UV6 = KGUV6DRadio
Registered Wouxun_KG-816 = KG816Radio
Registered Wouxun_KG-818 = KG818Radio
Registered TYT_TH-UVF1 = TYTTHUVF1Radio
Registered Yaesu_FT-90 = FT90Radio
Registered Generic_CSV = CSVRadio
Registered Commander_KG-UV = CommanderCSVRadio
Registered RT_Systems_CSV = RTCSVRadio
Registered Kenwood_ITM = ITMRadio
Registered TYT_TH-9800_File = TYTTH9800File
Registered TYT_TH-9800 = TYTTH9800Radio
Registered Alinco_DR03T = DR03Radio
Registered Alinco_DR06T = DR06Radio
Registered Alinco_DR135T = DR135Radio
Registered Alinco_DR235T = DR235Radio
Registered Alinco_DR435T = DR435Radio
Registered Alinco_DJ596 = DJ596Radio
Registered Jetstream_JT220M = JT220MRadio
Registered Alinco_DJ175 = DJ175Radio
Registered Kenwood_TH-D7 = THD7Radio
Registered Kenwood_TH-D7G = THD7GRadio
Registered Kenwood_TM-D700 = TMD700Radio
Registered Kenwood_TM-V7 = TMV7Radio
Registered Kenwood_TM-G707 = TMG707Radio
Registered Kenwood_TH-G71 = THG71Radio
Registered Kenwood_TH-F6 = THF6ARadio
Registered Kenwood_TH-F7 = THF7ERadio
Registered Kenwood_TM-D710 = TMD710Radio
Registered Kenwood_TH-D72_live_mode = THD72Radio
Registered Kenwood_TM-V71 = TMV71Radio
Registered Kenwood_TM-D710G = TMD710GRadio
Registered Kenwood_TH-K2 = THK2Radio
Registered Kenwood_TM-271 = TM271Radio
Registered Kenwood_TM-281 = TM281Radio
Registered Kenwood_TM-471 = TM471Radio
Registered Yaesu_FT-1D_R = FT1Radio
Registered Wouxun_KG-UV8D = KGUV8DRadio
Registered Yaesu_VX-8_R = VX8Radio
Registered Yaesu_VX-8_DR = VX8DRadio
Registered Yaesu_VX-8_GE = VX8GERadio
Registered Icom_IC-T7H = ICT7HRadio
Registered Icom_IC-Q7A = ICQ7Radio
Registered Baofeng_UV-B5 = BaofengUVB5
Registered Generic_XML = XMLRadio
Registered Kenwood_HMK = HMKRadio
Registered Kenwood_TH-D72_clone_mode = THD72Radio
Registered Icom_IC-91_92AD = IC9xRadio
Registered Icom_IC-T70 = ICT70Radio
Registered Icom_IC-208H = IC208Radio
Registered Leixen_VV-898 = LeixenVV898Radio
Registered Jetstream_JT270M = JetstreamJT270MRadio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
Registered Baofeng_BF-888 = H777Radio
Registered Yaesu_FT-7800_7900 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered KYD_NC-630A = NC630aRadio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Yaesu_VX-170 = VX170Radio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Registered TYT_TH-UV3R = TYTUV3RRadio
Alinco DJ175 Detect PASSED: All tests
Alinco DJ175 CopyAll PASSED: All tests
Alinco DJ175 Clone PASSED: All tests
Alinco DJ175 BruteForce PASSED: All tests
Alinco DJ175 Edges PASSED: All tests
Alinco DJ175 Banks SKIPPED: Banks not supported
Alinco DJ596 Detect PASSED: All tests
Alinco DJ596 CopyAll PASSED: All tests
Alinco DJ596 Clone PASSED: All tests
Alinco DJ596 BruteForce PASSED: All tests
Alinco DJ596 Edges PASSED: All tests
Alinco DJ596 Banks SKIPPED: Banks not supported
Alinco DR235T Detect PASSED: All tests
Alinco DR235T CopyAll PASSED: All tests
Alinco DR235T Clone PASSED: All tests
Alinco DR235T BruteForce PASSED: All tests
Alinco DR235T Edges PASSED: All tests
Alinco DR235T Banks SKIPPED: Banks not supported
Baofeng BF-888 Detect PASSED: All tests
Baofeng BF-888 CopyAll PASSED: All tests
Baofeng BF-888 Clone PASSED: All tests
Baofeng BF-888 BruteForce PASSED: All tests
Baofeng BF-888 Edges PASSED: All tests
Baofeng BF-888 Banks SKIPPED: Banks not supported
Baofeng F-11 Detect PASSED: All tests
Baofeng F-11 CopyAll PASSED: All tests
Baofeng F-11 Clone PASSED: All tests
Baofeng F-11 BruteForce PASSED: All tests
Baofeng F-11 Edges PASSED: All tests
Baofeng F-11 Banks SKIPPED: Banks not supported
Baofeng UV-3R Detect PASSED: All tests
Baofeng UV-3R CopyAll PASSED: All tests
Baofeng UV-3R Clone PASSED: All tests
Baofeng UV-3R BruteForce PASSED: All tests
Baofeng UV-3R Edges PASSED: All tests
Baofeng UV-3R Banks SKIPPED: Banks not supported
Baofeng UV-5R Detect PASSED: All tests
Baofeng UV-5R CopyAll PASSED: All tests
Baofeng UV-5R Clone PASSED: All tests
Baofeng UV-5R BruteForce PASSED: All tests
Baofeng UV-5R Edges PASSED: All tests
Baofeng UV-5R Banks SKIPPED: Banks not supported
Baofeng UV-B5 Detect PASSED: All tests
Baofeng UV-B5 CopyAll PASSED: All tests
Baofeng UV-B5 Clone PASSED: All tests
Baofeng UV-B5 BruteForce PASSED: All tests
Baofeng UV-B5 Edges PASSED: All tests
Baofeng UV-B5 Banks SKIPPED: Banks not supported
Icom IC-208H Detect PASSED: All tests
Icom IC-208H CopyAll PASSED: All tests
Icom IC-208H Clone PASSED: All tests
Icom IC-208H BruteForce PASSED: All tests
Icom IC-208H Edges PASSED: All tests
Icom IC-208H Banks PASSED: All tests
Icom IC-2100H Detect PASSED: All tests
Icom IC-2100H CopyAll PASSED: All tests
Icom IC-2100H Clone PASSED: All tests
Icom IC-2100H BruteForce PASSED: All tests
Icom IC-2100H Edges PASSED: All tests
Icom IC-2100H Banks SKIPPED: Banks not supported
Icom IC-2200H Detect PASSED: All tests
Icom IC-2200H CopyAll PASSED: All tests
Icom IC-2200H Clone PASSED: All tests
Icom IC-2200H BruteForce PASSED: All tests
Icom IC-2200H Edges PASSED: All tests
Icom IC-2200H Banks PASSED: All tests
Icom IC-2720H Detect PASSED: All tests
Icom IC-2720H CopyAll PASSED: All tests
Icom IC-2720H Clone PASSED: All tests
Icom IC-2720H BruteForce PASSED: All tests
Icom IC-2720H Edges PASSED: All tests
Icom IC-2720H Banks PASSED: All tests
Icom IC-2820H Detect PASSED: All tests
Icom IC-2820H CopyAll PASSED: All tests
Icom IC-2820H Clone PASSED: All tests
Icom IC-2820H BruteForce PASSED: All tests
Icom IC-2820H Edges PASSED: All tests
Icom IC-2820H Banks PASSED: All tests
Icom IC-Q7A Detect PASSED: All tests
Icom IC-Q7A CopyAll PASSED: All tests
Icom IC-Q7A Clone PASSED: All tests
Icom IC-Q7A BruteForce PASSED: All tests
Icom IC-Q7A Edges PASSED: All tests
Icom IC-Q7A Banks SKIPPED: Banks not supported
Icom IC-T70 Detect PASSED: All tests
Icom IC-T70 CopyAll PASSED: All tests
Icom IC-T70 Clone PASSED: All tests
Icom IC-T70 BruteForce PASSED: All tests
Icom IC-T70 Edges PASSED: All tests
Icom IC-T70 Banks PASSED: All tests
Icom IC-T7H Detect PASSED: All tests
Icom IC-T7H CopyAll PASSED: All tests
Icom IC-T7H Clone PASSED: All tests
Icom IC-T7H BruteForce PASSED: All tests
Icom IC-T7H Edges PASSED: All tests
Icom IC-T7H Banks SKIPPED: Banks not supported
Icom IC-T8A Detect PASSED: All tests
Icom IC-T8A CopyAll PASSED: All tests
Icom IC-T8A Clone PASSED: All tests
Icom IC-T8A BruteForce PASSED: All tests
Icom IC-T8A Edges PASSED: All tests
Icom IC-T8A Banks SKIPPED: Banks not supported
Icom IC-V82/U82 Detect PASSED: All tests
Icom IC-V82/U82 CopyAll PASSED: All tests
Icom IC-V82/U82 Clone PASSED: All tests
Icom IC-V82/U82 BruteForce PASSED: All tests
Icom IC-V82/U82 Edges PASSED: All tests
Icom IC-V82/U82 Banks PASSED: All tests
Icom IC-W32A VHF Detect PASSED: All tests
Icom IC-W32A VHF CopyAll PASSED: All tests
Icom IC-W32A VHF Clone PASSED: All tests
Icom IC-W32A VHF BruteForce PASSED: All tests
Icom IC-W32A VHF Edges PASSED: All tests
Icom IC-W32A VHF Banks SKIPPED: Banks not supported
Icom IC-W32A UHF Detect PASSED: All tests
Icom IC-W32A UHF CopyAll PASSED: All tests
Icom IC-W32A UHF Clone PASSED: All tests
Icom IC-W32A UHF BruteForce PASSED: All tests
Icom IC-W32A UHF Edges PASSED: All tests
Icom IC-W32A UHF Banks SKIPPED: Banks not supported
Icom ID-31A Detect PASSED: All tests
Icom ID-31A CopyAll PASSED: All tests
Icom ID-31A Clone PASSED: All tests
Icom ID-31A BruteForce PASSED: All tests
Icom ID-31A Edges PASSED: All tests
Icom ID-31A Banks PASSED: All tests
Icom ID-51A Detect PASSED: All tests
Icom ID-51A CopyAll PASSED: All tests
Icom ID-51A Clone PASSED: All tests
Icom ID-51A BruteForce PASSED: All tests
Icom ID-51A Edges PASSED: All tests
Icom ID-51A Banks PASSED: All tests
Icom ID-800H v2 Detect PASSED: All tests
Icom ID-800H v2 CopyAll PASSED: All tests
Icom ID-800H v2 Clone PASSED: All tests
Icom ID-800H v2 BruteForce PASSED: All tests
Icom ID-800H v2 Edges PASSED: All tests
Icom ID-800H v2 Banks PASSED: All tests
Icom ID-880H Detect PASSED: All tests
Icom ID-880H CopyAll PASSED: All tests
Icom ID-880H Clone PASSED: All tests
Icom ID-880H BruteForce PASSED: All tests
Icom ID-880H Edges PASSED: All tests
Icom ID-880H Banks PASSED: All tests
Jetstream JT220M Detect PASSED: All tests
Jetstream JT220M CopyAll PASSED: All tests
Jetstream JT220M Clone PASSED: All tests
Jetstream JT220M BruteForce PASSED: All tests
Jetstream JT220M Edges PASSED: All tests
Jetstream JT220M Banks SKIPPED: Banks not supported
Jetstream JT270M Detect PASSED: All tests
Jetstream JT270M CopyAll PASSED: All tests
Jetstream JT270M Clone PASSED: All tests
Jetstream JT270M BruteForce PASSED: All tests
Jetstream JT270M Edges PASSED: All tests
Jetstream JT270M Banks SKIPPED: Banks not supported
Kenwood TH-D72 (clone Detect PASSED: All tests
Kenwood TH-D72 (clone CopyAll PASSED: All tests
Kenwood TH-D72 (clone Clone PASSED: All tests
Kenwood TH-D72 (clone BruteForce PASSED: All tests
Kenwood TH-D72 (clone Edges PASSED: All tests
Kenwood TH-D72 (clone Banks SKIPPED: Banks not supported
Kenwood TK-8102 Detect PASSED: All tests
Kenwood TK-8102 CopyAll PASSED: All tests
Kenwood TK-8102 Clone PASSED: All tests
Kenwood TK-8102 BruteForce PASSED: All tests
Kenwood TK-8102 Edges PASSED: All tests
Kenwood TK-8102 Banks SKIPPED: Banks not supported
Leixen VV-898 Detect PASSED: All tests
Leixen VV-898 CopyAll PASSED: All tests
Leixen VV-898 Clone PASSED: All tests
Leixen VV-898 BruteForce PASSED: All tests
Leixen VV-898 Edges PASSED: All tests
Leixen VV-898 Banks SKIPPED: Banks not supported
Polmar DB-50M Detect PASSED: All tests
Polmar DB-50M CopyAll PASSED: All tests
Polmar DB-50M Clone PASSED: All tests
Polmar DB-50M BruteForce PASSED: All tests
Polmar DB-50M Edges PASSED: All tests
Polmar DB-50M Banks SKIPPED: Banks not supported
Puxing PX-2R Detect PASSED: All tests
Puxing PX-2R CopyAll PASSED: All tests
Puxing PX-2R Clone PASSED: All tests
Puxing PX-2R BruteForce PASSED: All tests
Puxing PX-2R Edges PASSED: All tests
Puxing PX-2R Banks SKIPPED: Banks not supported
Puxing PX-777 Detect PASSED: All tests
Puxing PX-777 CopyAll PASSED: All tests
Puxing PX-777 Clone PASSED: All tests
Puxing PX-777 BruteForce PASSED: All tests
Puxing PX-777 Edges PASSED: All tests
Puxing PX-777 Banks SKIPPED: Banks not supported
Sainsonic AP510 Detect PASSED: All tests
Sainsonic AP510 CopyAll PASSED: All tests
Sainsonic AP510 Clone PASSED: All tests
Sainsonic AP510 BruteForce PASSED: All tests
Sainsonic AP510 Edges PASSED: All tests
Sainsonic AP510 Banks SKIPPED: Banks not supported
TYT TH-UV3R Detect PASSED: All tests
TYT TH-UV3R CopyAll PASSED: All tests
TYT TH-UV3R Clone PASSED: All tests
TYT TH-UV3R BruteForce PASSED: All tests
TYT TH-UV3R Edges PASSED: All tests
TYT TH-UV3R Banks SKIPPED: Banks not supported
TYT TH-UVF1 Detect PASSED: All tests
TYT TH-UVF1 CopyAll PASSED: All tests
TYT TH-UVF1 Clone PASSED: All tests
TYT TH-UVF1 BruteForce PASSED: All tests
TYT TH-UVF1 Edges PASSED: All tests
TYT TH-UVF1 Banks SKIPPED: Banks not supported
Vertex VXA-700 Detect PASSED: All tests
Vertex VXA-700 CopyAll PASSED: All tests
Vertex VXA-700 Clone PASSED: All tests
Vertex VXA-700 BruteForce PASSED: All tests
Vertex VXA-700 Edges PASSED: All tests
Vertex VXA-700 Banks SKIPPED: Banks not supported
Wouxun KG-816 Detect PASSED: All tests
Wouxun KG-816 CopyAll PASSED: All tests
Wouxun KG-816 Clone PASSED: All tests
Wouxun KG-816 BruteForce PASSED: All tests
Wouxun KG-816 Edges PASSED: All tests
Wouxun KG-816 Banks SKIPPED: Banks not supported
Wouxun KG-818 Detect PASSED: All tests
Wouxun KG-818 CopyAll PASSED: All tests
Wouxun KG-818 Clone PASSED: All tests
Wouxun KG-818 BruteForce PASSED: All tests
Wouxun KG-818 Edges PASSED: All tests
Wouxun KG-818 Banks SKIPPED: Banks not supported
Wouxun KG-UV6 Detect PASSED: All tests
Wouxun KG-UV6 CopyAll PASSED: All tests
Wouxun KG-UV6 Clone PASSED: All tests
Wouxun KG-UV6 BruteForce PASSED: All tests
Wouxun KG-UV6 Edges PASSED: All tests
Wouxun KG-UV6 Banks SKIPPED: Banks not supported
Wouxun KG-UV8D Detect PASSED: All tests
Wouxun KG-UV8D CopyAll PASSED: All tests
Wouxun KG-UV8D Clone PASSED: All tests
Wouxun KG-UV8D BruteForce PASSED: All tests
Wouxun KG-UV8D Edges PASSED: All tests
Wouxun KG-UV8D Banks SKIPPED: Banks not supported
Wouxun KG-UVD1P Detect PASSED: All tests
Wouxun KG-UVD1P CopyAll PASSED: All tests
Wouxun KG-UVD1P Clone PASSED: All tests
Wouxun KG-UVD1P BruteForce PASSED: All tests
Wouxun KG-UVD1P Edges PASSED: All tests
Wouxun KG-UVD1P Banks SKIPPED: Banks not supported
Yaesu FT-1802M Detect PASSED: All tests
Yaesu FT-1802M CopyAll PASSED: All tests
Yaesu FT-1802M Clone PASSED: All tests
Yaesu FT-1802M BruteForce PASSED: All tests
Yaesu FT-1802M Edges PASSED: All tests
Yaesu FT-1802M Banks SKIPPED: Banks not supported
Yaesu FT-1D R Detect PASSED: All tests
Yaesu FT-1D R CopyAll PASSED: All tests
Yaesu FT-1D R Clone PASSED: All tests
Yaesu FT-1D R BruteForce PASSED: All tests
Yaesu FT-1D R Edges PASSED: All tests
Yaesu FT-1D R Banks PASSED: All tests
Yaesu FT-2800M Detect PASSED: All tests
Yaesu FT-2800M CopyAll PASSED: All tests
Yaesu FT-2800M Clone PASSED: All tests
Yaesu FT-2800M BruteForce PASSED: All tests
Yaesu FT-2800M Edges PASSED: All tests
Yaesu FT-2800M Banks SKIPPED: Banks not supported
Yaesu FT-60 Detect PASSED: All tests
Yaesu FT-60 CopyAll PASSED: All tests
Yaesu FT-60 Clone PASSED: All tests
Yaesu FT-60 BruteForce PASSED: All tests
Yaesu FT-60 Edges PASSED: All tests
Yaesu FT-60 Banks PASSED: All tests
Yaesu FT-7800/7900 Detect PASSED: All tests
Yaesu FT-7800/7900 CopyAll PASSED: All tests
Yaesu FT-7800/7900 Clone PASSED: All tests
Yaesu FT-7800/7900 BruteForce PASSED: All tests
Yaesu FT-7800/7900 Edges PASSED: All tests
Yaesu FT-7800/7900 Banks PASSED: All tests
Yaesu FT-817 Detect PASSED: All tests
Yaesu FT-817 CopyAll PASSED: All tests
Yaesu FT-817 Clone PASSED: All tests
Yaesu FT-817 BruteForce PASSED: All tests
Yaesu FT-817 Edges PASSED: All tests
Yaesu FT-817 Banks SKIPPED: Banks not supported
Yaesu FT-817ND Detect PASSED: All tests
Yaesu FT-817ND CopyAll PASSED: All tests
Yaesu FT-817ND Clone PASSED: All tests
Yaesu FT-817ND BruteForce PASSED: All tests
Yaesu FT-817ND Edges PASSED: All tests
Yaesu FT-817ND Banks SKIPPED: Banks not supported
Yaesu FT-817ND (US) Detect PASSED: All tests
Yaesu FT-817ND (US) CopyAll PASSED: All tests
Yaesu FT-817ND (US) Clone PASSED: All tests
Yaesu FT-817ND (US) BruteForce PASSED: All tests
Yaesu FT-817ND (US) Edges PASSED: All tests
Yaesu FT-817ND (US) Banks SKIPPED: Banks not supported
Yaesu FT-857/897 Detect PASSED: All tests
Yaesu FT-857/897 CopyAll PASSED: All tests
Yaesu FT-857/897 Clone PASSED: All tests
Yaesu FT-857/897 BruteForce PASSED: All tests
Yaesu FT-857/897 Edges PASSED: All tests
Yaesu FT-857/897 Banks SKIPPED: Banks not supported
Yaesu FT-857/897 (U Detect PASSED: All tests
Yaesu FT-857/897 (U CopyAll PASSED: All tests
Yaesu FT-857/897 (U Clone PASSED: All tests
Yaesu FT-857/897 (U BruteForce PASSED: All tests
Yaesu FT-857/897 (U Edges PASSED: All tests
Yaesu FT-857/897 (U Banks SKIPPED: Banks not supported
Yaesu FT-8800 Left Detect PASSED: All tests
Yaesu FT-8800 Left CopyAll PASSED: All tests
Yaesu FT-8800 Left Clone PASSED: All tests
Yaesu FT-8800 Left BruteForce PASSED: All tests
Yaesu FT-8800 Left Edges PASSED: All tests
Yaesu FT-8800 Left Banks PASSED: All tests
Yaesu FT-8800 Right Detect PASSED: All tests
Yaesu FT-8800 Right CopyAll PASSED: All tests
Yaesu FT-8800 Right Clone PASSED: All tests
Yaesu FT-8800 Right BruteForce PASSED: All tests
Yaesu FT-8800 Right Edges PASSED: All tests
Yaesu FT-8800 Right Banks PASSED: All tests
Yaesu FT-8900 Detect PASSED: All tests
Yaesu FT-8900 CopyAll PASSED: All tests
Yaesu FT-8900 Clone PASSED: All tests
Yaesu FT-8900 BruteForce PASSED: All tests
Yaesu FT-8900 Edges PASSED: All tests
Yaesu FT-8900 Banks SKIPPED: Banks not supported
Yaesu FTM-350 Left Detect PASSED: All tests
Yaesu FTM-350 Left CopyAll PASSED: All tests
Yaesu FTM-350 Left Clone PASSED: All tests
Yaesu FTM-350 Left BruteForce PASSED: All tests
Yaesu FTM-350 Left Edges PASSED: All tests
Yaesu FTM-350 Left Banks SKIPPED: Banks not supported
Yaesu FTM-350 Right Detect PASSED: All tests
Yaesu FTM-350 Right CopyAll PASSED: All tests
Yaesu FTM-350 Right Clone PASSED: All tests
Yaesu FTM-350 Right BruteForce PASSED: All tests
Yaesu FTM-350 Right Edges PASSED: All tests
Yaesu FTM-350 Right Banks SKIPPED: Banks not supported
Yaesu VX-2 Detect PASSED: All tests
Yaesu VX-2 CopyAll PASSED: All tests
Yaesu VX-2 Clone PASSED: All tests
Yaesu VX-2 BruteForce PASSED: All tests
Yaesu VX-2 Edges PASSED: All tests
Yaesu VX-2 Banks PASSED: All tests
Yaesu VX-3 Detect PASSED: All tests
Yaesu VX-3 CopyAll PASSED: All tests
Yaesu VX-3 Clone PASSED: All tests
Yaesu VX-3 BruteForce PASSED: All tests
Yaesu VX-3 Edges PASSED: All tests
Yaesu VX-3 Banks PASSED: All tests
Yaesu VX-5 Detect PASSED: All tests
Yaesu VX-5 CopyAll PASSED: All tests
Yaesu VX-5 Clone PASSED: All tests
Yaesu VX-5 BruteForce PASSED: All tests
Yaesu VX-5 Edges PASSED: All tests
Yaesu VX-5 Banks PASSED: All tests
Yaesu VX-6 Detect PASSED: All tests
Yaesu VX-6 CopyAll PASSED: All tests
Yaesu VX-6 Clone PASSED: All tests
Yaesu VX-6 BruteForce PASSED: All tests
Yaesu VX-6 Edges PASSED: All tests
Yaesu VX-6 Banks PASSED: All tests
Yaesu VX-7 Detect PASSED: All tests
Yaesu VX-7 CopyAll PASSED: All tests
Yaesu VX-7 Clone PASSED: All tests
Yaesu VX-7 BruteForce PASSED: All tests
Yaesu VX-7 Edges PASSED: All tests
Yaesu VX-7 Banks PASSED: All tests
Yaesu VX-8 R Detect PASSED: All tests
Yaesu VX-8 R CopyAll PASSED: All tests
Yaesu VX-8 R Clone PASSED: All tests
Yaesu VX-8 R BruteForce PASSED: All tests
Yaesu VX-8 R Edges PASSED: All tests
Yaesu VX-8 R Banks PASSED: All tests
----------------------------------------------------------------------
Results:
TOTAL : 372
FAILED : 0
SKIPPED: 41
PASSED : 331
CRASHED: 0
Registered Icom_IC-2820H = IC2820Radio
Registered TYT_TH-UVF8D = TYTUVF8DRadio
Registered AnyTone_5888UV = AnyTone5888UVRadio
Registered Intek_HR-2040 = IntekHR2040Radio
Registered Polmar_DB-50M = PolmarDB50MRadio
Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
Registered Icom_IC-2200H = IC2200Radio
Registered Yaesu_FT-2800M = FT2800Radio
Registered Yaesu_VX-3 = VX3Radio
Registered Icom_IC-2100H = IC2100Radio
Registered Yaesu_FTM-350 = FTM350Radio
Registered Icom_IC-V82_U82 = ICx8xRadio
Registered Yaesu_VX-6 = VX6Radio
Registered Yaesu_VX-5 = VX5Radio
Registered Yaesu_FT-60 = FT60Radio
Registered Yaesu_VX-7 = VX7Radio
Registered Sainsonic_AP510 = AP510Radio
Registered Baofeng_UV-5R = BaofengUV5R
Registered Baofeng_F-11 = BaofengF11Radio
Registered Baofeng_UV-82 = BaofengUV82Radio
Registered Baofeng_UV-6 = BaofengUV6Radio
Registered Intek_KT-980HP = IntekKT980Radio
Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
Registered Yaesu_FT-1802M = FT1802Radio
Registered Kenwood_TK-7102 = KenwoodTK7102Radio
Registered Kenwood_TK-8102 = KenwoodTK8102Radio
Registered Kenwood_TK-7108 = KenwoodTK7108Radio
Registered Kenwood_TK-8108 = KenwoodTK8108Radio
Registered Icom_ID-31A = ID31Radio
Registered Icom_ID-51A = ID51Radio
Registered Icom_IC-2720H = IC2720Radio
Registered Icom_IC-T8A = ICT8ARadio
Registered Wouxun_KG-UVD1P = KGUVD1PRadio
Registered Wouxun_KG-UV6 = KGUV6DRadio
Registered Wouxun_KG-816 = KG816Radio
Registered Wouxun_KG-818 = KG818Radio
Registered TYT_TH-UVF1 = TYTTHUVF1Radio
Registered Yaesu_FT-90 = FT90Radio
Registered Generic_CSV = CSVRadio
Registered Commander_KG-UV = CommanderCSVRadio
Registered RT_Systems_CSV = RTCSVRadio
Registered Kenwood_ITM = ITMRadio
Registered TYT_TH-9800_File = TYTTH9800File
Registered TYT_TH-9800 = TYTTH9800Radio
Registered Alinco_DR03T = DR03Radio
Registered Alinco_DR06T = DR06Radio
Registered Alinco_DR135T = DR135Radio
Registered Alinco_DR235T = DR235Radio
Registered Alinco_DR435T = DR435Radio
Registered Alinco_DJ596 = DJ596Radio
Registered Jetstream_JT220M = JT220MRadio
Registered Alinco_DJ175 = DJ175Radio
Registered Kenwood_TH-D7 = THD7Radio
Registered Kenwood_TH-D7G = THD7GRadio
Registered Kenwood_TM-D700 = TMD700Radio
Registered Kenwood_TM-V7 = TMV7Radio
Registered Kenwood_TM-G707 = TMG707Radio
Registered Kenwood_TH-G71 = THG71Radio
Registered Kenwood_TH-F6 = THF6ARadio
Registered Kenwood_TH-F7 = THF7ERadio
Registered Kenwood_TM-D710 = TMD710Radio
Registered Kenwood_TH-D72_live_mode = THD72Radio
Registered Kenwood_TM-V71 = TMV71Radio
Registered Kenwood_TM-D710G = TMD710GRadio
Registered Kenwood_TH-K2 = THK2Radio
Registered Kenwood_TM-271 = TM271Radio
Registered Kenwood_TM-281 = TM281Radio
Registered Kenwood_TM-471 = TM471Radio
Registered Yaesu_FT-1D_R = FT1Radio
Registered Wouxun_KG-UV8D = KGUV8DRadio
Registered Yaesu_VX-8_R = VX8Radio
Registered Yaesu_VX-8_DR = VX8DRadio
Registered Yaesu_VX-8_GE = VX8GERadio
Registered Icom_IC-T7H = ICT7HRadio
Registered Icom_IC-Q7A = ICQ7Radio
Registered Baofeng_UV-B5 = BaofengUVB5
Registered Generic_XML = XMLRadio
Registered Kenwood_HMK = HMKRadio
Registered Kenwood_TH-D72_clone_mode = THD72Radio
Registered Icom_IC-91_92AD = IC9xRadio
Registered Icom_IC-T70 = ICT70Radio
Registered Icom_IC-208H = IC208Radio
Registered Leixen_VV-898 = LeixenVV898Radio
Registered Jetstream_JT270M = JetstreamJT270MRadio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
Registered Baofeng_BF-888 = H777Radio
Registered Yaesu_FT-7800_7900 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered KYD_NC-630A = NC630aRadio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Yaesu_VX-170 = VX170Radio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Registered TYT_TH-UV3R = TYTUV3RRadio
FAIL: A bug number is required like #123
================================================
Tests FAILED: style tests
Build step 'Execute shell' marked build as failure
Email was triggered for: Failure
Sending email for trigger: Failure
2
2