Developers
Threads by month
- ----- 2025 -----
- 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
- 1 participants
- 2965 discussions
[chirp_devel] [PATCH] VX8: get_raw_memory() was off by one, making #1735 difficult to troubleshoot
by Tom Hayward 20 Jan '17
by Tom Hayward 20 Jan '17
20 Jan '17
# HG changeset patch
# User Tom Hayward <tom(a)tomh.us>
# Date 1484896035 28800
# Thu Jan 19 23:07:15 2017 -0800
# Node ID 0bbcdaad7e2305e10030ab9bf0b7220d68a52a7c
# Parent a2d508fa84807970d3844f66597f4dc5938ce8c7
VX8: get_raw_memory() was off by one, making #1735 difficult to troubleshoot.
diff -r a2d508fa8480 -r 0bbcdaad7e23 chirp/drivers/vx8.py
--- a/chirp/drivers/vx8.py Fri Jan 20 10:31:46 2017 -0800
+++ b/chirp/drivers/vx8.py Thu Jan 19 23:07:15 2017 -0800
@@ -550,7 +550,7 @@
return rf
def get_raw_memory(self, number):
- return repr(self._memobj.memory[number])
+ return repr(self._memobj.memory[number-1])
def _checksums(self):
return [yaesu_clone.YaesuChecksum(0x064A, 0x06C8),
1
0
Somebody has offered to send his IC-2730a to a developer. I just wanted to
bring it to the attention of the list in case anybody is available to help
but didn't see the offer.
http://chirp.danplanet.com/issues/2745
2
1
[chirp_devel] [PATCH 0 of 1] Query/Import RepeaterBook by Proximity. #3261
by Tom Hayward 15 Jan '17
by Tom Hayward 15 Jan '17
15 Jan '17
Oops, last very had an extra print statement I was using for debugging.
Apply this one.
Tom
1
1
15 Jan '17
# HG changeset patch
# User Tom Hayward <tom(a)tomh.us>
# Date 1484520680 28800
# Sun Jan 15 14:51:20 2017 -0800
# Node ID d013774b40f91784b33c1fe7ea672cbbdd77ab51
# Parent 2d6eac7045613677c20ebadd4e5e4c23888423be
Query/Import RepeaterBook by Proximity. #3261
diff -r 2d6eac704561 -r d013774b40f9 chirp/drivers/repeaterbook.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/chirp/drivers/repeaterbook.py Sun Jan 15 14:51:20 2017 -0800
@@ -0,0 +1,32 @@
+# Copyright 2016 Tom Hayward <tom(a)tomh.us>
+#
+# 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 import chirp_common
+from chirp.drivers import generic_csv
+
+
+class RBRadio(generic_csv.CSVRadio, chirp_common.NetworkSourceRadio):
+ VENDOR = "RepeaterBook"
+ MODEL = ""
+
+ def _clean_comment(self, headers, line, mem):
+ "Converts iso-8859-1 encoded comments to unicode for pyGTK."
+ mem.comment = unicode(mem.comment, 'iso-8859-1')
+ return mem
+
+ def _clean_name(self, headers, line, mem):
+ "Converts iso-8859-1 encoded names to unicode for pyGTK."
+ mem.name = unicode(mem.name, 'iso-8859-1')
+ return mem
diff -r 2d6eac704561 -r d013774b40f9 chirp/ui/mainapp.py
--- a/chirp/ui/mainapp.py Sat Jan 14 20:22:23 2017 -0800
+++ b/chirp/ui/mainapp.py Sun Jan 15 14:51:20 2017 -0800
@@ -29,7 +29,7 @@
from chirp.ui import inputdialog, common
from chirp import platform, directory, util
-from chirp.drivers import generic_xml, generic_csv
+from chirp.drivers import generic_xml, generic_csv, repeaterbook
from chirp.drivers import ic9x, kenwood_live, idrp, vx7, vx5, vx6
from chirp.drivers import icf, ic9x_icf
from chirp import CHIRP_VERSION, chirp_common, detect, errors
@@ -867,7 +867,7 @@
self.window.set_cursor(None)
- def do_repeaterbook_prompt(self):
+ def do_repeaterbook_political_prompt(self):
if not CONF.get_bool("has_seen_credit", "repeaterbook"):
d = gtk.MessageDialog(parent=self, buttons=gtk.BUTTONS_OK)
d.set_markup("<big><big><b>RepeaterBook</b></big>\r\n" +
@@ -943,9 +943,9 @@
return True
- def do_repeaterbook(self, do_import):
+ def do_repeaterbook_political(self, do_import):
self.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
- if not self.do_repeaterbook_prompt():
+ if not self.do_repeaterbook_political_prompt():
self.window.set_cursor(None)
return
@@ -973,6 +973,7 @@
query = query % (code,
band and band or "%%",
county and county or "%%")
+ print query
# Do this in case the import process is going to take a while
# to make sure we process events leading up to this
@@ -988,24 +989,117 @@
self.window.set_cursor(None)
return
- class RBRadio(generic_csv.CSVRadio,
- chirp_common.NetworkSourceRadio):
- VENDOR = "RepeaterBook"
- MODEL = ""
+ try:
+ # Validate CSV
+ radio = repeaterbook.RBRadio(filename)
+ if radio.errors:
+ reporting.report_misc_error("repeaterbook",
+ ("query=%s\n" % query) +
+ ("\n") +
+ ("\n".join(radio.errors)))
+ except errors.InvalidDataError, e:
+ common.show_error(str(e))
+ self.window.set_cursor(None)
+ return
+ except Exception, e:
+ common.log_exception()
- def _clean_comment(self, headers, line, mem):
- "Converts iso-8859-1 encoded comments to unicode for pyGTK."
- mem.comment = unicode(mem.comment, 'iso-8859-1')
- return mem
+ reporting.report_model_usage(radio, "import", True)
- def _clean_name(self, headers, line, mem):
- "Converts iso-8859-1 encoded names to unicode for pyGTK."
- mem.name = unicode(mem.name, 'iso-8859-1')
- return mem
+ self.window.set_cursor(None)
+ if do_import:
+ eset = self.get_current_editorset()
+ count = eset.do_import(filename)
+ else:
+ self.do_open_live(radio, read_only=True)
+
+ def do_repeaterbook_proximity_prompt(self):
+ default_band = "--All--"
+ try:
+ code = int(CONF.get("band", "repeaterbook"))
+ for k, v in RB_BANDS.items():
+ if code == v:
+ default_band = k
+ break
+ except:
+ pass
+ fields = {"1Location": (gtk.Entry(), lambda x: x.get_text()),
+ "2Distance": (gtk.Entry(), lambda x: x.get_text()),
+ "3Band": (miscwidgets.make_choice(
+ sorted(RB_BANDS.keys(), key=key_bands),
+ False, default_band),
+ lambda x: RB_BANDS[x.get_active_text()]),
+ }
+
+ d = inputdialog.FieldDialog(title=_("RepeaterBook Query"),
+ parent=self)
+ for k in sorted(fields.keys()):
+ d.add_field(k[1:], fields[k][0])
+ if isinstance(fields[k][0], gtk.Entry):
+ fields[k][0].set_text(
+ CONF.get(k[1:].lower(), "repeaterbook") or "")
+
+ while d.run() == gtk.RESPONSE_OK:
+ valid = True
+ for k, (widget, fn) in fields.items():
+ try:
+ print "set:", k[1:].lower(), fn(widget)
+ CONF.set(
+ k[1:].lower(), str(fn(widget)), "repeaterbook")
+ continue
+ except NotImplementedError:
+ pass
+ common.show_error("Invalid value for %s" % k[1:])
+ valid = False
+ break
+
+ if valid:
+ d.destroy()
+ return True
+
+ d.destroy()
+ return False
+
+ def do_repeaterbook_proximity(self, do_import):
+ self.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
+ if not self.do_repeaterbook_proximity_prompt():
+ self.window.set_cursor(None)
+ return
+
+ loc = CONF.get("location", "repeaterbook")
+
+ try:
+ dist = int(CONF.get("distance", "repeaterbook"))
+ except:
+ dist = 20
+
+ try:
+ band = int(CONF.get("band", "repeaterbook")) or '%'
+ band = str(band)
+ except:
+ band = '%'
+
+ query = "https://www.repeaterbook.com/repeaters/downloads/CHIRP/" \
+ "app_direct.php?loc=%s&band=%s&dist=%s" % (loc, band, dist)
+ print query
+
+ # Do this in case the import process is going to take a while
+ # to make sure we process events leading up to this
+ gtk.gdk.window_process_all_updates()
+ while gtk.events_pending():
+ gtk.main_iteration(False)
+
+ fn = tempfile.mktemp(".csv")
+ filename, headers = urllib.urlretrieve(query, fn)
+ if not os.path.exists(filename):
+ LOG.error("Failed, headers were: %s", headers)
+ common.show_error(_("RepeaterBook query failed"))
+ self.window.set_cursor(None)
+ return
try:
# Validate CSV
- radio = RBRadio(filename)
+ radio = repeaterbook.RBRadio(filename)
if radio.errors:
reporting.report_misc_error("repeaterbook",
("query=%s\n" % query) +
@@ -1505,8 +1599,10 @@
self.do_radioreference(action[0] == "i")
elif action == "export":
self.do_export()
- elif action in ["qrbook", "irbook"]:
- self.do_repeaterbook(action[0] == "i")
+ elif action in ["qrbookpolitical", "irbookpolitical"]:
+ self.do_repeaterbook_political(action[0] == "i")
+ elif action in ["qrbookproximity", "irbookproximity"]:
+ self.do_repeaterbook_proximity(action[0] == "i")
elif action in ["qpr", "ipr"]:
self.do_przemienniki(action[0] == "i")
elif action == "about":
@@ -1596,14 +1692,20 @@
<menu action="importsrc" name="importsrc">
<menuitem action="idmrmarc"/>
<menuitem action="iradioreference"/>
- <menuitem action="irbook"/>
+ <menu action="irbook" name="irbook">
+ <menuitem action="irbookpolitical"/>
+ <menuitem action="irbookproximity"/>
+ </menu>
<menuitem action="ipr"/>
<menuitem action="irfinder"/>
</menu>
<menu action="querysrc" name="querysrc">
<menuitem action="qdmrmarc"/>
<menuitem action="qradioreference"/>
- <menuitem action="qrbook"/>
+ <menu action="qrbook" name="qrbook">
+ <menuitem action="qrbookpolitical"/>
+ <menuitem action="qrbookproximity"/>
+ </menu>
<menuitem action="qpr"/>
<menuitem action="qrfinder"/>
</menu>
@@ -1679,6 +1781,10 @@
None, None, self.mh),
('irfinder', None, _("RFinder"), None, None, self.mh),
('irbook', None, _("RepeaterBook"), None, None, self.mh),
+ ('irbookpolitical', None, _("RepeaterBook political query"), None,
+ None, self.mh),
+ ('irbookproximity', None, _("RepeaterBook proximity query"), None,
+ None, self.mh),
('ipr', None, _("przemienniki.net"), None, None, self.mh),
('querysrc', None, _("Query data source"), None, None, self.mh),
('qdmrmarc', None, _("DMR-MARC Repeaters"), None, None, self.mh),
@@ -1687,6 +1793,10 @@
('qrfinder', None, _("RFinder"), None, None, self.mh),
('qpr', None, _("przemienniki.net"), None, None, self.mh),
('qrbook', None, _("RepeaterBook"), None, None, self.mh),
+ ('qrbookpolitical', None, _("RepeaterBook political query"), None,
+ None, self.mh),
+ ('qrbookproximity', None, _("RepeaterBook proximity query"), None,
+ None, self.mh),
('export_chirp', None, _("CHIRP Native File"),
None, None, self.mh),
('export_csv', None, _("CSV File"), None, None, self.mh),
1
0
Tested changes:
[Tom Hayward <tom(a)tomh.us>] Add query/import from DMR-MARC repeater database. #4411
[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
3 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 3009f7e686dfbab4672c86ce8bef34eb47df2d57
[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 3009f7e686dfbab4672c86ce8bef34eb47df2d57
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson4211798731360792163.sh
[workspace] $ /bin/sh -xe /tmp/hudson6227721130007657926.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.055s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
real 0m7.662s
user 0m7.520s
sys 0m0.060s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2017-01-14 10:44:07,251] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2017-01-14 10:44:07,288] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2017-01-14 10:44:07,288] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2017-01-14 10:44:07,288] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2017-01-14 10:44:07,288] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2017-01-14 10:44:07,288] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2017-01-14 10:44:07,288] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2017-01-14 10:44:07,288] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2017-01-14 10:44:07,288] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2017-01-14 10:44:07,288] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2017-01-14 10:44:07,289] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2017-01-14 10:44:07,289] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2017-01-14 10:44:07,289] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2017-01-14 10:44:07,289] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2017-01-14 10:44:07,289] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2017-01-14 10:44:07,289] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2017-01-14 10:44:07,289] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2017-01-14 10:44:07,289] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2017-01-14 10:44:07,289] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2017-01-14 10:44:07,290] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2017-01-14 10:44:07,290] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2017-01-14 10:44:07,293] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2017-01-14 10:44:07,293] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2017-01-14 10:44:07,293] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2017-01-14 10:44:07,293] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2017-01-14 10:44:07,293] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2017-01-14 10:44:07,293] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2017-01-14 10:44:07,293] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2017-01-14 10:44:07,293] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2017-01-14 10:44:07,293] chirp.directory - INFO: Registered Alinco_DJ-G7EG = AlincoDJG7EG
[2017-01-14 10:44:07,294] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2017-01-14 10:44:07,294] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2017-01-14 10:44:07,294] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2017-01-14 10:44:07,294] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2017-01-14 10:44:07,294] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2017-01-14 10:44:07,294] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2017-01-14 10:44:07,295] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2017-01-14 10:44:07,296] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2017-01-14 10:44:07,296] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2017-01-14 10:44:07,296] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2017-01-14 10:44:07,296] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2017-01-14 10:44:07,296] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2017-01-14 10:44:07,297] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2017-01-14 10:44:07,297] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2017-01-14 10:44:07,297] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2017-01-14 10:44:07,297] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2017-01-14 10:44:07,297] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2017-01-14 10:44:07,297] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2017-01-14 10:44:07,297] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2017-01-14 10:44:07,297] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2017-01-14 10:44:07,298] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2017-01-14 10:44:07,298] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2017-01-14 10:44:07,298] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2017-01-14 10:44:07,298] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2017-01-14 10:44:07,299] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2017-01-14 10:44:07,299] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2017-01-14 10:44:07,299] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2017-01-14 10:44:07,299] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2017-01-14 10:44:07,299] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2017-01-14 10:44:07,299] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2017-01-14 10:44:07,299] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2017-01-14 10:44:07,299] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2017-01-14 10:44:07,299] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2017-01-14 10:44:07,299] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2017-01-14 10:44:07,300] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2017-01-14 10:44:07,300] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2017-01-14 10:44:07,300] chirp.directory - INFO: Registered Feidaxin_FD-460UH = FD460UHRadio
[2017-01-14 10:44:07,300] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2017-01-14 10:44:07,301] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2017-01-14 10:44:07,301] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2017-01-14 10:44:07,302] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2017-01-14 10:44:07,302] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2017-01-14 10:44:07,302] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2017-01-14 10:44:07,303] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2017-01-14 10:44:07,303] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2017-01-14 10:44:07,303] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2017-01-14 10:44:07,303] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2017-01-14 10:44:07,303] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2017-01-14 10:44:07,304] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2017-01-14 10:44:07,304] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2017-01-14 10:44:07,304] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2017-01-14 10:44:07,304] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2017-01-14 10:44:07,304] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2017-01-14 10:44:07,305] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2017-01-14 10:44:07,305] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2017-01-14 10:44:07,305] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2017-01-14 10:44:07,306] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2017-01-14 10:44:07,306] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2017-01-14 10:44:07,313] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2017-01-14 10:44:07,313] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2017-01-14 10:44:07,317] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2017-01-14 10:44:07,317] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2017-01-14 10:44:07,317] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2017-01-14 10:44:07,317] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2017-01-14 10:44:07,317] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2017-01-14 10:44:07,318] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2017-01-14 10:44:07,318] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2017-01-14 10:44:07,318] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2017-01-14 10:44:07,319] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2017-01-14 10:44:07,319] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2017-01-14 10:44:07,319] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2017-01-14 10:44:07,319] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2017-01-14 10:44:07,319] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2017-01-14 10:44:07,319] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2017-01-14 10:44:07,320] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2017-01-14 10:44:07,320] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2017-01-14 10:44:07,320] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2017-01-14 10:44:07,320] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2017-01-14 10:44:07,321] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2017-01-14 10:44:07,321] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2017-01-14 10:44:07,321] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2017-01-14 10:44:07,321] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2017-01-14 10:44:07,321] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2017-01-14 10:44:07,322] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2017-01-14 10:44:07,322] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2017-01-14 10:44:07,322] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2017-01-14 10:44:07,323] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2017-01-14 10:44:07,323] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2017-01-14 10:44:07,323] chirp.directory - INFO: Registered Jetstream_JT270MH = JetstreamJT270MHRadio
[2017-01-14 10:44:07,323] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2017-01-14 10:44:07,323] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2017-01-14 10:44:07,325] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2017-01-14 10:44:07,325] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2017-01-14 10:44:07,325] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2017-01-14 10:44:07,325] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2017-01-14 10:44:07,325] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2017-01-14 10:44:07,325] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2017-01-14 10:44:07,326] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2017-01-14 10:44:07,326] chirp.directory - INFO: Registered Retevis_RT1 = RT1Radio
[2017-01-14 10:44:07,326] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2017-01-14 10:44:07,327] chirp.directory - INFO: Registered Retevis_RT22 = RT22Radio
[2017-01-14 10:44:07,327] chirp.directory - INFO: Registered WLN_KD-C1 = KDC1
[2017-01-14 10:44:07,327] chirp.directory - INFO: Registered Zastone_ZT-X6 = ZTX6
[2017-01-14 10:44:07,327] chirp.directory - INFO: Registered LUITON_LT-316 = LT316
[2017-01-14 10:44:07,327] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2017-01-14 10:44:07,327] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2017-01-14 10:44:07,328] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2017-01-14 10:44:07,328] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2017-01-14 10:44:07,328] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2017-01-14 10:44:07,328] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2017-01-14 10:44:07,328] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2017-01-14 10:44:07,329] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2017-01-14 10:44:07,329] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2017-01-14 10:44:07,329] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2017-01-14 10:44:07,329] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2017-01-14 10:44:07,330] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2017-01-14 10:44:07,330] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2017-01-14 10:44:07,330] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2017-01-14 10:44:07,330] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2017-01-14 10:44:07,330] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2017-01-14 10:44:07,330] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2017-01-14 10:44:07,330] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2017-01-14 10:44:07,331] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2017-01-14 10:44:07,331] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2017-01-14 10:44:07,331] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2017-01-14 10:44:07,331] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2017-01-14 10:44:07,331] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2017-01-14 10:44:07,331] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2017-01-14 10:44:07,331] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2017-01-14 10:44:07,331] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2017-01-14 10:44:07,332] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2017-01-14 10:44:07,332] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2017-01-14 10:44:07,332] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2017-01-14 10:44:07,332] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2017-01-14 10:44:07,332] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2017-01-14 10:44:07,332] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2017-01-14 10:44:07,332] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2017-01-14 10:44:07,333] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2017-01-14 10:44:07,333] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2017-01-14 10:44:07,333] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2017-01-14 10:44:07,333] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2017-01-14 10:44:07,333] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2017-01-14 10:44:07,333] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2017-01-14 10:44:07,333] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2017-01-14 10:44:07,333] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2017-01-14 10:44:07,333] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2017-01-14 10:44:07,334] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2017-01-14 10:44:07,334] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2017-01-14 10:44:07,334] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2017-01-14 10:44:07,334] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2017-01-14 10:44:07,335] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2017-01-14 10:44:07,335] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2017-01-14 10:44:07,335] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2017-01-14 10:44:07,336] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2017-01-14 10:44:07,336] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2017-01-14 10:44:07,336] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2017-01-14 10:44:07,337] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2017-01-14 10:44:07,337] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2017-01-14 10:44:07,337] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2017-01-14 10:44:07,337] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2017-01-14 10:44:07,338] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2017-01-14 10:44:07,338] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2017-01-14 10:44:07,338] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2017-01-14 10:44:07,338] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0
[chirp_devel] [PATCH] Add query/import from DMR-MARC repeater database. #4411
by Tom Hayward 14 Jan '17
by Tom Hayward 14 Jan '17
14 Jan '17
# HG changeset patch
# User Tom Hayward <tom(a)tomh.us>
# Date 1484416953 28800
# Sat Jan 14 10:02:33 2017 -0800
# Node ID 2474f7b23e9123f4c76be4daaecd37d2284eaabf
# Parent bcac2670345cfd5c1ea3cfb3e3b1022f5dac5f2d
Add query/import from DMR-MARC repeater database. #4411
diff -r bcac2670345c -r 2474f7b23e91 chirp/chirp_common.py
--- a/chirp/chirp_common.py Fri Jan 13 16:15:46 2017 -0800
+++ b/chirp/chirp_common.py Sat Jan 14 10:02:33 2017 -0800
@@ -70,7 +70,7 @@
MODES = ["WFM", "FM", "NFM", "AM", "NAM", "DV", "USB", "LSB", "CW", "RTTY",
"DIG", "PKT", "NCW", "NCWR", "CWR", "P25", "Auto", "RTTYR",
- "FSK", "FSKR"]
+ "FSK", "FSKR", "DMR"]
TONE_MODES = [
"",
diff -r bcac2670345c -r 2474f7b23e91 chirp/dmrmarc.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/chirp/dmrmarc.py Sat Jan 14 10:02:33 2017 -0800
@@ -0,0 +1,139 @@
+# Copyright 2016 Tom Hayward <tom(a)tomh.us>
+#
+# 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/>.
+
+import json
+import logging
+import tempfile
+import urllib
+from chirp import chirp_common, errors
+from chirp.settings import RadioSetting, RadioSettingGroup, \
+ RadioSettingValueList
+
+LOG = logging.getLogger(__name__)
+
+
+def list_filter(haystack, attr, needles):
+ if not needles or not needles[0]:
+ return haystack
+ return [x for x in haystack if x[attr] in needles]
+
+
+class DMRMARCRadio(chirp_common.NetworkSourceRadio):
+ """DMR-MARC data source"""
+ VENDOR = "DMR-MARC"
+ MODEL = "Repeater database"
+
+ URL = "http://www.dmr-marc.net/cgi-bin/trbo-database/datadump.cgi?" \
+ "table=repeaters&format=json"
+
+ def __init__(self, *args, **kwargs):
+ chirp_common.NetworkSourceRadio.__init__(self, *args, **kwargs)
+ self._repeaters = None
+
+ def set_params(self, city, state, country):
+ """Set the parameters to be used for a query"""
+ self._city = city and [x.strip() for x in city.split(",")] or ['']
+ self._state = state and [x.strip() for x in state.split(",")] or ['']
+ self._country = country and [x.strip() for x in country.split(",")] \
+ or ['']
+
+ def do_fetch(self):
+ fn = tempfile.mktemp(".json")
+ filename, headers = urllib.urlretrieve(self.URL, fn)
+ with open(fn, 'r') as f:
+ try:
+ self._repeaters = json.load(f)['repeaters']
+ except AttributeError:
+ raise errors.RadioError(
+ "Unexpected response from %s" % self.URL)
+ except ValueError as e:
+ raise errors.RadioError(
+ "Invalid JSON from %s. %s" % (self.URL, str(e)))
+
+ self._repeaters = list_filter(self._repeaters, "city", self._city)
+ self._repeaters = list_filter(self._repeaters, "state", self._state)
+ self._repeaters = list_filter(self._repeaters, "country",
+ self._country)
+
+ def get_features(self):
+ if not self._repeaters:
+ self.do_fetch()
+
+ rf = chirp_common.RadioFeatures()
+ rf.memory_bounds = (0, len(self._repeaters)-1)
+ rf.has_bank = False
+ rf.has_comment = True
+ rf.has_ctone = False
+ rf.valid_tmodes = [""]
+ return rf
+
+ def get_raw_memory(self, number):
+ return repr(self._repeaters[number])
+
+ def get_memory(self, number):
+ if not self._repeaters:
+ self.do_fetch()
+
+ repeater = self._repeaters[number]
+
+ mem = chirp_common.Memory()
+ mem.number = number
+
+ mem.name = repeater.get('city')
+ mem.freq = chirp_common.parse_freq(repeater.get('frequency'))
+ offset = chirp_common.parse_freq(repeater.get('offset', '0'))
+ if offset > 0:
+ mem.duplex = "+"
+ elif offset < 0:
+ mem.duplex = "-"
+ else:
+ mem.duplex = ""
+ mem.offset = abs(offset)
+ mem.mode = 'DMR'
+ mem.comment = repeater.get('map_info')
+
+ mem.extra = RadioSettingGroup("Extra", "extra")
+
+ rs = RadioSetting(
+ "color_code", "Color Code", RadioSettingValueList(
+ range(16), int(repeater.get('color_code', 0))))
+ mem.extra.append(rs)
+
+ return mem
+
+
+def main():
+ import argparse
+ from pprint import PrettyPrinter
+
+ parser = argparse.ArgumentParser(description="Fetch DMR-MARC repeater "
+ "database and filter by city, state, and/or country. Multiple items "
+ "combined with a , will be filtered with logical OR.")
+ parser.add_argument("-c", "--city",
+ help="Comma-separated list of cities to include in output.")
+ parser.add_argument("-s", "--state",
+ help="Comma-separated list of states to include in output.")
+ parser.add_argument("--country",
+ help="Comma-separated list of countries to include in output.")
+ args = parser.parse_args()
+
+ dmrmarc = DMRMARCRadio(None)
+ dmrmarc.set_params(**vars(args))
+ dmrmarc.do_fetch()
+ pp = PrettyPrinter(indent=2)
+ pp.pprint(dmrmarc._repeaters)
+
+if __name__ == "__main__":
+ main()
diff -r bcac2670345c -r 2474f7b23e91 chirp/ui/mainapp.py
--- a/chirp/ui/mainapp.py Fri Jan 13 16:15:46 2017 -0800
+++ b/chirp/ui/mainapp.py Sat Jan 14 10:02:33 2017 -0800
@@ -809,6 +809,65 @@
count = eset.do_import(filen)
reporting.report_model_usage(eset.rthread.radio, "import", count > 0)
+ def do_dmrmarc_prompt(self):
+ fields = {"1City": (gtk.Entry(), lambda x: x),
+ "2State": (gtk.Entry(), lambda x: x),
+ "3Country": (gtk.Entry(), lambda x: x),
+ }
+
+ d = inputdialog.FieldDialog(title=_("DMR-MARC Repeater Database Dump"),
+ parent=self)
+ for k in sorted(fields.keys()):
+ d.add_field(k[1:], fields[k][0])
+ fields[k][0].set_text(CONF.get(k[1:], "dmrmarc") or "")
+
+ while d.run() == gtk.RESPONSE_OK:
+ for k in sorted(fields.keys()):
+ widget, validator = fields[k]
+ try:
+ if validator(widget.get_text()):
+ CONF.set(k[1:], widget.get_text(), "dmrmarc")
+ continue
+ except Exception:
+ pass
+
+ d.destroy()
+ return True
+
+ d.destroy()
+ return False
+
+ def do_dmrmarc(self, do_import):
+ self.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
+ if not self.do_dmrmarc_prompt():
+ self.window.set_cursor(None)
+ return
+
+ city = CONF.get("city", "dmrmarc")
+ state = CONF.get("state", "dmrmarc")
+ country = CONF.get("country", "dmrmarc")
+
+ # Do this in case the import process is going to take a while
+ # to make sure we process events leading up to this
+ gtk.gdk.window_process_all_updates()
+ while gtk.events_pending():
+ gtk.main_iteration(False)
+
+ if do_import:
+ eset = self.get_current_editorset()
+ dmrmarcstr = "dmrmarc://%s/%s/%s" % (city, state, country)
+ eset.do_import(dmrmarcstr)
+ else:
+ try:
+ from chirp import dmrmarc
+ radio = dmrmarc.DMRMARCRadio(None)
+ radio.set_params(city, state, country)
+ self.do_open_live(radio, read_only=True)
+ except errors.RadioError, e:
+ common.show_error(e)
+
+ self.window.set_cursor(None)
+
def do_repeaterbook_prompt(self):
if not CONF.get_bool("has_seen_credit", "repeaterbook"):
d = gtk.MessageDialog(parent=self, buttons=gtk.BUTTONS_OK)
@@ -1439,6 +1498,8 @@
self.do_close()
elif action == "import":
self.do_import()
+ elif action in ["qdmrmarc", "idmrmarc"]:
+ self.do_dmrmarc(action[0] == "i")
elif action in ["qrfinder", "irfinder"]:
self.do_rfinder(action[0] == "i")
elif action in ["qradioreference", "iradioreference"]:
@@ -1534,12 +1595,14 @@
<menuitem action="download"/>
<menuitem action="upload"/>
<menu action="importsrc" name="importsrc">
+ <menuitem action="idmrmarc"/>
<menuitem action="iradioreference"/>
<menuitem action="irbook"/>
<menuitem action="ipr"/>
<menuitem action="irfinder"/>
</menu>
<menu action="querysrc" name="querysrc">
+ <menuitem action="qdmrmarc"/>
<menuitem action="qradioreference"/>
<menuitem action="qrbook"/>
<menuitem action="qpr"/>
@@ -1612,12 +1675,14 @@
('export', None, _("Export"), "%se" % ALT_KEY, None, self.mh),
('importsrc', None, _("Import from data source"),
None, None, self.mh),
+ ('idmrmarc', None, _("DMR-MARC Repeaters"), 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),
+ ('qdmrmarc', None, _("DMR-MARC Repeaters"), None, None, self.mh),
('qradioreference', None, _("RadioReference.com"),
None, None, self.mh),
('qrfinder', None, _("RFinder"), None, None, self.mh),
1
0
I'm no Python programmer, but I can find my way around.
I've been pissing about with a live driver for the TH-D74 and I've hit a
wall. There's no command to fetch/set a memory name. Surely there is one
somewhere. But, as far as I can see, it is yet to be discovered. I will
take a look through the last firmware update for the radio and see what
I can find, but I'm not overly hopeful.
With that in mind, it looks like the best way forward is hacking on a
memory dump. This leads me to my questions:
I have a couple of questions that someone should be able to answer, or
link me to, fairly quickly. I hope.
1) I'd like some sample data for some radios that use mem.extra[] so I
can read the corresponding code and see how the UI deals with it.
2) This radio has several sets of memories. I'd also like some sample
data from a radio that also does that.
3) Which driver has the most beautiful implementation?
4) Has anyone here reversed any Kenwood firmware before?
1
0
There is no category for this in the bug tracker, and I don't
necessarily need to create unwanted noise there.
This morning I burned a couple of hours working out how to clone the
chirp repo. Maybe I was having a particularly incompetent morning, but
eventually I stumbled across the quite impressive and detailed developer
docco. [1]
I can't remember where I found the link now, but it certainly wasn't
where I was looking! My suggestion is that a link to this on the
download page would be most excellent.
I would have done it myself, but it appears that either I really am
incompetent, or the wiki is immune to strangers.
Lastly, if you've taken the time to get there it doesn't really matter,
but the link to template.py on the Add a Radio dev doco [2] is broken.
[1] http://chirp.danplanet.com/projects/chirp/wiki/Developers
[2] http://chirp.danplanet.com/projects/chirp/wiki/DevelopersAdd_a_Radio
2
2
Tested changes:
[Aaron Pelly <aaron(a)pelly.co>] [TH-D74] Allow selection of /dev/ACM* Fixes #4389
[Jim Unroe <rock.unroe(a)gmail.com>] [UV-5R] Add Aliases for Various Retevis Radios
This patch add an alias for each of the following Retevis radio models.
RT5 with 2 power levels (Baofeng UV-5R variant)
RT5 with 3 power levels (Baofeng BF-F8HP variant)
RT-5RV (Baofeng UV-5R variant)
releated to #4375
[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 953e2a13ed3ea09e541c9955c70a6b7c1ce6e2b1
[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 953e2a13ed3ea09e541c9955c70a6b7c1ce6e2b1
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson7229052655581317893.sh
[workspace] $ /bin/sh -xe /tmp/hudson1103642226902490557.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.054s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
real 0m7.711s
user 0m7.540s
sys 0m0.064s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2017-01-10 15:09:10,373] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2017-01-10 15:09:10,414] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2017-01-10 15:09:10,414] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2017-01-10 15:09:10,414] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2017-01-10 15:09:10,414] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2017-01-10 15:09:10,414] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2017-01-10 15:09:10,415] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2017-01-10 15:09:10,415] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2017-01-10 15:09:10,415] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2017-01-10 15:09:10,415] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2017-01-10 15:09:10,415] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2017-01-10 15:09:10,415] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2017-01-10 15:09:10,415] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2017-01-10 15:09:10,415] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2017-01-10 15:09:10,415] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2017-01-10 15:09:10,415] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2017-01-10 15:09:10,415] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2017-01-10 15:09:10,416] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2017-01-10 15:09:10,416] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2017-01-10 15:09:10,416] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2017-01-10 15:09:10,416] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2017-01-10 15:09:10,417] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2017-01-10 15:09:10,417] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2017-01-10 15:09:10,417] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2017-01-10 15:09:10,417] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2017-01-10 15:09:10,417] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2017-01-10 15:09:10,417] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2017-01-10 15:09:10,417] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2017-01-10 15:09:10,417] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2017-01-10 15:09:10,417] chirp.directory - INFO: Registered Alinco_DJ-G7EG = AlincoDJG7EG
[2017-01-10 15:09:10,418] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2017-01-10 15:09:10,418] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2017-01-10 15:09:10,418] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2017-01-10 15:09:10,418] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2017-01-10 15:09:10,418] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2017-01-10 15:09:10,418] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2017-01-10 15:09:10,419] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2017-01-10 15:09:10,420] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2017-01-10 15:09:10,420] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2017-01-10 15:09:10,420] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2017-01-10 15:09:10,420] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2017-01-10 15:09:10,420] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2017-01-10 15:09:10,421] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2017-01-10 15:09:10,421] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2017-01-10 15:09:10,421] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2017-01-10 15:09:10,421] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2017-01-10 15:09:10,422] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2017-01-10 15:09:10,422] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2017-01-10 15:09:10,422] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2017-01-10 15:09:10,422] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2017-01-10 15:09:10,423] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2017-01-10 15:09:10,423] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2017-01-10 15:09:10,423] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2017-01-10 15:09:10,423] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2017-01-10 15:09:10,424] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2017-01-10 15:09:10,424] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2017-01-10 15:09:10,424] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2017-01-10 15:09:10,424] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2017-01-10 15:09:10,424] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2017-01-10 15:09:10,424] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2017-01-10 15:09:10,424] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2017-01-10 15:09:10,424] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2017-01-10 15:09:10,425] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2017-01-10 15:09:10,425] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2017-01-10 15:09:10,425] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2017-01-10 15:09:10,425] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2017-01-10 15:09:10,425] chirp.directory - INFO: Registered Feidaxin_FD-460UH = FD460UHRadio
[2017-01-10 15:09:10,425] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2017-01-10 15:09:10,426] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2017-01-10 15:09:10,426] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2017-01-10 15:09:10,427] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2017-01-10 15:09:10,427] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2017-01-10 15:09:10,427] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2017-01-10 15:09:10,428] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2017-01-10 15:09:10,428] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2017-01-10 15:09:10,428] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2017-01-10 15:09:10,428] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2017-01-10 15:09:10,429] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2017-01-10 15:09:10,429] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2017-01-10 15:09:10,429] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2017-01-10 15:09:10,429] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2017-01-10 15:09:10,429] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2017-01-10 15:09:10,430] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2017-01-10 15:09:10,430] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2017-01-10 15:09:10,431] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2017-01-10 15:09:10,431] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2017-01-10 15:09:10,431] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2017-01-10 15:09:10,431] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2017-01-10 15:09:10,439] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2017-01-10 15:09:10,439] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2017-01-10 15:09:10,449] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2017-01-10 15:09:10,449] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2017-01-10 15:09:10,449] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2017-01-10 15:09:10,449] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2017-01-10 15:09:10,449] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2017-01-10 15:09:10,450] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2017-01-10 15:09:10,450] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2017-01-10 15:09:10,450] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2017-01-10 15:09:10,451] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2017-01-10 15:09:10,451] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2017-01-10 15:09:10,451] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2017-01-10 15:09:10,451] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2017-01-10 15:09:10,451] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2017-01-10 15:09:10,451] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2017-01-10 15:09:10,452] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2017-01-10 15:09:10,452] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2017-01-10 15:09:10,452] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2017-01-10 15:09:10,452] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2017-01-10 15:09:10,452] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2017-01-10 15:09:10,453] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2017-01-10 15:09:10,453] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2017-01-10 15:09:10,453] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2017-01-10 15:09:10,453] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2017-01-10 15:09:10,454] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2017-01-10 15:09:10,454] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2017-01-10 15:09:10,454] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2017-01-10 15:09:10,455] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2017-01-10 15:09:10,455] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2017-01-10 15:09:10,455] chirp.directory - INFO: Registered Jetstream_JT270MH = JetstreamJT270MHRadio
[2017-01-10 15:09:10,455] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2017-01-10 15:09:10,455] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2017-01-10 15:09:10,456] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2017-01-10 15:09:10,456] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2017-01-10 15:09:10,456] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2017-01-10 15:09:10,456] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2017-01-10 15:09:10,456] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2017-01-10 15:09:10,456] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2017-01-10 15:09:10,458] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2017-01-10 15:09:10,458] chirp.directory - INFO: Registered Retevis_RT1 = RT1Radio
[2017-01-10 15:09:10,458] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2017-01-10 15:09:10,459] chirp.directory - INFO: Registered Retevis_RT22 = RT22Radio
[2017-01-10 15:09:10,459] chirp.directory - INFO: Registered WLN_KD-C1 = KDC1
[2017-01-10 15:09:10,459] chirp.directory - INFO: Registered Zastone_ZT-X6 = ZTX6
[2017-01-10 15:09:10,459] chirp.directory - INFO: Registered LUITON_LT-316 = LT316
[2017-01-10 15:09:10,459] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2017-01-10 15:09:10,459] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2017-01-10 15:09:10,460] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2017-01-10 15:09:10,460] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2017-01-10 15:09:10,460] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2017-01-10 15:09:10,460] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2017-01-10 15:09:10,460] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2017-01-10 15:09:10,460] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2017-01-10 15:09:10,461] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2017-01-10 15:09:10,461] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2017-01-10 15:09:10,461] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2017-01-10 15:09:10,461] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2017-01-10 15:09:10,462] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2017-01-10 15:09:10,462] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2017-01-10 15:09:10,462] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2017-01-10 15:09:10,462] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2017-01-10 15:09:10,462] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2017-01-10 15:09:10,462] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2017-01-10 15:09:10,462] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2017-01-10 15:09:10,462] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2017-01-10 15:09:10,463] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2017-01-10 15:09:10,463] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2017-01-10 15:09:10,463] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2017-01-10 15:09:10,463] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2017-01-10 15:09:10,463] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2017-01-10 15:09:10,463] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2017-01-10 15:09:10,464] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2017-01-10 15:09:10,464] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2017-01-10 15:09:10,464] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2017-01-10 15:09:10,464] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2017-01-10 15:09:10,464] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2017-01-10 15:09:10,464] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2017-01-10 15:09:10,464] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2017-01-10 15:09:10,465] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2017-01-10 15:09:10,465] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2017-01-10 15:09:10,465] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2017-01-10 15:09:10,465] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2017-01-10 15:09:10,465] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2017-01-10 15:09:10,465] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2017-01-10 15:09:10,465] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2017-01-10 15:09:10,465] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2017-01-10 15:09:10,465] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2017-01-10 15:09:10,466] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2017-01-10 15:09:10,466] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2017-01-10 15:09:10,466] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2017-01-10 15:09:10,466] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2017-01-10 15:09:10,467] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2017-01-10 15:09:10,467] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2017-01-10 15:09:10,467] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2017-01-10 15:09:10,468] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2017-01-10 15:09:10,468] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2017-01-10 15:09:10,468] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2017-01-10 15:09:10,468] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2017-01-10 15:09:10,469] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2017-01-10 15:09:10,469] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2017-01-10 15:09:10,469] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2017-01-10 15:09:10,470] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2017-01-10 15:09:10,470] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2017-01-10 15:09:10,470] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2017-01-10 15:09:10,470] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0
The MqTutorial [1] linked from [2] has moved to [3]
[1] http://mercurial.selenic.com/wiki/MqTutorial
[2] http://chirp.danplanet.com/projects/chirp/wiki/DevelopersProcess
[3] https://www.mercurial-scm.org/wiki/MqTutorial
2
1