Developers
Threads by month
- ----- 2024 -----
- 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
January 2017
- 7 participants
- 22 discussions
[chirp_devel] [PATCH] Support pySerial 3+. Fixes #3167 #3209 #3521 #3671 #3703
by Tom Hayward 03 Feb '18
by Tom Hayward 03 Feb '18
03 Feb '18
# HG changeset patch
# User Tom Hayward <tom(a)tomh.us>
# Date 1465361362 25200
# Tue Jun 07 21:49:22 2016 -0700
# Node ID d1bc2c9177858ff87c86e08447513f53794c2868
# Parent 333a280ca0c4e856258ebf9dfdb7c547fa9ec90c
Support pySerial 3+. Fixes #3167 #3209 #3521 #3671 #3703
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/detect.py
--- a/chirp/detect.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/detect.py Tue Jun 07 21:49:22 2016 -0700
@@ -39,7 +39,7 @@
# ICOM VHF/UHF Clone-type radios @ 9600 baud
try:
- ser.setBaudrate(9600)
+ ser.baudrate = 9600
md = icf.get_model_data(ser)
return _icom_model_data_to_rclass(md)
except errors.RadioError, e:
@@ -47,7 +47,7 @@
# ICOM IC-91/92 Live-mode radios @ 4800/38400 baud
- ser.setBaudrate(4800)
+ ser.baudrate = 4800
try:
ic9x_ll.send_magic(ser)
return _icom_model_data_to_rclass("ic9x")
@@ -58,7 +58,7 @@
for rate in [9600, 4800, 19200]:
try:
- ser.setBaudrate(rate)
+ ser.baudrate = rate
return icomciv.probe_model(ser)
except errors.RadioError:
pass
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/drivers/btech.py
--- a/chirp/drivers/btech.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/drivers/btech.py Tue Jun 07 21:49:22 2016 -0700
@@ -332,7 +332,7 @@
# touching the serial timeout to optimize the flushing
# restored at the end to the default value
- radio.pipe.setTimeout(0.1)
+ radio.pipe.timeout = 0.1
dump = "1"
datacount = 0
@@ -347,7 +347,7 @@
raise errors.RadioError(seriale)
# restore the default serial timeout
- radio.pipe.setTimeout(STIMEOUT)
+ radio.pipe.timeout = STIMEOUT
except Exception:
raise errors.RadioError("Unknown error cleaning the serial buffer")
@@ -477,8 +477,8 @@
def _do_ident(radio, status, upload=False):
"""Put the radio in PROGRAM mode & identify it"""
# set the serial discipline
- radio.pipe.setBaudrate(9600)
- radio.pipe.setParity("N")
+ radio.pipe.baudrate = 9600
+ radio.pipe.parity = "N"
# open the radio into program mode
if _start_clone_mode(radio, status) is False:
@@ -516,7 +516,7 @@
# has the check value in the _id2 var, others simply False
if radio._id2 is not False:
# lower the timeout here as this radios are reseting due to timeout
- radio.pipe.setTimeout(0.05)
+ radio.pipe.timeout = 0.05
# query & receive the extra ID
_send(radio, _make_frame("S", 0x3DF0, 16))
@@ -561,7 +561,7 @@
raise errors.RadioError("Radio didn't ACK the upload")
# restore the default serial timeout
- radio.pipe.setTimeout(STIMEOUT)
+ radio.pipe.timeout = STIMEOUT
# DEBUG
LOG.info("Positive ident, this is a %s %s" % (radio.VENDOR, radio.MODEL))
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/drivers/ft2800.py
--- a/chirp/drivers/ft2800.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/drivers/ft2800.py Tue Jun 07 21:49:22 2016 -0700
@@ -195,7 +195,7 @@
return rf
def sync_in(self):
- self.pipe.setParity("E")
+ self.pipe.parity = "E"
start = time.time()
try:
self._mmap = _download(self)
@@ -208,7 +208,7 @@
def sync_out(self):
self.pipe.timeout = 1
- self.pipe.setParity("E")
+ self.pipe.parity = "E"
start = time.time()
try:
_upload(self)
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/drivers/ic9x_ll.py
--- a/chirp/drivers/ic9x_ll.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/drivers/ic9x_ll.py Tue Jun 07 21:49:22 2016 -0700
@@ -439,31 +439,31 @@
def send_magic(pipe):
"""Send the magic incantation to wake up an ic9x radio"""
- if pipe.getBaudrate() == 38400:
+ if pipe.baudrate == 38400:
resp = _send_magic_38400(pipe)
if resp:
return
LOG.info("Switching from 38400 to 4800")
- pipe.setBaudrate(4800)
+ pipe.baudrate = 4800
resp = _send_magic_4800(pipe)
- pipe.setBaudrate(38400)
+ pipe.baudrate = 38400
if resp:
return
raise errors.RadioError("Radio not responding")
- elif pipe.getBaudrate() == 4800:
+ elif pipe.baudrate == 4800:
resp = _send_magic_4800(pipe)
if resp:
return
LOG.info("Switching from 4800 to 38400")
- pipe.setBaudrate(38400)
+ pipe.baudrate = 38400
resp = _send_magic_38400(pipe)
if resp:
return
- pipe.setBaudrate(4800)
+ pipe.baudrate = 4800
raise errors.RadioError("Radio not responding")
else:
raise errors.InvalidDataError("Radio in unknown state (%i)" %
- pipe.getBaudrate())
+ pipe.baudrate)
def get_memory_frame(pipe, vfo, number):
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/drivers/icf.py
--- a/chirp/drivers/icf.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/drivers/icf.py Tue Jun 07 21:49:22 2016 -0700
@@ -251,7 +251,7 @@
LOG.debug("Response:\n%s" % util.hexprint(resp))
LOG.info("Switching to 38400 baud")
- radio.pipe.setBaudrate(38400)
+ radio.pipe.baudrate = 38400
buf = ("\xFE" * 14) + \
"\xEE\xEF" + \
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/drivers/kenwood_live.py
--- a/chirp/drivers/kenwood_live.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/drivers/kenwood_live.py Tue Jun 07 21:49:22 2016 -0700
@@ -103,7 +103,7 @@
LAST_DELIMITER = delimiter
LOG.info("Trying ID at baud %i with delimiter \"%s\"" %
(i, repr(delimiter)))
- ser.setBaudrate(i)
+ ser.baudrate = i
ser.write(LAST_DELIMITER[0])
ser.read(25)
resp = command(ser, "ID")
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/drivers/thd72.py
--- a/chirp/drivers/thd72.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/drivers/thd72.py Tue Jun 07 21:49:22 2016 -0700
@@ -231,7 +231,7 @@
def _detect_baud(self):
for baud in [9600, 19200, 38400, 57600]:
- self.pipe.setBaudrate(baud)
+ self.pipe.baudrate = baud
try:
self.pipe.write("\r\r")
except:
@@ -422,9 +422,11 @@
raise errors.RadioError("No response from self")
allblocks = range(self._memsize/256)
- self.pipe.setBaudrate(57600)
- self.pipe.getCTS()
- self.pipe.setRTS()
+ self.pipe.baudrate = 57600
+ try:
+ self.pipe.setRTS()
+ except AttributeError:
+ self.pipe.rts = True
self.pipe.read(1)
data = ""
LOG.debug("reading blocks %d..%d" % (blocks[0], blocks[-1]))
@@ -458,9 +460,11 @@
if self.command("0M PROGRAM") != "0M":
raise errors.RadioError("No response from self")
- self.pipe.setBaudrate(57600)
- self.pipe.getCTS()
- self.pipe.setRTS()
+ self.pipe.baudrate = 57600
+ try:
+ self.pipe.setRTS()
+ except AttributeError:
+ self.pipe.rts = True
self.pipe.read(1)
LOG.debug("writing blocks %d..%d" % (blocks[0], blocks[-1]))
total = len(blocks)
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/drivers/tk270.py
--- a/chirp/drivers/tk270.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/drivers/tk270.py Tue Jun 07 21:49:22 2016 -0700
@@ -194,10 +194,9 @@
"""Open the radio into program mode and check if it's the correct model"""
# Set serial discipline
try:
- radio.pipe.setParity("N")
- radio.pipe.setTimeout(TIMEOUT)
- radio.pipe.flushOutput()
- radio.pipe.flushInput()
+ radio.pipe.parity = "N"
+ radio.pipe.timeout = TIMEOUT
+ radio.pipe.flush()
except:
msg = "Serial error: Can't set serial line discipline"
raise errors.RadioError(msg)
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/drivers/tk760.py
--- a/chirp/drivers/tk760.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/drivers/tk760.py Tue Jun 07 21:49:22 2016 -0700
@@ -188,10 +188,9 @@
"""Open the radio into program mode and check if it's the correct model"""
# Set serial discipline
try:
- radio.pipe.setParity("N")
- radio.pipe.setTimeout(TIMEOUT)
- radio.pipe.flushOutput()
- radio.pipe.flushInput()
+ radio.pipe.parity = "N"
+ radio.pipe.timeout = TIMEOUT
+ radio.pipe.flush()
LOG.debug("Serial port open successful")
except:
msg = "Serial error: Can't set serial line discipline"
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/drivers/tk760g.py
--- a/chirp/drivers/tk760g.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/drivers/tk760g.py Tue Jun 07 21:49:22 2016 -0700
@@ -441,8 +441,8 @@
def _open_radio(radio, status):
"""Open the radio into program mode and check if it's the correct model"""
# linux min is 0.13, win min is 0.25; set to bigger to be safe
- radio.pipe.setTimeout(0.25)
- radio.pipe.setParity("E")
+ radio.pipe.timeout = 0.25
+ radio.pipe.parity = "E"
# DEBUG
LOG.debug("Entering program mode.")
@@ -525,17 +525,17 @@
# set the timeout and if windows keep it bigger
if sys.platform in ["win32", "cygwin"]:
# bigger timeout
- radio.pipe.setTimeout(0.55)
+ radio.pipe.timeout = 0.55
else:
# Linux can keep up, MAC?
- radio.pipe.setTimeout(0.05)
+ radio.pipe.timeout = 0.05
# DEBUG
LOG.debug("Starting the download from radio")
for addr in MEM_BLOCKS:
# send request, but before flush the rx buffer
- radio.pipe.flushInput()
+ radio.pipe.flush()
_send(radio, _make_frame("R", addr))
# now we get the data
@@ -574,7 +574,7 @@
radio.status_fn(status)
# the default for the original soft as measured
- radio.pipe.setTimeout(0.5)
+ radio.pipe.timeout = 0.5
# DEBUG
LOG.debug("Starting the upload to the radio")
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/drivers/tk8102.py
--- a/chirp/drivers/tk8102.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/drivers/tk8102.py Tue Jun 07 21:49:22 2016 -0700
@@ -99,7 +99,7 @@
def do_download(radio):
- radio.pipe.setParity("E")
+ radio.pipe.parity = "E"
radio.pipe.timeout = 1
do_ident(radio)
@@ -129,7 +129,7 @@
def do_upload(radio):
- radio.pipe.setParity("E")
+ radio.pipe.parity = "E"
radio.pipe.timeout = 1
do_ident(radio)
diff -r 333a280ca0c4 -r d1bc2c917785 chirp/drivers/tmv71.py
--- a/chirp/drivers/tmv71.py Wed Jun 01 17:30:31 2016 -0700
+++ b/chirp/drivers/tmv71.py Tue Jun 07 21:49:22 2016 -0700
@@ -36,7 +36,7 @@
def _detect_baud(self):
for baud in [9600, 19200, 38400, 57600]:
- self.pipe.setBaudrate(baud)
+ self.pipe.baudrate = baud
self.pipe.write("\r\r")
self.pipe.read(32)
try:
2
4
[chirp_devel] [PATCH] The sort order of discovered ports is annoying. Fixes #4461
by Aaron Pelly 25 Jan '17
by Aaron Pelly 25 Jan '17
25 Jan '17
# HG changeset patch
# User Aaron Pelly <aaron(a)pelly.co>
# Date 1485386832 -46800
# Thu Jan 26 12:27:12 2017 +1300
# Node ID fc0266dc222404c620bea773a97b89a8651d553c
# Parent 3923a6bd67dec42839192ded5d2ee76ae1d32bec
The sort order of discovered ports is annoying. Fixes #4461
diff -r 3923a6bd67de -r fc0266dc2224 chirp/platform.py
--- a/chirp/platform.py Tue Jan 10 17:17:02 2017 +1300
+++ b/chirp/platform.py Thu Jan 26 12:27:12 2017 +1300
@@ -299,16 +299,28 @@
os.system("firefox '%s'" % path)
def list_serial_ports(self):
- ports = ["/dev/ttyS*",
+ """Return a list of OS files matching known patterns.
+
+ Each pattern is expanded and sorted, then appended
+ to the result. The primary point being to show ttyUSB*
+ before the huge list of ttyS*
+ """
+ ports = [
+ "/dev/ttyACM*",
+ "/dev/ttyAMA*",
+ "/dev/cu.*",
+ "/dev/cua0*",
+ "/dev/cuaU*",
+ "/dev/term/*",
+ "/dev/tty.KeySerial*",
"/dev/ttyUSB*",
- "/dev/ttyAMA*",
- "/dev/ttyACM*",
- "/dev/cu.*",
- "/dev/cuaU*",
- "/dev/cua0*",
- "/dev/term/*",
- "/dev/tty.KeySerial*"]
- return natural_sorted(sum([glob.glob(x) for x in ports], []))
+ "/dev/ttyS*"]
+
+ available_ports = []
+ for port_pattern in ports:
+ for port in natural_sorted(glob.glob(port_pattern)):
+ available_ports.append(port)
+ return available_ports
def os_version_string(self):
try:
1
0
Tested changes:
[Tom Hayward <tom(a)tomh.us>] ID-880: Fix frequency encode/decode by implementing multiplier table. #559
[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
1 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 38bfa0e7901db607dd3c7499be58c525b643550f
[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 38bfa0e7901db607dd3c7499be58c525b643550f
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson1113622097559001415.sh
[workspace] $ /bin/sh -xe /tmp/hudson3921480267946369394.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.059s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
real 0m7.662s
user 0m7.564s
sys 0m0.020s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2017-01-25 07:39:07,834] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2017-01-25 07:39:07,870] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2017-01-25 07:39:07,870] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2017-01-25 07:39:07,870] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2017-01-25 07:39:07,871] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2017-01-25 07:39:07,871] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2017-01-25 07:39:07,871] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2017-01-25 07:39:07,871] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2017-01-25 07:39:07,871] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2017-01-25 07:39:07,871] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2017-01-25 07:39:07,871] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2017-01-25 07:39:07,871] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2017-01-25 07:39:07,871] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2017-01-25 07:39:07,872] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2017-01-25 07:39:07,872] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2017-01-25 07:39:07,872] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2017-01-25 07:39:07,872] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2017-01-25 07:39:07,872] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2017-01-25 07:39:07,872] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2017-01-25 07:39:07,872] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2017-01-25 07:39:07,872] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2017-01-25 07:39:07,875] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2017-01-25 07:39:07,875] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2017-01-25 07:39:07,875] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2017-01-25 07:39:07,875] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2017-01-25 07:39:07,875] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2017-01-25 07:39:07,875] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2017-01-25 07:39:07,876] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2017-01-25 07:39:07,876] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2017-01-25 07:39:07,876] chirp.directory - INFO: Registered Alinco_DJ-G7EG = AlincoDJG7EG
[2017-01-25 07:39:07,876] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2017-01-25 07:39:07,876] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2017-01-25 07:39:07,876] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2017-01-25 07:39:07,876] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2017-01-25 07:39:07,877] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2017-01-25 07:39:07,877] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2017-01-25 07:39:07,878] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2017-01-25 07:39:07,878] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2017-01-25 07:39:07,878] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2017-01-25 07:39:07,878] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2017-01-25 07:39:07,878] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2017-01-25 07:39:07,878] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2017-01-25 07:39:07,879] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2017-01-25 07:39:07,879] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2017-01-25 07:39:07,879] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2017-01-25 07:39:07,879] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2017-01-25 07:39:07,880] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2017-01-25 07:39:07,880] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2017-01-25 07:39:07,880] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2017-01-25 07:39:07,880] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2017-01-25 07:39:07,881] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2017-01-25 07:39:07,881] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2017-01-25 07:39:07,881] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2017-01-25 07:39:07,881] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2017-01-25 07:39:07,881] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2017-01-25 07:39:07,881] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2017-01-25 07:39:07,881] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2017-01-25 07:39:07,881] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2017-01-25 07:39:07,882] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2017-01-25 07:39:07,882] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2017-01-25 07:39:07,882] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2017-01-25 07:39:07,882] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2017-01-25 07:39:07,882] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2017-01-25 07:39:07,882] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2017-01-25 07:39:07,882] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2017-01-25 07:39:07,882] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2017-01-25 07:39:07,882] chirp.directory - INFO: Registered Feidaxin_FD-460UH = FD460UHRadio
[2017-01-25 07:39:07,882] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2017-01-25 07:39:07,883] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2017-01-25 07:39:07,884] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2017-01-25 07:39:07,884] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2017-01-25 07:39:07,884] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2017-01-25 07:39:07,885] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2017-01-25 07:39:07,885] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2017-01-25 07:39:07,885] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2017-01-25 07:39:07,885] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2017-01-25 07:39:07,886] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2017-01-25 07:39:07,886] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2017-01-25 07:39:07,886] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2017-01-25 07:39:07,886] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2017-01-25 07:39:07,886] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2017-01-25 07:39:07,887] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2017-01-25 07:39:07,887] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2017-01-25 07:39:07,887] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2017-01-25 07:39:07,888] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2017-01-25 07:39:07,888] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2017-01-25 07:39:07,888] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2017-01-25 07:39:07,888] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2017-01-25 07:39:07,896] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2017-01-25 07:39:07,896] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2017-01-25 07:39:07,899] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2017-01-25 07:39:07,899] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2017-01-25 07:39:07,900] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2017-01-25 07:39:07,900] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2017-01-25 07:39:07,900] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2017-01-25 07:39:07,900] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2017-01-25 07:39:07,900] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2017-01-25 07:39:07,901] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2017-01-25 07:39:07,901] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2017-01-25 07:39:07,901] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2017-01-25 07:39:07,901] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2017-01-25 07:39:07,902] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2017-01-25 07:39:07,902] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2017-01-25 07:39:07,902] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2017-01-25 07:39:07,902] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2017-01-25 07:39:07,903] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2017-01-25 07:39:07,903] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2017-01-25 07:39:07,903] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2017-01-25 07:39:07,903] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2017-01-25 07:39:07,903] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2017-01-25 07:39:07,903] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2017-01-25 07:39:07,904] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2017-01-25 07:39:07,904] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2017-01-25 07:39:07,904] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2017-01-25 07:39:07,905] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2017-01-25 07:39:07,905] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2017-01-25 07:39:07,905] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2017-01-25 07:39:07,905] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2017-01-25 07:39:07,905] chirp.directory - INFO: Registered Jetstream_JT270MH = JetstreamJT270MHRadio
[2017-01-25 07:39:07,906] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2017-01-25 07:39:07,906] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2017-01-25 07:39:07,907] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2017-01-25 07:39:07,907] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2017-01-25 07:39:07,907] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2017-01-25 07:39:07,907] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2017-01-25 07:39:07,907] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2017-01-25 07:39:07,907] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2017-01-25 07:39:07,908] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2017-01-25 07:39:07,908] chirp.directory - INFO: Registered Retevis_RT1 = RT1Radio
[2017-01-25 07:39:07,909] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2017-01-25 07:39:07,909] chirp.directory - INFO: Registered Retevis_RT22 = RT22Radio
[2017-01-25 07:39:07,909] chirp.directory - INFO: Registered WLN_KD-C1 = KDC1
[2017-01-25 07:39:07,909] chirp.directory - INFO: Registered Zastone_ZT-X6 = ZTX6
[2017-01-25 07:39:07,909] chirp.directory - INFO: Registered LUITON_LT-316 = LT316
[2017-01-25 07:39:07,910] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2017-01-25 07:39:07,910] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2017-01-25 07:39:07,910] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2017-01-25 07:39:07,910] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2017-01-25 07:39:07,910] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2017-01-25 07:39:07,911] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2017-01-25 07:39:07,911] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2017-01-25 07:39:07,911] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2017-01-25 07:39:07,911] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2017-01-25 07:39:07,911] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2017-01-25 07:39:07,912] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2017-01-25 07:39:07,912] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2017-01-25 07:39:07,912] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2017-01-25 07:39:07,913] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2017-01-25 07:39:07,913] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2017-01-25 07:39:07,913] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2017-01-25 07:39:07,913] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2017-01-25 07:39:07,913] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2017-01-25 07:39:07,913] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2017-01-25 07:39:07,913] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2017-01-25 07:39:07,913] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2017-01-25 07:39:07,913] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2017-01-25 07:39:07,914] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2017-01-25 07:39:07,914] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2017-01-25 07:39:07,914] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2017-01-25 07:39:07,914] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2017-01-25 07:39:07,914] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2017-01-25 07:39:07,914] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2017-01-25 07:39:07,915] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2017-01-25 07:39:07,916] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2017-01-25 07:39:07,916] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2017-01-25 07:39:07,916] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2017-01-25 07:39:07,916] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2017-01-25 07:39:07,916] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2017-01-25 07:39:07,916] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2017-01-25 07:39:07,917] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2017-01-25 07:39:07,917] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2017-01-25 07:39:07,918] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2017-01-25 07:39:07,918] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2017-01-25 07:39:07,918] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2017-01-25 07:39:07,918] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2017-01-25 07:39:07,919] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2017-01-25 07:39:07,919] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2017-01-25 07:39:07,919] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2017-01-25 07:39:07,920] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2017-01-25 07:39:07,920] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2017-01-25 07:39:07,920] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2017-01-25 07:39:07,921] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2017-01-25 07:39:07,921] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0
[chirp_devel] [PATCH] ID-880: Fix frequency encode/decode by implementing multiplier table. #559
by Tom Hayward 24 Jan '17
by Tom Hayward 24 Jan '17
24 Jan '17
# HG changeset patch
# User Tom Hayward <tom(a)tomh.us>
# Date 1485242386 28800
# Mon Jan 23 23:19:46 2017 -0800
# Node ID 9ed331010899809a92aca585907d514614172341
# Parent b793365e189d407cf2321f2603726657cb15790c
ID-880: Fix frequency encode/decode by implementing multiplier table. #559
diff -r b793365e189d -r 9ed331010899 chirp/drivers/id880.py
--- a/chirp/drivers/id880.py Mon Jan 23 21:25:37 2017 -0800
+++ b/chirp/drivers/id880.py Mon Jan 23 23:19:46 2017 -0800
@@ -18,7 +18,9 @@
MEM_FORMAT = """
struct {
- u24 freq;
+ u24 rxmult:3,
+ txmult:3,
+ freq:18;
u16 offset;
u16 rtone:6,
ctone:6,
@@ -84,6 +86,7 @@
MODES = ["FM", "NFM", "?2", "AM", "NAM", "DV"]
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, 125.0, 200.0]
+FREQ_MULTIPLIER = [5000, 6250, 6250, 8333, 9000]
def decode_call(sevenbytes):
@@ -136,28 +139,15 @@
return "".join([chr(x) for x in buf[:7]])
-def _get_freq(_mem):
- val = int(_mem.freq)
+def _decode_freq(freq, mult):
+ return int(freq) * FREQ_MULTIPLIER[mult]
- if val & 0x00200000:
- mult = 6250
- else:
- mult = 5000
- val &= 0x0003FFFF
-
- return (val * mult)
-
-
-def _set_freq(_mem, freq):
- if chirp_common.is_fractional_step(freq):
- mult = 6250
- flag = 0x00200000
- else:
- mult = 5000
- flag = 0x00000000
-
- _mem.freq = (freq / mult) | flag
+def _encode_freq(freq):
+ for i, step in reversed(list(enumerate(FREQ_MULTIPLIER))):
+ if freq % step == 0:
+ return freq / step, i
+ raise ValueError("%d cannot be factored by multiplier table." % freq)
def _wipe_memory(mem, char):
@@ -279,8 +269,8 @@
mem.empty = True
return mem
- mem.freq = _get_freq(_mem)
- mem.offset = (_mem.offset * 5) * 1000
+ mem.freq = _decode_freq(_mem.freq, _mem.rxmult)
+ mem.offset = _decode_freq(_mem.offset, _mem.txmult)
mem.rtone = chirp_common.TONES[_mem.rtone]
mem.ctone = chirp_common.TONES[_mem.ctone]
mem.tmode = TMODES[_mem.tmode]
@@ -317,8 +307,8 @@
if was_empty:
_wipe_memory(_mem, "\x00")
- _set_freq(_mem, mem.freq)
- _mem.offset = int((mem.offset / 1000) / 5)
+ _mem.freq, _mem.rxmult = _encode_freq(mem.freq)
+ _mem.offset, _mem.txmult = _encode_freq(mem.offset)
_mem.rtone = chirp_common.TONES.index(mem.rtone)
_mem.ctone = chirp_common.TONES.index(mem.ctone)
_mem.tmode = TMODES.index(mem.tmode)
1
0
Tested changes:
[Tom Hayward <tom(a)tomh.us>] VX8: get_raw_memory() was off by one, making #1735 difficult to troubleshoot.
[Tom Hayward <tom(a)tomh.us>] Query/Import RepeaterBook by Proximity. #3261
[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 64a03d17f89c87579d2b790a98c9ca9959ec2d0f
[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 64a03d17f89c87579d2b790a98c9ca9959ec2d0f
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson4626006100787784666.sh
[workspace] $ /bin/sh -xe /tmp/hudson1631337930412340690.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...
real 0m7.664s
user 0m7.548s
sys 0m0.048s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2017-01-23 06:59:07,572] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2017-01-23 06:59:07,608] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2017-01-23 06:59:07,608] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2017-01-23 06:59:07,608] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2017-01-23 06:59:07,608] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2017-01-23 06:59:07,608] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2017-01-23 06:59:07,608] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2017-01-23 06:59:07,609] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2017-01-23 06:59:07,609] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2017-01-23 06:59:07,609] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2017-01-23 06:59:07,609] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2017-01-23 06:59:07,609] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2017-01-23 06:59:07,609] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2017-01-23 06:59:07,609] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2017-01-23 06:59:07,609] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2017-01-23 06:59:07,609] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2017-01-23 06:59:07,609] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2017-01-23 06:59:07,610] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2017-01-23 06:59:07,610] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2017-01-23 06:59:07,610] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2017-01-23 06:59:07,610] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2017-01-23 06:59:07,612] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2017-01-23 06:59:07,612] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2017-01-23 06:59:07,612] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2017-01-23 06:59:07,613] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2017-01-23 06:59:07,613] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2017-01-23 06:59:07,613] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2017-01-23 06:59:07,613] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2017-01-23 06:59:07,613] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2017-01-23 06:59:07,613] chirp.directory - INFO: Registered Alinco_DJ-G7EG = AlincoDJG7EG
[2017-01-23 06:59:07,613] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2017-01-23 06:59:07,613] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2017-01-23 06:59:07,614] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2017-01-23 06:59:07,614] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2017-01-23 06:59:07,614] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2017-01-23 06:59:07,614] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2017-01-23 06:59:07,615] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2017-01-23 06:59:07,615] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2017-01-23 06:59:07,615] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2017-01-23 06:59:07,615] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2017-01-23 06:59:07,615] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2017-01-23 06:59:07,616] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2017-01-23 06:59:07,616] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2017-01-23 06:59:07,616] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2017-01-23 06:59:07,617] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2017-01-23 06:59:07,617] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2017-01-23 06:59:07,617] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2017-01-23 06:59:07,617] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2017-01-23 06:59:07,617] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2017-01-23 06:59:07,617] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2017-01-23 06:59:07,618] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2017-01-23 06:59:07,618] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2017-01-23 06:59:07,618] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2017-01-23 06:59:07,618] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2017-01-23 06:59:07,618] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2017-01-23 06:59:07,618] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2017-01-23 06:59:07,618] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2017-01-23 06:59:07,618] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2017-01-23 06:59:07,619] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2017-01-23 06:59:07,619] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2017-01-23 06:59:07,619] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2017-01-23 06:59:07,619] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2017-01-23 06:59:07,619] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2017-01-23 06:59:07,619] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2017-01-23 06:59:07,619] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2017-01-23 06:59:07,619] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2017-01-23 06:59:07,619] chirp.directory - INFO: Registered Feidaxin_FD-460UH = FD460UHRadio
[2017-01-23 06:59:07,620] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2017-01-23 06:59:07,621] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2017-01-23 06:59:07,621] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2017-01-23 06:59:07,621] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2017-01-23 06:59:07,622] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2017-01-23 06:59:07,622] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2017-01-23 06:59:07,622] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2017-01-23 06:59:07,622] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2017-01-23 06:59:07,623] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2017-01-23 06:59:07,623] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2017-01-23 06:59:07,623] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2017-01-23 06:59:07,623] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2017-01-23 06:59:07,623] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2017-01-23 06:59:07,624] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2017-01-23 06:59:07,624] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2017-01-23 06:59:07,624] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2017-01-23 06:59:07,624] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2017-01-23 06:59:07,625] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2017-01-23 06:59:07,625] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2017-01-23 06:59:07,625] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2017-01-23 06:59:07,625] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2017-01-23 06:59:07,633] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2017-01-23 06:59:07,633] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2017-01-23 06:59:07,636] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2017-01-23 06:59:07,636] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2017-01-23 06:59:07,637] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2017-01-23 06:59:07,637] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2017-01-23 06:59:07,637] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2017-01-23 06:59:07,637] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2017-01-23 06:59:07,637] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2017-01-23 06:59:07,638] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2017-01-23 06:59:07,638] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2017-01-23 06:59:07,638] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2017-01-23 06:59:07,639] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2017-01-23 06:59:07,639] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2017-01-23 06:59:07,639] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2017-01-23 06:59:07,639] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2017-01-23 06:59:07,639] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2017-01-23 06:59:07,640] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2017-01-23 06:59:07,640] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2017-01-23 06:59:07,640] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2017-01-23 06:59:07,640] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2017-01-23 06:59:07,640] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2017-01-23 06:59:07,640] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2017-01-23 06:59:07,641] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2017-01-23 06:59:07,641] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2017-01-23 06:59:07,641] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2017-01-23 06:59:07,642] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2017-01-23 06:59:07,642] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2017-01-23 06:59:07,642] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2017-01-23 06:59:07,643] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2017-01-23 06:59:07,643] chirp.directory - INFO: Registered Jetstream_JT270MH = JetstreamJT270MHRadio
[2017-01-23 06:59:07,643] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2017-01-23 06:59:07,643] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2017-01-23 06:59:07,645] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2017-01-23 06:59:07,645] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2017-01-23 06:59:07,645] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2017-01-23 06:59:07,645] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2017-01-23 06:59:07,645] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2017-01-23 06:59:07,645] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2017-01-23 06:59:07,646] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2017-01-23 06:59:07,646] chirp.directory - INFO: Registered Retevis_RT1 = RT1Radio
[2017-01-23 06:59:07,646] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2017-01-23 06:59:07,647] chirp.directory - INFO: Registered Retevis_RT22 = RT22Radio
[2017-01-23 06:59:07,647] chirp.directory - INFO: Registered WLN_KD-C1 = KDC1
[2017-01-23 06:59:07,647] chirp.directory - INFO: Registered Zastone_ZT-X6 = ZTX6
[2017-01-23 06:59:07,647] chirp.directory - INFO: Registered LUITON_LT-316 = LT316
[2017-01-23 06:59:07,648] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2017-01-23 06:59:07,648] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2017-01-23 06:59:07,648] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2017-01-23 06:59:07,648] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2017-01-23 06:59:07,648] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2017-01-23 06:59:07,649] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2017-01-23 06:59:07,649] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2017-01-23 06:59:07,649] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2017-01-23 06:59:07,649] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2017-01-23 06:59:07,649] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2017-01-23 06:59:07,650] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2017-01-23 06:59:07,650] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2017-01-23 06:59:07,650] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2017-01-23 06:59:07,651] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2017-01-23 06:59:07,651] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2017-01-23 06:59:07,651] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2017-01-23 06:59:07,651] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2017-01-23 06:59:07,651] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2017-01-23 06:59:07,651] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2017-01-23 06:59:07,651] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2017-01-23 06:59:07,651] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2017-01-23 06:59:07,651] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2017-01-23 06:59:07,652] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2017-01-23 06:59:07,652] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2017-01-23 06:59:07,652] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2017-01-23 06:59:07,652] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2017-01-23 06:59:07,652] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2017-01-23 06:59:07,653] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2017-01-23 06:59:07,653] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2017-01-23 06:59:07,653] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2017-01-23 06:59:07,653] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2017-01-23 06:59:07,653] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2017-01-23 06:59:07,653] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2017-01-23 06:59:07,653] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2017-01-23 06:59:07,653] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2017-01-23 06:59:07,653] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2017-01-23 06:59:07,653] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2017-01-23 06:59:07,654] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2017-01-23 06:59:07,654] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2017-01-23 06:59:07,654] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2017-01-23 06:59:07,654] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2017-01-23 06:59:07,654] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2017-01-23 06:59:07,654] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2017-01-23 06:59:07,654] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2017-01-23 06:59:07,654] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2017-01-23 06:59:07,655] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2017-01-23 06:59:07,655] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2017-01-23 06:59:07,656] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2017-01-23 06:59:07,656] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2017-01-23 06:59:07,657] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2017-01-23 06:59:07,657] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2017-01-23 06:59:07,657] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2017-01-23 06:59:07,658] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2017-01-23 06:59:07,658] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2017-01-23 06:59:07,658] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2017-01-23 06:59:07,659] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2017-01-23 06:59:07,659] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2017-01-23 06:59:07,659] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2017-01-23 06:59:07,659] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2017-01-23 06:59:07,660] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0
[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