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

[chirp_devel] [PATCH] Natively support null-terminated strings in Browser. #4685
by Tom Hayward 28 Mar '17
by Tom Hayward 28 Mar '17
28 Mar '17
# HG changeset patch
# User Tom Hayward <tom(a)tomh.us>
# Date 1490741376 25200
# Tue Mar 28 15:49:36 2017 -0700
# Node ID 54540fcafdf2ce6dcd5a0fd7791155038fbf972e
# Parent 17545c2e365451d38a27091f4016f34d7b4f2013
Natively support null-terminated strings in Browser. #4685
When a bitwise char array that contains a null character is requested in the
Browser, there is an error:
Traceback (most recent call last):
File "/home/tom/src/chirp.hg/chirp/ui/radiobrowser.py", line 313, in _tree_click
e = CharArrayEditor(item)
File "/home/tom/src/chirp.hg/chirp/ui/radiobrowser.py", line 123, in __init__
self._build_ui()
File "/home/tom/src/chirp.hg/chirp/ui/radiobrowser.py", line 206, in _build_ui
ent.set_text(str(self._element))
TypeError: Gtk.Entry.set_text() argument 1 must be string without null bytes, not str
This error results in the char array contents not being displayed at all. All
we get is the attribute name.
Radios commonly store strings shorter than the maximum length with null
characters filling the remaining space. This is so common the browser should be
able to display it.
This change strips the null characters off the char array so that Gtk doesn't
freak out. This results in the string being displayed correctly.
The side effect is that the null characters are discarded on change. If the
field is edited in the browser, Chirp fills the empty chars with spaces, not
null characters like were there originally. Visually there is no difference,
but the stored data are different.
diff -r 17545c2e3654 -r 54540fcafdf2 chirp/ui/radiobrowser.py
--- a/chirp/ui/radiobrowser.py Tue Mar 28 15:42:45 2017 -0700
+++ b/chirp/ui/radiobrowser.py Tue Mar 28 15:49:36 2017 -0700
@@ -202,7 +202,7 @@
def _build_ui(self):
ent = FixedEntry(len(self._element))
- ent.set_text(str(self._element))
+ ent.set_text(str(self._element).rstrip("\x00"))
ent.connect('changed', self._changed)
ent.show()
self.pack_start(ent, 1, 1, 1)
1
0

[chirp_devel] [PATCH] [RFC] Natively support null-terminated strings in Browser
by Tom Hayward 28 Mar '17
by Tom Hayward 28 Mar '17
28 Mar '17
# HG changeset patch
# User Tom Hayward <tom(a)tomh.us>
# Date 1490595310 25200
# Sun Mar 26 23:15:10 2017 -0700
# Node ID 50462c735ef1eee2d3bb2bb2c4d0f49fa0a4f2ef
# Parent c558e223d37835907823f1804ade6a8bcf0b4594
[RFC] Natively support null-terminated strings in Browser.
When a bitwise char array that contains a null character is requsted in the
Browser, there is an error:
Traceback (most recent call last):
File "/home/tom/src/chirp.hg/chirp/ui/radiobrowser.py", line 313, in _tree_click
e = CharArrayEditor(item)
File "/home/tom/src/chirp.hg/chirp/ui/radiobrowser.py", line 123, in __init__
self._build_ui()
File "/home/tom/src/chirp.hg/chirp/ui/radiobrowser.py", line 206, in _build_ui
ent.set_text(str(self._element))
TypeError: Gtk.Entry.set_text() argument 1 must be string without null bytes, not str
This errors results in the char array contents not being displayed at all. All
we get is the attribute name.
Radios commonly store strings shorter than the maximum length with null
characters filling the remaining space. This is so common that I think the
browser should be able to display it.
This patch strips the null characters off the char array so that Gtk doesn't
freak out. This results in the string being displayed correctly.
The side effect is that the null characters are discarded on change. If the
field is edited in the browser, Chirp fills the empty chars with spaces, not
null characters like were there originally. Visually there is no difference,
but the stored data are different.
I don't think this will break anything. Can anyone think of a reason this would
be a problem?
Is this complete? Should \xFF be stripped as well? They're visually unpleasing,
but don't break Gtk like \x00 does.
Is there a better way to handle this? Should we use repr() to show the
unprintable null characters, then interpret escape characters on set? This
is awkward because the Entry has a max length defined to the array size, and
could have false positives when people use \ in their labels.)
diff -r c558e223d378 -r 50462c735ef1 chirp/ui/radiobrowser.py
--- a/chirp/ui/radiobrowser.py Sun Mar 26 22:23:11 2017 -0700
+++ b/chirp/ui/radiobrowser.py Sun Mar 26 23:15:10 2017 -0700
@@ -202,7 +202,7 @@
def _build_ui(self):
ent = FixedEntry(len(self._element))
- ent.set_text(str(self._element))
+ ent.set_text(str(self._element).rstrip("\x00"))
ent.connect('changed', self._changed)
ent.show()
self.pack_start(ent, 1, 1, 1)
2
1

[chirp_devel] [PATCH] Wait until typing is complete to save RadioSettingValueString. Fixes #4675
by Tom Hayward 26 Mar '17
by Tom Hayward 26 Mar '17
26 Mar '17
# HG changeset patch
# User Tom Hayward <tom(a)tomh.us>
# Date 1490565113 25200
# Sun Mar 26 14:51:53 2017 -0700
# Node ID 32e5f4abeb7e7e864514d8183ad6335c35a631b9
# Parent 03c6a0176337955bb971a9e85869d2c2cb361c1a
Wait until typing is complete to save RadioSettingValueString. Fixes #4675
diff -r 03c6a0176337 -r 32e5f4abeb7e chirp/ui/settingsedit.py
--- a/chirp/ui/settingsedit.py Sun Mar 26 14:20:13 2017 -0700
+++ b/chirp/ui/settingsedit.py Sun Mar 26 14:51:53 2017 -0700
@@ -188,7 +188,8 @@
widget = gtk.Entry()
widget.set_width_chars(32)
widget.set_text(str(value).rstrip())
- widget.connect("changed", self._save_setting, value)
+ widget.connect("focus-out-event", lambda w, e, v:
+ self._save_setting(w, v), value)
else:
LOG.error("Unsupported widget type: %s" % value.__class__)
1
0
Hello,
here is a code to support Icom's IC-P7 (Japanese Edition).
I don't know this code support for IC-P7A/IC-E7.
May I commit the diff?
--
SASANO Takayoshi (JG1UAA) <uaa(a)mx5.nisiq.net>
diff -r 0f6968a11cac chirp/drivers/icp7.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/chirp/drivers/icp7.py Sun Mar 26 06:32:26 2017 +0900
@@ -0,0 +1,243 @@
+# Copyright 2017 SASANO Takayoshi (JG1UAA) <uaa(a)uaa.org.uk>
+#
+# 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/>.
+
+from chirp.drivers import icf
+from chirp import chirp_common, directory, bitwise
+
+# memory nuber:
+# 000 - 999 regular memory channels (supported, others not)
+# 1000 - 1049 scan edges
+# 1050 - 1249 auto write channels
+# 1250 call channel (C0)
+# 1251 call channel (C1)
+
+
+MEM_FORMAT = """
+struct {
+ ul32 freq;
+ ul32 offset;
+ ul16 train_sql:2,
+ tmode:3,
+ duplex:2,
+ train_tone:9;
+ ul16 tuning_step:4,
+ rtone:6,
+ ctone:6;
+ ul16 unknown0:7,
+ mode:2,
+ dtcs:7;
+ u8 unknown1:6,
+ dtcs_polarity:2;
+ char name[6];
+} memory[1251];
+
+#seekto 0x6b1e;
+struct {
+ u8 bank;
+ u8 index;
+} banks[1050];
+
+#seekto 0x689e;
+u8 used[132];
+
+#seekto 0x6922;
+u8 skips[132];
+
+#seekto 0x69a6;
+u8 pskips[132];
+
+#seekto 0x7352;
+struct {
+ char name[6];
+} bank_names[18];
+
+"""
+
+MODES = ["FM", "WFM", "AM", "Auto"]
+TMODES = ["", "Tone", "TSQL", "", "DTCS"]
+DUPLEX = ["", "-", "+"]
+DTCS_POLARITY = ["NN", "NR", "RN", "RR"]
+TUNING_STEPS = [5.0, 6.25, 8.33, 9.0, 10.0, 12.5, 15.0, 20.0,
+ 25.0, 30.0, 50.0, 100.0, 200.0, 0.0] # 0.0 as "Auto"
+
+
+class ICP7Bank(icf.IcomBank):
+ """ICP7 bank"""
+ def get_name(self):
+ _bank = self._model._radio._memobj.bank_names[self.index]
+ return str(_bank.name).rstrip()
+
+ def set_name(self, name):
+ _bank = self._model._radio._memobj.bank_names[self.index]
+ _bank.name = name.ljust(6)[:6]
+
+
+(a)directory.register
+class ICP7Radio(icf.IcomCloneModeRadio):
+ """Icom IC-P7"""
+ VENDOR = "Icom"
+ MODEL = "IC-P7"
+
+ _model = "\x28\x69\x00\x01"
+ _memsize = 0x7500
+ _endframe = "Icom Inc\x2e\x41\x38"
+
+ _ranges = [(0x0000, 0x7500, 32)]
+
+ _num_banks = 18
+ _bank_class = ICP7Bank
+
+ def _get_bank(self, loc):
+ _bank = self._memobj.banks[loc]
+ if _bank.bank != 0xff:
+ return _bank.bank
+ else:
+ return None
+
+ def _set_bank(self, loc, bank):
+ _bank = self._memobj.banks[loc]
+ if bank is None:
+ _bank.bank = 0xff
+ else:
+ _bank.bank = bank
+
+ def _get_bank_index(self, loc):
+ _bank = self._memobj.banks[loc]
+ return _bank.index
+
+ def _set_bank_index(self, loc, index):
+ _bank = self._memobj.banks[loc]
+ _bank.index = index
+
+ def get_features(self):
+ rf = chirp_common.RadioFeatures()
+ rf.memory_bounds = (0, 999)
+ rf.valid_tmodes = TMODES
+ rf.valid_duplexes = DUPLEX
+ rf.valid_modes = MODES
+ rf.valid_bands = [(495000, 999990000)]
+ rf.valid_skips = ["", "S", "P"]
+ rf.valid_tuning_steps = TUNING_STEPS
+ rf.valid_name_length = 6
+ rf.has_ctone = True
+ rf.has_bank = True
+ rf.has_bank_index = True
+ rf.has_bank_names = True
+ return rf
+
+ def process_mmap(self):
+ self._memobj = bitwise.parse(MEM_FORMAT, self._mmap)
+
+ def get_raw_memory(self, number):
+ return repr(self._memobj.memory[number])
+
+ def get_memory(self, number):
+ bit = 1 << (number % 8)
+ byte = int(number / 8)
+
+ _mem = self._memobj.memory[number]
+ _usd = self._memobj.used[byte]
+ _skp = self._memobj.skips[byte]
+ _psk = self._memobj.pskips[byte]
+
+ mem = chirp_common.Memory()
+ mem.number = number
+
+ if _usd & bit:
+ mem.empty = True
+ return mem
+
+ mem.freq = _mem.freq / 3
+ mem.offset = _mem.offset / 3
+ mem.tmode = TMODES[_mem.tmode]
+ mem.duplex = DUPLEX[_mem.duplex]
+ mem.tuning_step = TUNING_STEPS[_mem.tuning_step]
+ mem.rtone = chirp_common.TONES[_mem.rtone]
+ mem.ctone = chirp_common.TONES[_mem.ctone]
+ mem.mode = MODES[_mem.mode]
+ mem.dtcs = chirp_common.DTCS_CODES[_mem.dtcs]
+ mem.dtcs_polarity = DTCS_POLARITY[_mem.dtcs_polarity]
+ mem.name = str(_mem.name).rstrip()
+
+ if _skp & bit:
+ mem.skip = "P" if _psk & bit else "S"
+ else:
+ mem.skip = ""
+
+ return mem
+
+ def set_memory(self, mem):
+ bit = 1 << (mem.number % 8)
+ byte = int(mem.number / 8)
+
+ _mem = self._memobj.memory[mem.number]
+ _usd = self._memobj.used[byte]
+ _skp = self._memobj.skips[byte]
+ _psk = self._memobj.pskips[byte]
+
+ _mem.set_raw("\x00" * (_mem.size() / 8))
+
+ if mem.empty:
+ _usd |= bit
+
+ # We use default value instead of zero-fill
+ # to avoid unexpected behavior.
+ _mem.freq = 15000
+ _mem.offset = 479985000
+ _mem.train_sql = ~0
+ _mem.tmode = ~0
+ _mem.duplex = ~0
+ _mem.train_tone = ~0
+ _mem.tuning_step = ~0
+ _mem.rtone = ~0
+ _mem.ctone = ~0
+ _mem.unknown0 = 1
+ _mem.mode = ~0
+ _mem.dtcs = ~0
+ _mem.unknown1 = ~0
+ _mem.dtcs_polarity = ~0
+ _mem.name = " "
+
+ _skp |= bit
+ _psk |= bit
+
+ else:
+ _usd &= ~bit
+
+ _mem.freq = mem.freq * 3
+ _mem.offset = mem.offset * 3
+ _mem.train_sql = 0 # Train SQL mode (0:off 1:Tone 2:MSK)
+ _mem.tmode = TMODES.index(mem.tmode)
+ _mem.duplex = DUPLEX.index(mem.duplex)
+ _mem.train_tone = 228 # Train SQL Tone (x10Hz)
+ _mem.tuning_step = TUNING_STEPS.index(mem.tuning_step)
+ _mem.rtone = chirp_common.TONES.index(mem.rtone)
+ _mem.ctone = chirp_common.TONES.index(mem.ctone)
+ _mem.unknown0 = 0 # unknown (always zero)
+ _mem.mode = MODES.index(mem.mode)
+ _mem.dtcs = chirp_common.DTCS_CODES.index(mem.dtcs)
+ _mem.unknown1 = ~0 # unknown (always one)
+ _mem.dtcs_polarity = DTCS_POLARITY.index(mem.dtcs_polarity)
+ _mem.name = mem.name.ljust(6)[:6]
+
+ if mem.skip == "S":
+ _skp |= bit
+ _psk &= ~bit
+ elif mem.skip == "P":
+ _skp |= bit
+ _psk |= bit
+ else:
+ _skp &= ~bit
+ _psk &= ~bit
1
0

21 Mar '17
# HG changeset patch
# User Tom Hayward <tom(a)tomh.us>
# Date 1490072555 25200
# Mon Mar 20 22:02:35 2017 -0700
# Node ID cb2203c77d167562ad77ce005a3fc76fff3645de
# Parent 6b5b397b4859dd64603d7c4a0b91ffdbdfbe2bb6
[THD72] Fix buggy memory initialization. #1611
Allows channels added by Chirp to transmit.
diff -r 6b5b397b4859 -r cb2203c77d16 chirp/drivers/thd72.py
--- a/chirp/drivers/thd72.py Fri Mar 17 15:17:57 2017 -0700
+++ b/chirp/drivers/thd72.py Mon Mar 20 22:02:35 2017 -0700
@@ -69,6 +69,12 @@
u8 passwd[6];
} frontmatter;
+#seekto 0x02c0;
+struct {
+ ul32 start_freq;
+ ul32 end_freq;
+} prog_vfo[6];
+
#seekto 0x0300;
struct {
char power_on_msg[8];
@@ -89,8 +95,8 @@
#seekto 0x0c00;
struct {
- u8 disabled:7,
- unknown0:1;
+ u8 disabled:4,
+ prog_vfo:4;
u8 skip;
} flag[1032];
@@ -183,8 +189,23 @@
EXCH_R = "R\x00\x00\x00\x00"
EXCH_W = "W\x00\x00\x00\x00"
-# Uploads result in "MCP Error" and garbage data in memory
-# Clone driver disabled in favor of error-checking live driver.
+DEFAULT_PROG_VFO = (
+ (136000000, 174000000),
+ (410000000, 470000000),
+ (118000000, 136000000),
+ (136000000, 174000000),
+ (320000000, 400000000),
+ (400000000, 524000000),
+)
+# index of PROG_VFO used for setting memory.unknown1 and memory.unknown2
+# see http://chirp.danplanet.com/issues/1611#note-9
+UNKNOWN_LOOKUP = (0, 7, 4, 0, 4, 7)
+
+def get_prog_vfo(frequency):
+ for i, (start, end) in enumerate(DEFAULT_PROG_VFO):
+ if start <= frequency < end:
+ return i
+ raise ValueError("Frequency is out of range.")
@directory.register
@@ -283,7 +304,7 @@
def get_raw_memory(self, number):
return repr(self._memobj.memory[number]) + \
- repr(self._memobj.flag[(number)])
+ repr(self._memobj.flag[number])
def get_memory(self, number):
if isinstance(number, str):
@@ -305,7 +326,7 @@
if number > 999:
mem.extd_number = THD72_SPECIAL_REV[number]
- if flag.disabled == 0x7f:
+ if flag.disabled == 0xf:
mem.empty = True
return mem
@@ -348,9 +369,9 @@
self.add_dirty_block(self._memobj.flag[mem.number])
# only delete non-WX channels
- was_empty = flag.disabled == 0x7f
+ was_empty = flag.disabled == 0xf
if mem.empty:
- flag.disabled = 0x7f
+ flag.disabled = 0xf
return
flag.disabled = 0
@@ -373,6 +394,10 @@
_mem.offset = mem.offset
_mem.mode = MODES_REV[mem.mode]
+ prog_vfo = get_prog_vfo(mem.freq)
+ flag.prog_vfo = prog_vfo
+ _mem.unknown1 = _mem.unknown2 = UNKNOWN_LOOKUP[prog_vfo]
+
if mem.number < 999:
flag.skip = chirp_common.SKIP_VALUES.index(mem.skip)
@@ -509,9 +534,8 @@
raise errors.RadioError("No response to ID command")
def initialize(self, mmap):
- mmap[0] = \
- "\x80\xc8\xb3\x08\x00\x01\x00\x08" + \
- "\x08\x00\xc0\x27\x09\x00\x00\xff"
+ mmap.set_raw("\x00\xc8\xb3\x08\x00\x01\x00\x08"
+ "\x08\x00\xc0\x27\x09\x00\x00\x00")
def _get_settings(self):
top = RadioSettings(self._get_display_settings(),
1
0
Tested changes:
[Jim Unroe <rock.unroe(a)gmail.com>] [UV-25X2] Add Support for new BTech Color Display Mobile Radios
This patch modifies the btech.py driver to support additional
mobile radios that have an OLED color display.
Additional radio models supported:
BTech UV-25X4 (quad band)
BTech UV-25X2 (dual band)
BTech UV-50X2 (dual band)
New Model #4269
[Dan Smith <dsmith(a)danplanet.com>] Add some stuff to .hgignore for build system storage
#0
[Tom Hayward <tom(a)tomh.us>] [id880] Fix typo in charset definition. #281
[Tom Hayward <tom(a)tomh.us>] [thf6a] Support full charset (ASCII). Fixes #141
[Tom Hayward <tom(a)tomh.us>] [id880] Support full charset. Fixes #281
[Tom Hayward <tom(a)tomh.us>] [vx5] Support full charset (ASCII). Fixes #292
[Tom Hayward <tom(a)tomh.us>] [id31a] set used bit when creating new memory, clear when deleting. Fixes #269
[Tom Hayward <tom(a)tomh.us>] Support PyGTK < 2.22 in bank edit. Fixes #231
[Tom Hayward <tom(a)tomh.us>] [d710] [v71] [d72] Fix tone list (not all tones are supported). Fixes #212
[Dan Smith <dsmith(a)danplanet.com>] [vx7] Fix setting memory power levels on 220MHz band
Fixes #214
[Dan Smith <dsmith(a)danplanet.com>] fips: Pennsylvania FIPS code was wrong. #117
[Marco Filippi <iz3gme.marco(a)gmail.com>] Consider lower bound frequency of each valid_band as valid
Fix bug #181
[Tom Hayward <tom(a)tomh.us>] tmd700: allow 8-char names. Fixes #176
[Dan Smith <dsmith(a)danplanet.com>] Fix the "blind deletion" problem, as well as properly direct copy/paste
Fixes #172
[David Griffith <dave(a)661.org>] Bug #155 fix: VX-7 1.25m power levels
[David Griffith <dave(a)661.org>] New INSTALL and README files
Fixes #122
[Tom Hayward <tom(a)tomh.us>] thd72: only use hardware flow on OS X. Fixes #166
[Marco Filippi <iz3gme.marco(a)gmail.com>] [FT817] Tone freq not set correctly
Same as #88 for FT857, to avoid code duplication fix code have been moved from
ft857 to its ancestor class
Fix bug #163
[Tom Hayward <tom(a)tomh.us>] Fix Mac .app so paths with spaces work. Fixes Bug #145
Full log:
Started by an SCM change
Building in workspace /var/lib/jenkins/jobs/chirp-test/workspace
[workspace] $ hg showconfig paths.default
[workspace] $ hg pull --rev default
[workspace] $ hg update --clean --rev default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
[workspace] $ hg log --rev . --template {node}
[workspace] $ hg log --rev . --template {rev}
[workspace] $ hg log --rev 725ca2b3970cb906b4cc3a224f602d561a40a885
[workspace] $ hg log --template "<changeset node='{node}' author='{author|xmlescape}' rev='{rev}' date='{date}'><msg>{desc|xmlescape}</msg><added>{file_adds|stringify|xmlescape}</added><deleted>{file_dels|stringify|xmlescape}</deleted><files>{files|stringify|xmlescape}</files><parents>{parents}</parents></changeset>\n" --rev default:0 --follow --prune 725ca2b3970cb906b4cc3a224f602d561a40a885
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson7884399944485778806.sh
[workspace] $ /bin/sh -xe /tmp/hudson6476909661272652926.sh
+ PATH=/usr/bin:/bin:/usr/local/bin ./run_all_tests.sh
test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok
test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok
test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok
test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok
test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok
test_init (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok
test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok
test_changed (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok
test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok
test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
----------------------------------------------------------------------
Ran 151 tests in 0.053s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/platform.py:255:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1909:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1965:80: E501 line too long (82 > 79 characters)
real 0m7.620s
user 0m7.528s
sys 0m0.028s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2017-03-20 18:29:09,493] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2017-03-20 18:29:09,535] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2017-03-20 18:29:09,536] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2017-03-20 18:29:09,536] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2017-03-20 18:29:09,536] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2017-03-20 18:29:09,536] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2017-03-20 18:29:09,536] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2017-03-20 18:29:09,536] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2017-03-20 18:29:09,536] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2017-03-20 18:29:09,536] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2017-03-20 18:29:09,536] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2017-03-20 18:29:09,536] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2017-03-20 18:29:09,536] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2017-03-20 18:29:09,537] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2017-03-20 18:29:09,537] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2017-03-20 18:29:09,537] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2017-03-20 18:29:09,537] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2017-03-20 18:29:09,537] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2017-03-20 18:29:09,537] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2017-03-20 18:29:09,537] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2017-03-20 18:29:09,537] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2017-03-20 18:29:09,540] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2017-03-20 18:29:09,540] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2017-03-20 18:29:09,540] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2017-03-20 18:29:09,540] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2017-03-20 18:29:09,540] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2017-03-20 18:29:09,540] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2017-03-20 18:29:09,540] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2017-03-20 18:29:09,540] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2017-03-20 18:29:09,541] chirp.directory - INFO: Registered Alinco_DJ-G7EG = AlincoDJG7EG
[2017-03-20 18:29:09,541] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2017-03-20 18:29:09,541] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2017-03-20 18:29:09,541] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2017-03-20 18:29:09,541] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2017-03-20 18:29:09,541] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2017-03-20 18:29:09,542] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2017-03-20 18:29:09,542] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2017-03-20 18:29:09,543] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2017-03-20 18:29:09,543] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2017-03-20 18:29:09,543] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2017-03-20 18:29:09,543] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2017-03-20 18:29:09,543] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2017-03-20 18:29:09,544] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2017-03-20 18:29:09,544] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2017-03-20 18:29:09,544] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2017-03-20 18:29:09,544] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2017-03-20 18:29:09,544] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2017-03-20 18:29:09,544] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2017-03-20 18:29:09,545] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2017-03-20 18:29:09,545] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2017-03-20 18:29:09,545] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2017-03-20 18:29:09,546] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2017-03-20 18:29:09,546] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2017-03-20 18:29:09,546] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2017-03-20 18:29:09,546] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2017-03-20 18:29:09,546] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2017-03-20 18:29:09,546] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2017-03-20 18:29:09,546] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2017-03-20 18:29:09,546] chirp.directory - INFO: Registered BTECH_UV-25X2 = UV25X2
[2017-03-20 18:29:09,546] chirp.directory - INFO: Registered BTECH_UV-25X4 = UV25X4
[2017-03-20 18:29:09,546] chirp.directory - INFO: Registered BTECH_UV-50X2 = UV50X2
[2017-03-20 18:29:09,546] chirp.directory - INFO: Registered QYT_KT7900D = KT7900D
[2017-03-20 18:29:09,547] chirp.directory - INFO: Registered QYT_KT8900D = KT8900D
[2017-03-20 18:29:09,547] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2017-03-20 18:29:09,547] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2017-03-20 18:29:09,547] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2017-03-20 18:29:09,547] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2017-03-20 18:29:09,547] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2017-03-20 18:29:09,547] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2017-03-20 18:29:09,547] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2017-03-20 18:29:09,547] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2017-03-20 18:29:09,548] chirp.directory - INFO: Registered Feidaxin_FD-460UH = FD460UHRadio
[2017-03-20 18:29:09,548] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2017-03-20 18:29:09,549] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2017-03-20 18:29:09,549] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2017-03-20 18:29:09,549] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2017-03-20 18:29:09,550] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2017-03-20 18:29:09,550] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2017-03-20 18:29:09,550] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2017-03-20 18:29:09,551] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2017-03-20 18:29:09,551] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2017-03-20 18:29:09,551] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2017-03-20 18:29:09,551] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2017-03-20 18:29:09,551] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2017-03-20 18:29:09,552] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2017-03-20 18:29:09,552] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2017-03-20 18:29:09,552] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2017-03-20 18:29:09,552] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2017-03-20 18:29:09,552] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2017-03-20 18:29:09,553] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2017-03-20 18:29:09,553] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2017-03-20 18:29:09,553] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2017-03-20 18:29:09,554] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2017-03-20 18:29:09,561] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2017-03-20 18:29:09,561] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2017-03-20 18:29:09,572] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2017-03-20 18:29:09,572] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2017-03-20 18:29:09,573] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2017-03-20 18:29:09,573] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2017-03-20 18:29:09,573] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2017-03-20 18:29:09,573] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2017-03-20 18:29:09,574] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2017-03-20 18:29:09,574] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2017-03-20 18:29:09,575] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2017-03-20 18:29:09,575] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2017-03-20 18:29:09,575] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2017-03-20 18:29:09,575] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2017-03-20 18:29:09,576] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2017-03-20 18:29:09,576] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2017-03-20 18:29:09,576] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2017-03-20 18:29:09,577] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2017-03-20 18:29:09,577] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2017-03-20 18:29:09,577] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2017-03-20 18:29:09,577] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2017-03-20 18:29:09,577] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2017-03-20 18:29:09,578] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2017-03-20 18:29:09,578] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2017-03-20 18:29:09,578] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2017-03-20 18:29:09,579] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2017-03-20 18:29:09,579] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2017-03-20 18:29:09,579] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2017-03-20 18:29:09,580] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2017-03-20 18:29:09,580] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2017-03-20 18:29:09,580] chirp.directory - INFO: Registered Jetstream_JT270MH = JetstreamJT270MHRadio
[2017-03-20 18:29:09,580] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2017-03-20 18:29:09,581] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2017-03-20 18:29:09,582] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2017-03-20 18:29:09,582] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2017-03-20 18:29:09,582] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2017-03-20 18:29:09,583] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2017-03-20 18:29:09,583] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2017-03-20 18:29:09,583] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2017-03-20 18:29:09,584] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2017-03-20 18:29:09,584] chirp.directory - INFO: Registered Retevis_RT1 = RT1Radio
[2017-03-20 18:29:09,584] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2017-03-20 18:29:09,584] chirp.directory - INFO: Registered Retevis_RT22 = RT22Radio
[2017-03-20 18:29:09,585] chirp.directory - INFO: Registered WLN_KD-C1 = KDC1
[2017-03-20 18:29:09,585] chirp.directory - INFO: Registered Zastone_ZT-X6 = ZTX6
[2017-03-20 18:29:09,585] chirp.directory - INFO: Registered LUITON_LT-316 = LT316
[2017-03-20 18:29:09,585] chirp.directory - INFO: Registered TID_TD-M8 = TDM8
[2017-03-20 18:29:09,585] chirp.directory - INFO: Registered TDXone_TD-Q8A = TDXoneTDQ8A
[2017-03-20 18:29:09,586] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2017-03-20 18:29:09,586] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2017-03-20 18:29:09,586] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2017-03-20 18:29:09,586] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2017-03-20 18:29:09,586] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2017-03-20 18:29:09,587] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2017-03-20 18:29:09,587] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2017-03-20 18:29:09,587] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2017-03-20 18:29:09,587] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2017-03-20 18:29:09,587] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2017-03-20 18:29:09,588] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2017-03-20 18:29:09,588] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2017-03-20 18:29:09,588] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2017-03-20 18:29:09,588] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2017-03-20 18:29:09,589] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2017-03-20 18:29:09,589] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2017-03-20 18:29:09,589] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2017-03-20 18:29:09,589] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2017-03-20 18:29:09,589] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2017-03-20 18:29:09,589] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2017-03-20 18:29:09,589] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2017-03-20 18:29:09,589] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2017-03-20 18:29:09,590] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2017-03-20 18:29:09,590] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2017-03-20 18:29:09,590] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2017-03-20 18:29:09,590] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2017-03-20 18:29:09,590] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2017-03-20 18:29:09,590] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2017-03-20 18:29:09,590] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2017-03-20 18:29:09,591] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2017-03-20 18:29:09,592] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2017-03-20 18:29:09,592] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2017-03-20 18:29:09,592] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2017-03-20 18:29:09,592] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2017-03-20 18:29:09,592] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2017-03-20 18:29:09,593] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2017-03-20 18:29:09,593] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2017-03-20 18:29:09,593] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2017-03-20 18:29:09,594] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2017-03-20 18:29:09,594] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2017-03-20 18:29:09,594] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2017-03-20 18:29:09,595] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2017-03-20 18:29:09,595] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2017-03-20 18:29:09,595] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2017-03-20 18:29:09,596] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2017-03-20 18:29:09,596] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2017-03-20 18:29:09,596] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2017-03-20 18:29:09,596] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2017-03-20 18:29:09,597] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0
Hello,
Recently I bought ICOM's IC-P7 transceiver and CS-P7 software.
I want to use CHIRP with this rig and I tried to analyze .ICF file.
I am not familiar with Python (because I was C programmer),
so I write the result here for developer's help.
- - - - - - - -
*** memory layout
0x0000 memory settings (1251 channels, 21bytes/channel)
ch #0~999 normal memory ch.0~999
ch #1000~1049 Prog.scan edge 00A, 00B ... 24A, 24B
ch #1050~1249 auto write (?)
ch #1250 CALL0
ch #1251 CALL1
0x6922 skip flag (bitmap, 1056 bits) (ch #0~1049)
0x69a6 pskip flag (bitmap, 1056 bits) (ch #0~1049)
bit position = byte[(ch# / 8)] & (1 << (ch# % 8))
skip pskip
0 0 off
1 0 skip
1 1 pskip
0 1 unknown
0x6b1e memory bank settings
{uint8_t bank_group (0x00~0x11, 0xff: unused)
uint8_t bank_index (0x00~0x63) } x 1050 channels
0x7352 bank name
{char bank_name[6]} x 18 entries
*** channel entry
21bytes/channel, all values are little-endian.
{uint32_t freq
uint32_t offset
uint16_t train_sql
uint16_t tone_setting
uint16_t dtcs_mode
uint8_t dtcs_polarity
uint8_t name[6]}
freq and offset:
Values are specified in 1/3Hz.
i.e. 3000000(0x002dc6c0) means 1.0MHz.
freq range is 0.495~999.99MHz and offset is 0~159.995MHz.
train_sql:
bit[15:14]
00 Train SQL: off
01 Train SQL: tone eliminate (use bit[8:0])
10 Train SQL: MSK
bit[13:11]
000 no tone
001 Tone enable
010 TSQL enable
100 DTCS enable
bit[10:9]
00 duplex: off
01 duplex: on (-)
10 duplex: on (+)
bit[8:0]
Train SQL tone frequency (300~3000Hz)
the value is specified in 10Hz.
For example: 228(0xe4) means 2280Hz.
- In Japan, train radio sends simple tone or MSK signal
when no conversation. Train SQL suppress these tone/signal
to listen easy.
tone_setting:
bit[15:12]
0000 TS: 5.0kHz
0001 TS: 6.25kHz
0010 TS: 8.33kHz
0011 TS: 9.0kHz
0100 TS: 10.0kHz
0101 TS: 12.5kHz
0110 TS: 15.0kHz
0111 TS: 20.0kHz
1000 TS: 25.0kHz
1001 TS: 30.0kHz
1010 TS: 50.0kHz
1011 TS: 100.0kHz
1100 TS: 200.0kHz
1101 TS: Auto
bit[11:6]
000000 TSQL tone: 67.0Hz
000001 TSQL tone: 69.3Hz
000010 TSQL tone: 71.9Hz
:
101111 TSQL tone: 241.8Hz
110000 TSQL tone: 250.3Hz
110001 TSQL tone: 254.1Hz
bit[5:0]
CTCSS tone, format is same as TSQL tone
dtcs_mode:
bit[15:9]
unknown, '0000000'
bit[8:7]
00 mode: FM
01 mode: WFM
10 mode: AM
11 mode: Auto
bit[6:0]
000000 DTCS code: 023
000001 DTCS code: 025
000010 DTCS code: 026
:
110101 DTCS code: 734
110110 DTCS code: 743
110111 DTCS code: 754
dtcs_polarity:
bit[7:2]
unknown, '111111'
bit[1:0]
00 DTCS polarity: Both-N
01 DTCS polarity: TN-RR
10 DTCS polarity: TR-RN
11 DTCS polarity: Both-R
- When channel entry is empty, these values are set:
freq 0x3a98 (499.5kHz)
offset 0x1c9bfd68 (159.995MHz)
train_sql 0xffff
tone_setting 0xffff
dtcs_mode 0x03ff
dtcs_polarity 0xff
name {0x20, 0x20, 0x20, 0x20, 0x20, 0x20}
skip and pskip "11"
- - - - - - - -
.ICF contains current rig status such as VFO frequency, power (Lo/Hi),
beep volume and so on, but I don't check yet because these are not
fundamental.
And some stuff:
_model = "\x28\x69\x00\x01"
The first line of .ICF and CHIRP's message says
"ERROR: Unknown radio type 28690001" same code.
_memsize = 0x7500
_endframe = "Icom Inc\x2e\x41\x38"
What does \x41\x38 means? Is there any reason
not to simply use "Icom Inc." ??
Regards,
--
SASANO Takayoshi (JG1UAA) <uaa(a)mx5.nisiq.net>
1
0

18 Mar '17
# HG changeset patch
# User Tom Hayward <tom(a)tomh.us>
# Date 1489813179 25200
# Fri Mar 17 21:59:39 2017 -0700
# Node ID 027d861a73342f6208f4f977d844b2caf4be5721
# Parent 6b5b397b4859dd64603d7c4a0b91ffdbdfbe2bb6
[THD72] Fix buggy memory initialization. #1611
Allows channels added by Chirp to transmit. As a side effect, transmit inhibit
is now optional (rather than compulsary).
diff -r 6b5b397b4859 -r 027d861a7334 chirp/drivers/thd72.py
--- a/chirp/drivers/thd72.py Fri Mar 17 15:17:57 2017 -0700
+++ b/chirp/drivers/thd72.py Fri Mar 17 21:59:39 2017 -0700
@@ -90,7 +90,7 @@
#seekto 0x0c00;
struct {
u8 disabled:7,
- unknown0:1;
+ txinhibit:1;
u8 skip;
} flag[1032];
@@ -183,9 +183,6 @@
EXCH_R = "R\x00\x00\x00\x00"
EXCH_W = "W\x00\x00\x00\x00"
-# Uploads result in "MCP Error" and garbage data in memory
-# Clone driver disabled in favor of error-checking live driver.
-
@directory.register
class THD72Radio(chirp_common.CloneModeRadio):
@@ -224,7 +221,7 @@
rf.valid_tuning_steps = []
rf.valid_modes = MODES_REV.keys()
rf.valid_tmodes = TMODES_REV.keys()
- rf.valid_duplexes = DUPLEX_REV.keys()
+ rf.valid_duplexes = DUPLEX_REV.keys() + ["off"]
rf.valid_skips = ["", "S"]
rf.valid_characters = chirp_common.CHARSET_ALPHANUMERIC
rf.valid_name_length = 8
@@ -283,7 +280,7 @@
def get_raw_memory(self, number):
return repr(self._memobj.memory[number]) + \
- repr(self._memobj.flag[(number)])
+ repr(self._memobj.flag[number])
def get_memory(self, number):
if isinstance(number, str):
@@ -315,7 +312,7 @@
mem.rtone = chirp_common.TONES[_mem.rtone]
mem.ctone = chirp_common.TONES[_mem.ctone]
mem.dtcs = chirp_common.DTCS_CODES[_mem.dtcs]
- mem.duplex = DUPLEX[int(_mem.duplex)]
+ mem.duplex = flag.txinhibit and "off" or DUPLEX[int(_mem.duplex)]
mem.offset = int(_mem.offset)
mem.mode = MODES[int(_mem.mode)]
@@ -369,7 +366,8 @@
_mem.ctone = chirp_common.TONES.index(mem.ctone)
_mem.dtcs = chirp_common.DTCS_CODES.index(mem.dtcs)
_mem.cross_mode = chirp_common.CROSS_MODES.index(mem.cross_mode)
- _mem.duplex = DUPLEX_REV[mem.duplex]
+ flag.txinhibit = mem.duplex == "off"
+ _mem.duplex = DUPLEX_REV.get(mem.duplex, 0)
_mem.offset = mem.offset
_mem.mode = MODES_REV[mem.mode]
@@ -509,9 +507,8 @@
raise errors.RadioError("No response to ID command")
def initialize(self, mmap):
- mmap[0] = \
- "\x80\xc8\xb3\x08\x00\x01\x00\x08" + \
- "\x08\x00\xc0\x27\x09\x00\x00\xff"
+ mmap.set_raw("\x00\xc8\xb3\x08\x00\x01\x00\x08"
+ "\x08\x00\xc0\x27\x09\x00\x00\x00")
def _get_settings(self):
top = RadioSettings(self._get_display_settings(),
2
1
I am working on support for the Retevis RT23. I've captured a serial
download. I've even successfully downloaded a "factory" image from the
radio. But after looking at the data blocks, it appears that there is
a checksum at the end of each block of data.
In this block the checksum is 0xf0
[11/03/2017 16:23:00] Read data (COM2)
57 0e 10 10 ff ff ff ff ff ff ff ff ff ff ff ff W...ÿÿÿÿÿÿÿÿÿÿÿÿ
ff ff ff ff f0 ÿÿÿÿð
In this block the checksum is 0x83
[11/03/2017 16:23:00] Read data (COM2)
57 0e 40 10 89 08 ff ff ff ff ff ff ff ff ff ff W.@.‰.ÿÿÿÿÿÿÿÿÿÿ
ff ff ff ff 83 ÿÿÿÿƒ
In this block the checksum is 0xf5
[11/03/2017 16:23:00] Read data (COM2)
57 0e 50 10 00 00 55 16 00 00 35 46 ff ff ff ff W.P...U...5Fÿÿÿÿ
00 00 14 ff f5 ...ÿõ
And this block the checksum is 0x00
[11/03/2017 16:23:00] Read data (COM2)
57 0d 90 10 00 00 00 00 00 00 00 00 00 00 00 00 W. .............
00 00 00 00 00 .....
To be honest, I don't have a clue how to figure out a formula to
calculate this checksum. Any help with this would be greatly
appreciated.
I have attached the complete serial port capture. Thanks in advance.
Jim KC9HI
3
2
Tested changes:
[Jim Unroe <rock.unroe(a)gmail.com>] [TH-UV3R] DTCS Bug in TYT TH-UV3R Driver
The typos in this driver were discovered when researching DTCS code
being addressed in the Retevis RT22 and other radio models.
Related to #4585
[Dan Smith <dsmith(a)danplanet.com>] Add test image for #4585
[Jim Unroe <rock.unroe(a)gmail.com>] [NC-630A] DTCS Bug in KYD NC-630A Driver
This patch addresses the bug where the DTCS Tone value can't
but updated when Tone Mode is set to DTCS.
Related to #4585
[Dan Smith <dsmith(a)danplanet.com>] Fix unregistered TID TD-M8 model
#4597
[Tom Hayward <tom(a)tomh.us>] [id880] Fix typo in charset definition. #281
[Tom Hayward <tom(a)tomh.us>] [thf6a] Support full charset (ASCII). Fixes #141
[Tom Hayward <tom(a)tomh.us>] [id880] Support full charset. Fixes #281
[Tom Hayward <tom(a)tomh.us>] [vx5] Support full charset (ASCII). Fixes #292
[Tom Hayward <tom(a)tomh.us>] [id31a] set used bit when creating new memory, clear when deleting. Fixes #269
[Tom Hayward <tom(a)tomh.us>] Support PyGTK < 2.22 in bank edit. Fixes #231
[Tom Hayward <tom(a)tomh.us>] [d710] [v71] [d72] Fix tone list (not all tones are supported). Fixes #212
[Dan Smith <dsmith(a)danplanet.com>] [vx7] Fix setting memory power levels on 220MHz band
Fixes #214
[Dan Smith <dsmith(a)danplanet.com>] fips: Pennsylvania FIPS code was wrong. #117
[Marco Filippi <iz3gme.marco(a)gmail.com>] Consider lower bound frequency of each valid_band as valid
Fix bug #181
[Tom Hayward <tom(a)tomh.us>] tmd700: allow 8-char names. Fixes #176
[Dan Smith <dsmith(a)danplanet.com>] Fix the "blind deletion" problem, as well as properly direct copy/paste
Fixes #172
[David Griffith <dave(a)661.org>] Bug #155 fix: VX-7 1.25m power levels
[David Griffith <dave(a)661.org>] New INSTALL and README files
Fixes #122
[Tom Hayward <tom(a)tomh.us>] thd72: only use hardware flow on OS X. Fixes #166
[Marco Filippi <iz3gme.marco(a)gmail.com>] [FT817] Tone freq not set correctly
Same as #88 for FT857, to avoid code duplication fix code have been moved from
ft857 to its ancestor class
Fix bug #163
[Tom Hayward <tom(a)tomh.us>] Fix Mac .app so paths with spaces work. Fixes Bug #145
Full log:
Started by an SCM change
Building in workspace /var/lib/jenkins/jobs/chirp-test/workspace
[workspace] $ hg showconfig paths.default
[workspace] $ hg pull --rev default
[workspace] $ hg update --clean --rev default
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
[workspace] $ hg log --rev . --template {node}
[workspace] $ hg log --rev . --template {rev}
[workspace] $ hg log --rev eb1494c50582a387728e4f67972fbd7ecdd26b4b
[workspace] $ hg log --template "<changeset node='{node}' author='{author|xmlescape}' rev='{rev}' date='{date}'><msg>{desc|xmlescape}</msg><added>{file_adds|stringify|xmlescape}</added><deleted>{file_dels|stringify|xmlescape}</deleted><files>{files|stringify|xmlescape}</files><parents>{parents}</parents></changeset>\n" --rev default:0 --follow --prune eb1494c50582a387728e4f67972fbd7ecdd26b4b
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson4674258440079592294.sh
[workspace] $ /bin/sh -xe /tmp/hudson672110449151421753.sh
+ PATH=/usr/bin:/bin:/usr/local/bin ./run_all_tests.sh
test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok
test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok
test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok
test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok
test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok
test_init (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok
test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok
test_changed (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok
test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok
test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
----------------------------------------------------------------------
Ran 151 tests in 0.052s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/platform.py:255:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1909:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1965:80: E501 line too long (82 > 79 characters)
real 0m7.679s
user 0m7.564s
sys 0m0.044s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2017-03-10 09:19:13,557] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2017-03-10 09:19:13,595] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2017-03-10 09:19:13,596] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2017-03-10 09:19:13,596] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2017-03-10 09:19:13,596] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2017-03-10 09:19:13,596] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2017-03-10 09:19:13,596] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2017-03-10 09:19:13,596] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2017-03-10 09:19:13,596] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2017-03-10 09:19:13,596] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2017-03-10 09:19:13,596] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2017-03-10 09:19:13,596] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2017-03-10 09:19:13,596] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2017-03-10 09:19:13,597] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2017-03-10 09:19:13,597] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2017-03-10 09:19:13,597] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2017-03-10 09:19:13,597] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2017-03-10 09:19:13,597] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2017-03-10 09:19:13,597] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2017-03-10 09:19:13,597] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2017-03-10 09:19:13,597] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2017-03-10 09:19:13,600] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2017-03-10 09:19:13,600] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2017-03-10 09:19:13,600] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2017-03-10 09:19:13,600] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2017-03-10 09:19:13,600] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2017-03-10 09:19:13,600] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2017-03-10 09:19:13,600] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2017-03-10 09:19:13,600] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2017-03-10 09:19:13,600] chirp.directory - INFO: Registered Alinco_DJ-G7EG = AlincoDJG7EG
[2017-03-10 09:19:13,601] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2017-03-10 09:19:13,601] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2017-03-10 09:19:13,601] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2017-03-10 09:19:13,601] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2017-03-10 09:19:13,601] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2017-03-10 09:19:13,601] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2017-03-10 09:19:13,602] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2017-03-10 09:19:13,603] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2017-03-10 09:19:13,603] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2017-03-10 09:19:13,603] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2017-03-10 09:19:13,603] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2017-03-10 09:19:13,603] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2017-03-10 09:19:13,604] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2017-03-10 09:19:13,604] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2017-03-10 09:19:13,604] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2017-03-10 09:19:13,604] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2017-03-10 09:19:13,604] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2017-03-10 09:19:13,604] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2017-03-10 09:19:13,604] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2017-03-10 09:19:13,605] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2017-03-10 09:19:13,605] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2017-03-10 09:19:13,606] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2017-03-10 09:19:13,606] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2017-03-10 09:19:13,606] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2017-03-10 09:19:13,606] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2017-03-10 09:19:13,606] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2017-03-10 09:19:13,606] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2017-03-10 09:19:13,606] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2017-03-10 09:19:13,606] chirp.directory - INFO: Registered QYT_KT7900D = KT7900D
[2017-03-10 09:19:13,606] chirp.directory - INFO: Registered QYT_KT8900D = KT8900D
[2017-03-10 09:19:13,607] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2017-03-10 09:19:13,607] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2017-03-10 09:19:13,607] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2017-03-10 09:19:13,607] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2017-03-10 09:19:13,607] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2017-03-10 09:19:13,607] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2017-03-10 09:19:13,607] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2017-03-10 09:19:13,607] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2017-03-10 09:19:13,607] chirp.directory - INFO: Registered Feidaxin_FD-460UH = FD460UHRadio
[2017-03-10 09:19:13,608] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2017-03-10 09:19:13,609] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2017-03-10 09:19:13,609] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2017-03-10 09:19:13,609] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2017-03-10 09:19:13,609] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2017-03-10 09:19:13,610] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2017-03-10 09:19:13,610] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2017-03-10 09:19:13,610] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2017-03-10 09:19:13,610] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2017-03-10 09:19:13,611] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2017-03-10 09:19:13,611] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2017-03-10 09:19:13,611] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2017-03-10 09:19:13,611] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2017-03-10 09:19:13,612] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2017-03-10 09:19:13,612] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2017-03-10 09:19:13,612] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2017-03-10 09:19:13,612] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2017-03-10 09:19:13,613] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2017-03-10 09:19:13,613] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2017-03-10 09:19:13,613] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2017-03-10 09:19:13,613] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2017-03-10 09:19:13,621] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2017-03-10 09:19:13,621] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2017-03-10 09:19:13,625] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2017-03-10 09:19:13,625] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2017-03-10 09:19:13,625] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2017-03-10 09:19:13,625] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2017-03-10 09:19:13,625] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2017-03-10 09:19:13,626] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2017-03-10 09:19:13,626] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2017-03-10 09:19:13,626] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2017-03-10 09:19:13,627] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2017-03-10 09:19:13,627] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2017-03-10 09:19:13,627] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2017-03-10 09:19:13,627] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2017-03-10 09:19:13,627] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2017-03-10 09:19:13,627] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2017-03-10 09:19:13,628] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2017-03-10 09:19:13,628] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2017-03-10 09:19:13,628] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2017-03-10 09:19:13,628] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2017-03-10 09:19:13,629] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2017-03-10 09:19:13,629] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2017-03-10 09:19:13,629] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2017-03-10 09:19:13,629] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2017-03-10 09:19:13,629] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2017-03-10 09:19:13,630] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2017-03-10 09:19:13,630] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2017-03-10 09:19:13,630] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2017-03-10 09:19:13,631] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2017-03-10 09:19:13,631] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2017-03-10 09:19:13,631] chirp.directory - INFO: Registered Jetstream_JT270MH = JetstreamJT270MHRadio
[2017-03-10 09:19:13,631] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2017-03-10 09:19:13,631] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2017-03-10 09:19:13,633] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2017-03-10 09:19:13,633] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2017-03-10 09:19:13,633] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2017-03-10 09:19:13,633] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2017-03-10 09:19:13,633] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2017-03-10 09:19:13,633] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2017-03-10 09:19:13,634] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2017-03-10 09:19:13,634] chirp.directory - INFO: Registered Retevis_RT1 = RT1Radio
[2017-03-10 09:19:13,634] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2017-03-10 09:19:13,635] chirp.directory - INFO: Registered Retevis_RT22 = RT22Radio
[2017-03-10 09:19:13,635] chirp.directory - INFO: Registered WLN_KD-C1 = KDC1
[2017-03-10 09:19:13,635] chirp.directory - INFO: Registered Zastone_ZT-X6 = ZTX6
[2017-03-10 09:19:13,635] chirp.directory - INFO: Registered LUITON_LT-316 = LT316
[2017-03-10 09:19:13,635] chirp.directory - INFO: Registered TID_TD-M8 = TDM8
[2017-03-10 09:19:13,635] chirp.directory - INFO: Registered TDXone_TD-Q8A = TDXoneTDQ8A
[2017-03-10 09:19:13,636] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2017-03-10 09:19:13,636] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2017-03-10 09:19:13,636] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2017-03-10 09:19:13,636] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2017-03-10 09:19:13,636] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2017-03-10 09:19:13,637] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2017-03-10 09:19:13,637] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2017-03-10 09:19:13,637] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2017-03-10 09:19:13,637] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2017-03-10 09:19:13,638] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2017-03-10 09:19:13,638] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2017-03-10 09:19:13,638] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2017-03-10 09:19:13,638] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2017-03-10 09:19:13,639] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2017-03-10 09:19:13,639] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2017-03-10 09:19:13,639] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2017-03-10 09:19:13,639] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2017-03-10 09:19:13,639] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2017-03-10 09:19:13,639] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2017-03-10 09:19:13,639] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2017-03-10 09:19:13,640] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2017-03-10 09:19:13,640] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2017-03-10 09:19:13,640] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2017-03-10 09:19:13,640] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2017-03-10 09:19:13,640] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2017-03-10 09:19:13,640] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2017-03-10 09:19:13,640] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2017-03-10 09:19:13,641] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2017-03-10 09:19:13,642] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2017-03-10 09:19:13,642] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2017-03-10 09:19:13,642] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2017-03-10 09:19:13,642] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2017-03-10 09:19:13,642] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2017-03-10 09:19:13,642] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2017-03-10 09:19:13,643] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2017-03-10 09:19:13,643] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2017-03-10 09:19:13,643] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2017-03-10 09:19:13,644] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2017-03-10 09:19:13,644] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2017-03-10 09:19:13,644] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2017-03-10 09:19:13,645] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2017-03-10 09:19:13,645] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2017-03-10 09:19:13,645] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2017-03-10 09:19:13,646] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2017-03-10 09:19:13,646] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2017-03-10 09:19:13,646] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2017-03-10 09:19:13,647] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2017-03-10 09:19:13,647] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2017-03-10 09:19:13,647] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0