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
May 2017
- 10 participants
- 19 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
Is anybody working the Yaesu FT2D? It looks to be in the list of devices wanted and to have hardware, but I see no mention when I looked through the developer archives. And I’ve heard nothing back on the chirp users mailing list.
I’ve not found anybody (but maybe RTsystems and G4FHQ) who can do it reliably [or at all with a Macintosh] using the USB cable, but having a chirp version that can read and write the microSD card file (“BACKUP.dat”) would be a boon. The Yaesu-supplied software is painful to run, and even worse when I tried it under WINE on my macintosh. And I’d really, REALLY like a system that runs on Mac.
I’ve looked at the “Add a Radio” page (http://chirp.danplanet.com/projects/chirp/wiki/DevelopersAdd_a_Radio) and think I might be able to help with the memory dump and data structure identification. But I’d rather not start from scratch if others have already done it!
_________
Don’t be fooled by my email account name. It is NOT an amateur callsign.
4
8
[chirp_devel] [PATCH] [UV-25X2] Add Support for new BTech Color Display Mobile Radios
by Jim Unroe 05 Jul '17
by Jim Unroe 05 Jul '17
05 Jul '17
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1489785081 14400
# Node ID 6a37192481c837ea49a60d121dde3de3ec8fc521
# Parent e1113c7da2f3eb00a5b1585ea92a8d164df0d60b
[UV-25X2] Add Support for new BTech Color Display Mobile Radios
This patch modifies the btech.py driver to support additional
mobile radios that have an OLED color display.
Additional radio models supported:
BTech UV-25X4 (quad band)
BTech UV-25X2 (dual band)
BTech UV-50X2 (dual band)
New Model #4269
diff -r e1113c7da2f3 -r 6a37192481c8 chirp/drivers/btech.py
--- a/chirp/drivers/btech.py Wed Mar 08 15:05:23 2017 -0800
+++ b/chirp/drivers/btech.py Fri Mar 17 17:11:21 2017 -0400
@@ -167,6 +167,15 @@
# B-TECH UV-5001 third generation (3G)
UV5001G3_fp = "BTG304"
+# B-TECH UV-25X2
+UV25X2_fp = "UC2012"
+
+# B-TECH UV-25X4
+UV25X4_fp = "UC4014"
+
+# B-TECH UV-50X2
+UV50X2_fp = "UC2M12"
+
# special var to know when we found a BTECH Gen 3
BTECH3 = [UV2501G3_fp, UV2501_220G3_fp, UV5001G3_fp]
@@ -226,6 +235,10 @@
MSTRING = "\x55\x20\x15\x09\x20\x45\x4d\x02"
# for the QYT KT7900D & KT8900D
MSTRING_KT8900D = "\x55\x20\x16\x08\x01\xFF\xDC\x02"
+# for the BTECH UV-25X2 and UV-50X2
+MSTRING_UV25X2 = "\x55\x20\x16\x12\x28\xFF\xDC\x02"
+# for the BTECH UV-25X4
+MSTRING_UV25X4 = "\x55\x20\x16\x11\x18\xFF\xDC\x02"
def _clean_buffer(radio):
@@ -852,10 +865,12 @@
# Extra
mem.extra = RadioSettingGroup("extra", "Extra")
- scramble = RadioSetting("scramble", "Scramble",
- RadioSettingValueBoolean(bool(
- _mem.scramble)))
- mem.extra.append(scramble)
+ if not self.COLOR_LCD or \
+ (self.COLOR_LCD and not self.VENDOR == "BTECH"):
+ scramble = RadioSetting("scramble", "Scramble",
+ RadioSettingValueBoolean(bool(
+ _mem.scramble)))
+ mem.extra.append(scramble)
bcl = RadioSetting("bcl", "Busy channel lockout",
RadioSettingValueBoolean(bool(_mem.bcl)))
@@ -1061,11 +1076,18 @@
_mem.settings.pttlt))
basic.append(pttlt)
- emctp = RadioSetting("settings.emctp", "Alarm mode",
- RadioSettingValueList(
- LIST_EMCTP,
- LIST_EMCTP[_mem.settings.emctp]))
- basic.append(emctp)
+ if self.VENDOR == "BTECH" and self.COLOR_LCD:
+ emctp = RadioSetting("settings.emctp", "Alarm mode",
+ RadioSettingValueList(
+ LIST_EMCTPX,
+ LIST_EMCTPX[_mem.settings.emctp]))
+ basic.append(emctp)
+ else:
+ emctp = RadioSetting("settings.emctp", "Alarm mode",
+ RadioSettingValueList(
+ LIST_EMCTP,
+ LIST_EMCTP[_mem.settings.emctp]))
+ basic.append(emctp)
emcch = RadioSetting("settings.emcch", "Alarm channel",
RadioSettingValueInteger(0, 199,
@@ -1119,10 +1141,17 @@
basic.append(langua)
if self.VENDOR == "BTECH":
- sync = RadioSetting("settings.sync", "A/B channel sync",
- RadioSettingValueBoolean(
- _mem.settings.sync))
- basic.append(sync)
+ if self.COLOR_LCD:
+ sync = RadioSetting("settings.sync", "Channel display sync",
+ RadioSettingValueList(
+ LIST_SYNC,
+ LIST_SYNC[_mem.settings.sync]))
+ basic.append(sync)
+ else:
+ sync = RadioSetting("settings.sync", "A/B channel sync",
+ RadioSettingValueBoolean(
+ _mem.settings.sync))
+ basic.append(sync)
else:
autolk = RadioSetting("settings.sync", "Auto keylock",
RadioSettingValueBoolean(
@@ -1289,6 +1318,24 @@
_mem.settings.dtmfg))
basic.append(dtmfg)
+ if self.VENDOR == "BTECH" and self.COLOR_LCD:
+ mgain = RadioSetting("settings.mgain", "Mic gain",
+ RadioSettingValueInteger(0, 120,
+ _mem.settings.mgain))
+ basic.append(mgain)
+
+ skiptx = RadioSetting("settings.skiptx", "Skip TX",
+ RadioSettingValueList(
+ LIST_SKIPTX,
+ LIST_SKIPTX[_mem.settings.skiptx]))
+ basic.append(skiptx)
+
+ scmode = RadioSetting("settings.scmode", "Scan mode",
+ RadioSettingValueList(
+ LIST_SCMODE,
+ LIST_SCMODE[_mem.settings.scmode]))
+ basic.append(scmode)
+
# Advanced
def _filter(name):
filtered = ""
@@ -1802,17 +1849,19 @@
SPMUTE_LIST[_mem.vfo.d.spmute]))
work.append(vfodspmute)
- vfoascr = RadioSetting("vfo.a.scramble", "VFO A scramble",
- RadioSettingValueBoolean(
- _mem.vfo.a.scramble))
- work.append(vfoascr)
-
- vfobscr = RadioSetting("vfo.b.scramble", "VFO B scramble",
- RadioSettingValueBoolean(
- _mem.vfo.b.scramble))
- work.append(vfobscr)
-
- if self.COLOR_LCD:
+ if not self.COLOR_LCD or \
+ (self.COLOR_LCD and not self.VENDOR == "BTECH"):
+ vfoascr = RadioSetting("vfo.a.scramble", "VFO A scramble",
+ RadioSettingValueBoolean(
+ _mem.vfo.a.scramble))
+ work.append(vfoascr)
+
+ vfobscr = RadioSetting("vfo.b.scramble", "VFO B scramble",
+ RadioSettingValueBoolean(
+ _mem.vfo.b.scramble))
+ work.append(vfobscr)
+
+ if self.COLOR_LCD and not self.VENDOR == "BTECH":
vfocscr = RadioSetting("vfo.c.scramble", "VFO C scramble",
RadioSettingValueBoolean(
_mem.vfo.c.scramble))
@@ -3537,7 +3586,7 @@
LOG.info("Radio ranges: UHF %d to %d" % uhf)
# the additional bands
- if self.MODEL in ["KT7900D", ]:
+ if self.MODEL in ["UV-25X4", "KT7900D"]:
# 200Mhz band
vhf2 = _decode_ranges(ranges.vhf2_low, ranges.vhf2_high)
LOG.info("Radio ranges: VHF(220) %d to %d" % vhf2)
@@ -3554,6 +3603,43 @@
@directory.register
+class UV25X2(BTechColor):
+ """Baofeng Tech UV25X2"""
+ MODEL = "UV-25X2"
+ BANDS = 2
+ _vhf_range = (130000000, 180000000)
+ _uhf_range = (400000000, 521000000)
+ _magic = MSTRING_UV25X2
+ _fileid = [UV25X2_fp, ]
+
+
+(a)directory.register
+class UV25X4(BTechColor):
+ """Baofeng Tech UV25X4"""
+ MODEL = "UV-25X4"
+ BANDS = 4
+ _vhf_range = (130000000, 180000000)
+ _220_range = (200000000, 271000000)
+ _uhf_range = (400000000, 521000000)
+ _350_range = (350000000, 391000000)
+ _magic = MSTRING_UV25X4
+ _fileid = [UV25X4_fp, ]
+
+
+(a)directory.register
+class UV50X2(BTechColor):
+ """Baofeng Tech UV50X2"""
+ MODEL = "UV-50X2"
+ BANDS = 2
+ _vhf_range = (130000000, 180000000)
+ _uhf_range = (400000000, 521000000)
+ _magic = MSTRING_UV25X2
+ _fileid = [UV50X2_fp, ]
+ _power_levels = [chirp_common.PowerLevel("High", watts=50),
+ chirp_common.PowerLevel("Low", watts=10)]
+
+
+(a)directory.register
class KT7900D(BTechColor):
"""QYT KT7900D"""
VENDOR = "QYT"
1
2
Tested changes:
[Wade Simmons <wade(a)wades.im>] [FTM-3200D] Add support for Yaesu FTM-3200D
This patch adds basic CHIRP support for programming the FTM-3200D. This radio
shares most of its memory layout with the FT1D, so it has been created as a
subclass of that radio.
#4279
[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 93e58a8a1a2ac3e50b255cca410821f756bac4a9
[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 93e58a8a1a2ac3e50b255cca410821f756bac4a9
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson8629854955772319428.sh
[workspace] $ /bin/sh -xe /tmp/hudson5836126424643457057.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.076s
OK
FAIL: Please keep commit message lines to <80 columns
Checking for PEP8 regressions...
./chirp/platform.py:255:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1909:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1965:80: E501 line too long (82 > 79 characters)
real 0m8.188s
user 0m8.012s
sys 0m0.036s
================================================
Tests FAILED: style tests
Build step 'Execute shell' marked build as failure
Email was triggered for: Failure
Sending email for trigger: Failure
1
1
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1494984364 14400
# Node ID ca6d151b3a56acc482846d967703b945944eed1b
# Parent 0714032989d2d0ea7fa82c231e4ab374835375b4
[UV-25X2*] Duplex "split" bug
This patch addresses a "split" bug that causes CHIRP to display a
memory as a shift direction/offset even if the RX and TX frequencies
are each in a different band.
* this affects all mobile radios supported by the btech.py driver
Related to Bug #4825
diff -r 0714032989d2 -r ca6d151b3a56 chirp/drivers/btech.py
--- a/chirp/drivers/btech.py Sun Apr 02 10:39:43 2017 -0400
+++ b/chirp/drivers/btech.py Tue May 16 21:26:04 2017 -0400
@@ -635,7 +635,7 @@
return False
# if you get here is because the freq pairs are split
- return False
+ return True
class BTechMobileCommon(chirp_common.CloneModeRadio,
2
5
25 May '17
# HG changeset patch
# User Wade Simmons <wade(a)wades.im>
# Date 1495638955 14400
# Wed May 24 11:15:55 2017 -0400
# Node ID 8745d861ed0d38ecf45017a6ff1ba2f57ac5590d
# Parent 93e58a8a1a2ac3e50b255cca410821f756bac4a9
[FTM-3200D] Add support for Yaesu FTM-3200D
This patch adds basic CHIRP support for programming the FTM-3200D. This radio
shares most of its memory layout with the FT1D, so it has been created as a
subclass of that radio.
#4279
diff -r 93e58a8a1a2a -r 8745d861ed0d chirp/drivers/ft1d.py
--- a/chirp/drivers/ft1d.py Wed May 17 16:54:45 2017 -0400
+++ b/chirp/drivers/ft1d.py Wed May 24 11:15:55 2017 -0400
@@ -27,7 +27,7 @@
LOG = logging.getLogger(__name__)
-MEM_FORMAT = """
+MEM_SETTINGS_FORMAT = """
#seekto 0x049a;
struct {
u8 vfo_a;
@@ -141,17 +141,21 @@
u8 unknown[2];
u8 name[16];
} bank_info[24];
+"""
+MEM_FORMAT = """
#seekto 0x2D4A;
struct {
- u8 unknown1;
+ u8 unknown0:2,
+ mode_alt:1, // mode for FTM-3200D
+ unknown1:5;
u8 mode:2,
duplex:2,
tune_step:4;
bbcd freq[3];
u8 power:2,
- unknown2:4,
- tone_mode:2;
+ unknown2:2,
+ tone_mode:4;
u8 charsetbits[2];
char label[16];
bbcd offset[3];
@@ -160,7 +164,7 @@
u8 unknown6:1,
dcs:7;
u8 unknown7[3];
-} memory[900];
+} memory[%d];
#seekto 0x280A;
struct {
@@ -170,8 +174,10 @@
skip:1,
used:1,
valid:1;
-} flag[900];
+} flag[%d];
+"""
+MEM_APRS_FORMAT = """
#seekto 0xbeca;
struct {
u8 rx_baud;
@@ -334,7 +340,9 @@
char path_and_body[66];
u8 unknown[70];
} aprs_message_pkt[60];
+"""
+MEM_CHECKSUM_FORMAT = """
#seekto 0x1FDC9;
u8 checksum;
"""
@@ -500,11 +508,7 @@
return banks
-def _wipe_memory(mem):
- mem.set_raw("\x00" * (mem.size() / 8))
- mem.unknown1 = 0x05
-
-
+# Note: other radios like FTM3200Radio subclass this radio
@directory.register
class FT1Radio(yaesu_clone.YaesuCloneModeRadio):
"""Yaesu FT1DR"""
@@ -517,7 +521,9 @@
_memsize = 130507
_block_lengths = [10, 130497]
_block_size = 32
- _mem_params = (0xFECA, # APRS beacon metadata address.
+ _mem_params = (900, # size of memories array
+ 900, # size of flags array
+ 0xFECA, # APRS beacon metadata address.
60, # Number of beacons stored.
0x1064A, # APRS beacon content address.
134, # Length of beacon data stored.
@@ -610,7 +616,9 @@
return rp
def process_mmap(self):
- self._memobj = bitwise.parse(MEM_FORMAT % self._mem_params, self._mmap)
+ mem_format = MEM_SETTINGS_FORMAT + MEM_FORMAT + MEM_APRS_FORMAT + \
+ MEM_CHECKSUM_FORMAT
+ self._memobj = bitwise.parse(mem_format % self._mem_params, self._mmap)
def get_features(self):
rf = chirp_common.RadioFeatures()
@@ -632,7 +640,8 @@
return rf
def get_raw_memory(self, number):
- return repr(self._memobj.memory[number])
+ return "\n".join([repr(self._memobj.memory[number - 1]),
+ repr(self._memobj.flag[number - 1])])
def _checksums(self):
return [yaesu_clone.YaesuChecksum(0x064A, 0x06C8),
@@ -666,21 +675,53 @@
mem.freq = chirp_common.fix_rounded_step(int(_mem.freq) * 1000)
mem.offset = int(_mem.offset) * 1000
mem.rtone = mem.ctone = chirp_common.TONES[_mem.tone]
- mem.tmode = TMODES[_mem.tone_mode]
+ self._get_tmode(mem, _mem)
mem.duplex = DUPLEX[_mem.duplex]
if mem.duplex == "split":
mem.offset = chirp_common.fix_rounded_step(mem.offset)
- mem.mode = MODES[_mem.mode]
+ mem.mode = self._decode_mode(_mem)
mem.dtcs = chirp_common.DTCS_CODES[_mem.dcs]
mem.tuning_step = STEPS[_mem.tune_step]
- mem.power = POWER_LEVELS[3 - _mem.power]
+ mem.power = self._decode_power_level(_mem)
mem.skip = flag.pskip and "P" or flag.skip and "S" or ""
- charset = ''.join(CHARSET).ljust(256, '.')
- mem.name = str(_mem.label).rstrip("\xFF").translate(charset)
+ mem.name = self._decode_label(_mem)
return mem
+ def _decode_label(self, mem):
+ charset = ''.join(CHARSET).ljust(256, '.')
+ return str(mem.label).rstrip("\xFF").translate(charset)
+
+ def _encode_label(self, mem):
+ label = "".join([chr(CHARSET.index(x)) for x in mem.name.rstrip()])
+ return self._add_ff_pad(label, 16)
+
+ def _encode_charsetbits(self, mem):
+ # We only speak english here in chirpville
+ return [0x00, 0x00]
+
+ def _decode_power_level(self, mem):
+ return POWER_LEVELS[3 - mem.power]
+
+ def _encode_power_level(self, mem):
+ return 3 - POWER_LEVELS.index(mem.power)
+
+ def _decode_mode(self, mem):
+ return MODES[mem.mode]
+
+ def _encode_mode(self, mem):
+ return MODES.index(mem.mode)
+
+ def _get_tmode(self, mem, _mem):
+ mem.tmode = TMODES[_mem.tone_mode]
+
+ def _set_tmode(self, _mem, mem):
+ _mem.tone_mode = TMODES.index(mem.tmode)
+
+ def _set_mode(self, _mem, mem):
+ _mem.mode = self._encode_mode(mem)
+
def _debank(self, mem):
bm = self.get_bank_model()
for bank in bm.get_memory_mappings(mem):
@@ -693,7 +734,7 @@
self._debank(mem)
if not mem.empty and not flag.valid:
- _wipe_memory(_mem)
+ self._wipe_memory(_mem)
if mem.empty and flag.valid and not flag.used:
flag.valid = False
@@ -714,25 +755,28 @@
_mem.freq = int(mem.freq / 1000)
_mem.offset = int(mem.offset / 1000)
_mem.tone = chirp_common.TONES.index(mem.rtone)
- _mem.tone_mode = TMODES.index(mem.tmode)
+ self._set_tmode(_mem, mem)
_mem.duplex = DUPLEX.index(mem.duplex)
- _mem.mode = MODES.index(mem.mode)
+ self._set_mode(_mem, mem)
_mem.dcs = chirp_common.DTCS_CODES.index(mem.dtcs)
_mem.tune_step = STEPS.index(mem.tuning_step)
if mem.power:
- _mem.power = 3 - POWER_LEVELS.index(mem.power)
+ _mem.power = self._encode_power_level(mem)
else:
_mem.power = 0
- label = "".join([chr(CHARSET.index(x)) for x in mem.name.rstrip()])
- _mem.label = self._add_ff_pad(label, 16)
- # We only speak english here in chirpville
- _mem.charsetbits[0] = 0x00
- _mem.charsetbits[1] = 0x00
+ _mem.label = self._encode_label(mem)
+ charsetbits = self._encode_charsetbits(mem)
+ _mem.charsetbits[0], _mem.charsetbits[1] = charsetbits
flag.skip = mem.skip == "S"
flag.pskip = mem.skip == "P"
+ @classmethod
+ def _wipe_memory(cls, mem):
+ mem.set_raw("\x00" * (mem.size() / 8))
+ mem.unknown1 = 0x05
+
def get_bank_model(self):
return FT1BankModel(self)
diff -r 93e58a8a1a2a -r 8745d861ed0d chirp/drivers/ftm3200d.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/chirp/drivers/ftm3200d.py Wed May 24 11:15:55 2017 -0400
@@ -0,0 +1,201 @@
+# Copyright 2010 Dan Smith <dsmith(a)danplanet.com>
+# Copyright 2017 Wade Simmons <wade(a)wades.im>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import logging
+from textwrap import dedent
+
+from chirp.drivers import yaesu_clone, ft1d
+from chirp import chirp_common, directory, bitwise
+from chirp.settings import RadioSettings
+
+LOG = logging.getLogger(__name__)
+
+POWER_LEVELS = [chirp_common.PowerLevel("Low", watts=5),
+ chirp_common.PowerLevel("Mid", watts=30),
+ chirp_common.PowerLevel("Hi", watts=65)]
+
+TMODES = ["", "Tone", "TSQL", "DTCS", "TSQL-R", None, None, "Pager", "Cross"]
+CROSS_MODES = [None, "DTCS->", "Tone->DTCS", "DTCS->Tone"]
+
+MODES = ["FM", "NFM"]
+STEPS = [0, 5, 6.25, 10, 12.5, 15, 20, 25, 50, 100] # 0 = auto
+RFSQUELCH = ["OFF", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8"]
+
+# Charset is subset of ASCII + some unknown chars \x80-\x86
+VALID_CHARS = ["%i" % int(x) for x in range(0, 10)] + \
+ list(":>=<?@") + \
+ [chr(x) for x in range(ord("A"), ord("Z") + 1)] + \
+ list("[\\]_") + \
+ [chr(x) for x in range(ord("a"), ord("z") + 1)] + \
+ list("%*+,-/=$ ")
+
+MEM_FORMAT = """
+#seekto 0xceca;
+struct {
+ u8 unknown5;
+ u8 unknown3;
+ u8 unknown4:6,
+ dsqtype:2;
+ u8 dsqcode;
+ u8 unknown1[2];
+ char mycall[10];
+ u8 unknown2[368];
+} settings;
+
+#seekto 0xfec9;
+u8 checksum;
+"""
+
+
+(a)directory.register
+class FTM3200Radio(ft1d.FT1Radio):
+ """Yaesu FTM-3200D"""
+ BAUD_RATE = 38400
+ VENDOR = "Yaesu"
+ MODEL = "FTM-3200D"
+ VARIANT = "R"
+
+ _model = "AH52N"
+ _memsize = 65227
+ _block_lengths = [10, 65217]
+ _has_vibrate = False
+ _has_af_dual = False
+
+ _mem_params = (199, # size of memories array
+ 199) # size of flags array
+
+ @classmethod
+ def get_prompts(cls):
+ rp = chirp_common.RadioPrompts()
+ rp.pre_download = _(dedent("""\
+ 1. Turn radio off.
+ 2. Connect cable to DATA terminal.
+ 3. Press and hold in the [MHz(SETUP)] key while turning the radio
+ on ("CLONE" will appear on the display).
+ 4. <b>After clicking OK</b>, press the [REV(DW)] key
+ to send image."""))
+ rp.pre_upload = _(dedent("""\
+ 1. Turn radio off.
+ 2. Connect cable to DATA terminal.
+ 3. Press and hold in the [MHz(SETUP)] key while turning the radio
+ on ("CLONE" will appear on the display).
+ 4. Press the [MHz(SETUP)] key
+ ("-WAIT-" will appear on the LCD)."""))
+ return rp
+
+ def process_mmap(self):
+ mem_format = ft1d.MEM_FORMAT + MEM_FORMAT
+ self._memobj = bitwise.parse(mem_format % self._mem_params, self._mmap)
+
+ def get_features(self):
+ rf = chirp_common.RadioFeatures()
+ rf.has_dtcs_polarity = False
+ rf.valid_modes = list(MODES)
+ rf.valid_tmodes = [x for x in TMODES if x is not None]
+ rf.valid_cross_modes = [x for x in CROSS_MODES if x is not None]
+ rf.valid_duplexes = list(ft1d.DUPLEX)
+ rf.valid_tuning_steps = list(STEPS)
+ rf.valid_bands = [(136000000, 174000000)]
+ # rf.valid_skips = SKIPS
+ rf.valid_power_levels = POWER_LEVELS
+ rf.valid_characters = "".join(VALID_CHARS)
+ rf.valid_name_length = 8
+ rf.memory_bounds = (1, 199)
+ rf.can_odd_split = True
+ rf.has_ctone = False
+ rf.has_bank = False
+ rf.has_bank_names = False
+ # disable until implemented
+ rf.has_settings = False
+ return rf
+
+ def _decode_label(self, mem):
+ # TODO preserve the unknown \x80-x86 chars?
+ return str(mem.label).rstrip("\xFF").decode('ascii', 'replace')
+
+ def _encode_label(self, mem):
+ label = mem.name.rstrip().encode('ascii', 'ignore')
+ return self._add_ff_pad(label, 16)
+
+ def _encode_charsetbits(self, mem):
+ # TODO this is a setting to decide if the memory should be displayed
+ # as a name or frequency. Should we expose this setting to the user
+ # instead of autoselecting it (and losing their preference)?
+ if mem.name.rstrip() == '':
+ return [0x00, 0x00]
+ return [0x00, 0x80]
+
+ def _decode_power_level(self, mem):
+ return POWER_LEVELS[mem.power - 1]
+
+ def _encode_power_level(self, mem):
+ return POWER_LEVELS.index(mem.power) + 1
+
+ def _decode_mode(self, mem):
+ return MODES[mem.mode_alt]
+
+ def _encode_mode(self, mem):
+ return MODES.index(mem.mode)
+
+ def _get_tmode(self, mem, _mem):
+ if _mem.tone_mode > 8:
+ tmode = "Cross"
+ mem.cross_mode = CROSS_MODES[_mem.tone_mode - 8]
+ else:
+ tmode = TMODES[_mem.tone_mode]
+
+ if tmode == "Pager":
+ # TODO chirp_common does not allow 'Pager'
+ # Expose as a different setting?
+ mem.tmode = ""
+ else:
+ mem.tmode = tmode
+
+ def _set_tmode(self, _mem, mem):
+ if mem.tmode == "Cross":
+ _mem.tone_mode = 8 + CROSS_MODES.index(mem.cross_mode)
+ else:
+ _mem.tone_mode = TMODES.index(mem.tmode)
+
+ def _set_mode(self, _mem, mem):
+ _mem.mode_alt = self._encode_mode(mem)
+
+ def get_bank_model(self):
+ return None
+
+ def _debank(self, mem):
+ return
+
+ def _checksums(self):
+ return [yaesu_clone.YaesuChecksum(0x064A, 0x06C8),
+ yaesu_clone.YaesuChecksum(0x06CA, 0x0748),
+ yaesu_clone.YaesuChecksum(0x074A, 0x07C8),
+ yaesu_clone.YaesuChecksum(0x07CA, 0x0848),
+ yaesu_clone.YaesuChecksum(0x0000, 0xFEC9)]
+
+ def _get_settings(self):
+ # TODO
+ top = RadioSettings()
+ return top
+
+ @classmethod
+ def _wipe_memory(cls, mem):
+ mem.set_raw("\x00" * (mem.size() / 8))
+
+ def sync_out(self):
+ # Need to give enough time for the radio to ACK after writes
+ self.pipe.timeout = 1
+ return super(FTM3200Radio, self).sync_out()
2
1
Tested changes:
[Jim Unroe <rock.unroe(a)gmail.com>] [LT725UV] Wrong Radio Model in RadioPrompt
This patch corrects the radio model called oun in the Experimental RadioPrompt.
related to Bug #4829
[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 bb26bd892973e1e8801d5db0fdaaa761b09b470e
[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 bb26bd892973e1e8801d5db0fdaaa761b09b470e
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson1130088196128170451.sh
[workspace] $ /bin/sh -xe /tmp/hudson3714922337082466076.sh
+ PATH=/usr/bin:/bin:/usr/local/bin ./run_all_tests.sh
test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok
test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok
test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok
test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok
test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok
test_init (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok
test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok
test_changed (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok
test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok
test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
----------------------------------------------------------------------
Ran 151 tests in 0.052s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/platform.py:255:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1909:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1965:80: E501 line too long (82 > 79 characters)
real 0m7.660s
user 0m7.492s
sys 0m0.060s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2017-05-17 16:18:19,607] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.2 LTS (Python 2.7.12)
[2017-05-17 16:18:19,623] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2017-05-17 16:18:19,623] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2017-05-17 16:18:19,624] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2017-05-17 16:18:19,624] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2017-05-17 16:18:19,624] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2017-05-17 16:18:19,624] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2017-05-17 16:18:19,624] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2017-05-17 16:18:19,624] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2017-05-17 16:18:19,625] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2017-05-17 16:18:19,625] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2017-05-17 16:18:19,625] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2017-05-17 16:18:19,625] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2017-05-17 16:18:19,625] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2017-05-17 16:18:19,625] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2017-05-17 16:18:19,626] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2017-05-17 16:18:19,626] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2017-05-17 16:18:19,626] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2017-05-17 16:18:19,626] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2017-05-17 16:18:19,627] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2017-05-17 16:18:19,627] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2017-05-17 16:18:19,630] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2017-05-17 16:18:19,630] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2017-05-17 16:18:19,630] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2017-05-17 16:18:19,630] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2017-05-17 16:18:19,630] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2017-05-17 16:18:19,630] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2017-05-17 16:18:19,631] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2017-05-17 16:18:19,631] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2017-05-17 16:18:19,631] chirp.directory - INFO: Registered Alinco_DJ-G7EG = AlincoDJG7EG
[2017-05-17 16:18:19,632] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2017-05-17 16:18:19,632] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2017-05-17 16:18:19,632] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2017-05-17 16:18:19,632] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2017-05-17 16:18:19,632] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2017-05-17 16:18:19,633] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2017-05-17 16:18:19,634] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2017-05-17 16:18:19,635] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2017-05-17 16:18:19,635] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2017-05-17 16:18:19,635] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2017-05-17 16:18:19,635] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2017-05-17 16:18:19,636] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2017-05-17 16:18:19,637] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2017-05-17 16:18:19,637] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2017-05-17 16:18:19,637] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2017-05-17 16:18:19,637] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2017-05-17 16:18:19,637] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2017-05-17 16:18:19,638] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2017-05-17 16:18:19,638] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2017-05-17 16:18:19,638] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2017-05-17 16:18:19,639] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2017-05-17 16:18:19,639] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2017-05-17 16:18:19,640] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2017-05-17 16:18:19,640] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2017-05-17 16:18:19,640] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2017-05-17 16:18:19,640] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2017-05-17 16:18:19,640] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2017-05-17 16:18:19,640] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2017-05-17 16:18:19,641] chirp.directory - INFO: Registered BTECH_UV-25X2 = UV25X2
[2017-05-17 16:18:19,641] chirp.directory - INFO: Registered BTECH_UV-25X4 = UV25X4
[2017-05-17 16:18:19,641] chirp.directory - INFO: Registered BTECH_UV-50X2 = UV50X2
[2017-05-17 16:18:19,641] chirp.directory - INFO: Registered QYT_KT7900D = KT7900D
[2017-05-17 16:18:19,641] chirp.directory - INFO: Registered QYT_KT8900D = KT8900D
[2017-05-17 16:18:19,641] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2017-05-17 16:18:19,641] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2017-05-17 16:18:19,641] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2017-05-17 16:18:19,642] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2017-05-17 16:18:19,642] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2017-05-17 16:18:19,642] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2017-05-17 16:18:19,642] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2017-05-17 16:18:19,642] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2017-05-17 16:18:19,642] chirp.directory - INFO: Registered Feidaxin_FD-460UH = FD460UHRadio
[2017-05-17 16:18:19,642] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2017-05-17 16:18:19,643] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2017-05-17 16:18:19,643] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2017-05-17 16:18:19,644] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2017-05-17 16:18:19,644] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2017-05-17 16:18:19,644] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2017-05-17 16:18:19,645] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2017-05-17 16:18:19,645] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2017-05-17 16:18:19,645] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2017-05-17 16:18:19,645] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2017-05-17 16:18:19,646] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2017-05-17 16:18:19,646] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2017-05-17 16:18:19,646] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2017-05-17 16:18:19,646] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2017-05-17 16:18:19,646] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2017-05-17 16:18:19,647] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2017-05-17 16:18:19,647] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2017-05-17 16:18:19,648] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2017-05-17 16:18:19,648] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2017-05-17 16:18:19,648] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2017-05-17 16:18:19,648] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2017-05-17 16:18:19,655] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2017-05-17 16:18:19,655] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2017-05-17 16:18:19,659] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2017-05-17 16:18:19,659] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2017-05-17 16:18:19,659] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2017-05-17 16:18:19,659] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2017-05-17 16:18:19,659] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2017-05-17 16:18:19,660] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2017-05-17 16:18:19,660] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2017-05-17 16:18:19,660] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2017-05-17 16:18:19,660] chirp.directory - INFO: Registered Icom_IC-P7 = ICP7Radio
[2017-05-17 16:18:19,661] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2017-05-17 16:18:19,661] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2017-05-17 16:18:19,661] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2017-05-17 16:18:19,661] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2017-05-17 16:18:19,661] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2017-05-17 16:18:19,661] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2017-05-17 16:18:19,662] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2017-05-17 16:18:19,662] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2017-05-17 16:18:19,662] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2017-05-17 16:18:19,662] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2017-05-17 16:18:19,663] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2017-05-17 16:18:19,663] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2017-05-17 16:18:19,663] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2017-05-17 16:18:19,663] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2017-05-17 16:18:19,663] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2017-05-17 16:18:19,664] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2017-05-17 16:18:19,664] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2017-05-17 16:18:19,664] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2017-05-17 16:18:19,665] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2017-05-17 16:18:19,665] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2017-05-17 16:18:19,665] chirp.directory - INFO: Registered Jetstream_JT270MH = JetstreamJT270MHRadio
[2017-05-17 16:18:19,665] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2017-05-17 16:18:19,666] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2017-05-17 16:18:19,666] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2017-05-17 16:18:19,667] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2017-05-17 16:18:19,667] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2017-05-17 16:18:19,667] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2017-05-17 16:18:19,667] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2017-05-17 16:18:19,667] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2017-05-17 16:18:19,668] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2017-05-17 16:18:19,668] chirp.directory - INFO: Registered Retevis_RT1 = RT1Radio
[2017-05-17 16:18:19,668] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2017-05-17 16:18:19,669] chirp.directory - INFO: Registered Retevis_RT22 = RT22Radio
[2017-05-17 16:18:19,669] chirp.directory - INFO: Registered WLN_KD-C1 = KDC1
[2017-05-17 16:18:19,669] chirp.directory - INFO: Registered Zastone_ZT-X6 = ZTX6
[2017-05-17 16:18:19,669] chirp.directory - INFO: Registered LUITON_LT-316 = LT316
[2017-05-17 16:18:19,669] chirp.directory - INFO: Registered TID_TD-M8 = TDM8
[2017-05-17 16:18:19,669] chirp.directory - INFO: Registered Rugged_RH5R-V2 = RH5RV2
[2017-05-17 16:18:19,670] chirp.directory - INFO: Registered TDXone_TD-Q8A = TDXoneTDQ8A
[2017-05-17 16:18:19,670] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2017-05-17 16:18:19,670] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2017-05-17 16:18:19,670] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2017-05-17 16:18:19,671] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2017-05-17 16:18:19,671] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2017-05-17 16:18:19,671] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2017-05-17 16:18:19,671] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2017-05-17 16:18:19,671] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2017-05-17 16:18:19,671] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2017-05-17 16:18:19,672] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2017-05-17 16:18:19,672] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2017-05-17 16:18:19,672] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2017-05-17 16:18:19,673] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2017-05-17 16:18:19,673] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2017-05-17 16:18:19,673] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2017-05-17 16:18:19,673] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2017-05-17 16:18:19,673] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2017-05-17 16:18:19,673] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2017-05-17 16:18:19,673] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2017-05-17 16:18:19,673] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2017-05-17 16:18:19,674] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2017-05-17 16:18:19,674] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2017-05-17 16:18:19,674] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2017-05-17 16:18:19,674] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2017-05-17 16:18:19,674] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2017-05-17 16:18:19,674] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2017-05-17 16:18:19,675] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2017-05-17 16:18:19,675] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2017-05-17 16:18:19,675] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2017-05-17 16:18:19,675] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2017-05-17 16:18:19,675] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2017-05-17 16:18:19,675] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2017-05-17 16:18:19,675] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2017-05-17 16:18:19,675] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2017-05-17 16:18:19,675] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2017-05-17 16:18:19,675] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2017-05-17 16:18:19,675] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2017-05-17 16:18:19,676] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2017-05-17 16:18:19,676] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2017-05-17 16:18:19,676] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2017-05-17 16:18:19,676] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2017-05-17 16:18:19,676] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2017-05-17 16:18:19,676] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2017-05-17 16:18:19,676] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2017-05-17 16:18:19,676] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2017-05-17 16:18:19,677] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2017-05-17 16:18:19,677] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2017-05-17 16:18:19,677] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2017-05-17 16:18:19,678] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2017-05-17 16:18:19,678] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2017-05-17 16:18:19,678] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2017-05-17 16:18:19,679] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2017-05-17 16:18:19,679] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2017-05-17 16:18:19,679] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2017-05-17 16:18:19,680] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2017-05-17 16:18:19,680] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2017-05-17 16:18:19,680] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2017-05-17 16:18:19,681] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2017-05-17 16:18:19,681] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2017-05-17 16:18:19,681] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0
Tested changes:
[Jim Unroe <rock.unroe(a)gmail.com>] [LT-580] Add Support for Luiton LT-580 Mobile Radios
This patch adds the Luition LT-580 VHF and LT-580 UHF mobile radios to
the TYT TH-9000 driver.
#4231
[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 1d4c3754f45501b1f1060bbdde04f2d4b59554cc
[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 1d4c3754f45501b1f1060bbdde04f2d4b59554cc
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson8098815198079435314.sh
[workspace] $ /bin/sh -xe /tmp/hudson410451942299035198.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.086s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/platform.py:255:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1909:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1965:80: E501 line too long (82 > 79 characters)
real 0m11.451s
user 0m11.240s
sys 0m0.060s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2017-05-15 14:20:00,878] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.2 LTS (Python 2.7.12)
[2017-05-15 14:20:00,902] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2017-05-15 14:20:00,902] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2017-05-15 14:20:00,902] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2017-05-15 14:20:00,903] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2017-05-15 14:20:00,903] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2017-05-15 14:20:00,903] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2017-05-15 14:20:00,903] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2017-05-15 14:20:00,903] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2017-05-15 14:20:00,903] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2017-05-15 14:20:00,903] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2017-05-15 14:20:00,904] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2017-05-15 14:20:00,904] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2017-05-15 14:20:00,904] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2017-05-15 14:20:00,904] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2017-05-15 14:20:00,904] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2017-05-15 14:20:00,904] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2017-05-15 14:20:00,905] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2017-05-15 14:20:00,905] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2017-05-15 14:20:00,905] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2017-05-15 14:20:00,905] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2017-05-15 14:20:00,909] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2017-05-15 14:20:00,909] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2017-05-15 14:20:00,909] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2017-05-15 14:20:00,909] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2017-05-15 14:20:00,910] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2017-05-15 14:20:00,910] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2017-05-15 14:20:00,910] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2017-05-15 14:20:00,910] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2017-05-15 14:20:00,910] chirp.directory - INFO: Registered Alinco_DJ-G7EG = AlincoDJG7EG
[2017-05-15 14:20:00,910] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2017-05-15 14:20:00,910] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2017-05-15 14:20:00,910] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2017-05-15 14:20:00,911] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2017-05-15 14:20:00,911] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2017-05-15 14:20:00,911] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2017-05-15 14:20:00,912] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2017-05-15 14:20:00,912] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2017-05-15 14:20:00,912] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2017-05-15 14:20:00,912] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2017-05-15 14:20:00,913] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2017-05-15 14:20:00,913] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2017-05-15 14:20:00,913] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2017-05-15 14:20:00,914] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2017-05-15 14:20:00,914] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2017-05-15 14:20:00,914] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2017-05-15 14:20:00,914] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2017-05-15 14:20:00,914] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2017-05-15 14:20:00,914] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2017-05-15 14:20:00,914] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2017-05-15 14:20:00,915] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2017-05-15 14:20:00,915] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2017-05-15 14:20:00,915] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2017-05-15 14:20:00,915] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2017-05-15 14:20:00,915] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2017-05-15 14:20:00,915] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2017-05-15 14:20:00,916] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2017-05-15 14:20:00,916] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2017-05-15 14:20:00,916] chirp.directory - INFO: Registered BTECH_UV-25X2 = UV25X2
[2017-05-15 14:20:00,916] chirp.directory - INFO: Registered BTECH_UV-25X4 = UV25X4
[2017-05-15 14:20:00,916] chirp.directory - INFO: Registered BTECH_UV-50X2 = UV50X2
[2017-05-15 14:20:00,916] chirp.directory - INFO: Registered QYT_KT7900D = KT7900D
[2017-05-15 14:20:00,916] chirp.directory - INFO: Registered QYT_KT8900D = KT8900D
[2017-05-15 14:20:00,916] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2017-05-15 14:20:00,916] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2017-05-15 14:20:00,917] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2017-05-15 14:20:00,917] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2017-05-15 14:20:00,917] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2017-05-15 14:20:00,917] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2017-05-15 14:20:00,917] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2017-05-15 14:20:00,917] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2017-05-15 14:20:00,917] chirp.directory - INFO: Registered Feidaxin_FD-460UH = FD460UHRadio
[2017-05-15 14:20:00,917] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2017-05-15 14:20:00,919] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2017-05-15 14:20:00,919] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2017-05-15 14:20:00,920] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2017-05-15 14:20:00,920] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2017-05-15 14:20:00,920] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2017-05-15 14:20:00,921] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2017-05-15 14:20:00,921] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2017-05-15 14:20:00,921] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2017-05-15 14:20:00,921] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2017-05-15 14:20:00,922] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2017-05-15 14:20:00,922] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2017-05-15 14:20:00,922] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2017-05-15 14:20:00,922] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2017-05-15 14:20:00,922] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2017-05-15 14:20:00,923] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2017-05-15 14:20:00,923] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2017-05-15 14:20:00,924] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2017-05-15 14:20:00,924] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2017-05-15 14:20:00,924] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2017-05-15 14:20:00,924] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2017-05-15 14:20:00,932] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2017-05-15 14:20:00,932] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2017-05-15 14:20:00,936] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2017-05-15 14:20:00,937] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2017-05-15 14:20:00,937] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2017-05-15 14:20:00,937] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2017-05-15 14:20:00,937] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2017-05-15 14:20:00,938] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2017-05-15 14:20:00,938] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2017-05-15 14:20:00,939] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2017-05-15 14:20:00,939] chirp.directory - INFO: Registered Icom_IC-P7 = ICP7Radio
[2017-05-15 14:20:00,939] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2017-05-15 14:20:00,940] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2017-05-15 14:20:00,940] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2017-05-15 14:20:00,940] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2017-05-15 14:20:00,940] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2017-05-15 14:20:00,941] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2017-05-15 14:20:00,941] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2017-05-15 14:20:00,942] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2017-05-15 14:20:00,942] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2017-05-15 14:20:00,942] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2017-05-15 14:20:00,942] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2017-05-15 14:20:00,943] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2017-05-15 14:20:00,943] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2017-05-15 14:20:00,943] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2017-05-15 14:20:00,944] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2017-05-15 14:20:00,944] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2017-05-15 14:20:00,945] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2017-05-15 14:20:00,945] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2017-05-15 14:20:00,946] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2017-05-15 14:20:00,946] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2017-05-15 14:20:00,946] chirp.directory - INFO: Registered Jetstream_JT270MH = JetstreamJT270MHRadio
[2017-05-15 14:20:00,946] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2017-05-15 14:20:00,948] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2017-05-15 14:20:00,949] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2017-05-15 14:20:00,949] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2017-05-15 14:20:00,949] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2017-05-15 14:20:00,949] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2017-05-15 14:20:00,949] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2017-05-15 14:20:00,950] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2017-05-15 14:20:00,951] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2017-05-15 14:20:00,951] chirp.directory - INFO: Registered Retevis_RT1 = RT1Radio
[2017-05-15 14:20:00,952] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2017-05-15 14:20:00,952] chirp.directory - INFO: Registered Retevis_RT22 = RT22Radio
[2017-05-15 14:20:00,952] chirp.directory - INFO: Registered WLN_KD-C1 = KDC1
[2017-05-15 14:20:00,952] chirp.directory - INFO: Registered Zastone_ZT-X6 = ZTX6
[2017-05-15 14:20:00,953] chirp.directory - INFO: Registered LUITON_LT-316 = LT316
[2017-05-15 14:20:00,953] chirp.directory - INFO: Registered TID_TD-M8 = TDM8
[2017-05-15 14:20:00,953] chirp.directory - INFO: Registered Rugged_RH5R-V2 = RH5RV2
[2017-05-15 14:20:00,954] chirp.directory - INFO: Registered TDXone_TD-Q8A = TDXoneTDQ8A
[2017-05-15 14:20:00,955] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2017-05-15 14:20:00,955] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2017-05-15 14:20:00,955] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2017-05-15 14:20:00,955] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2017-05-15 14:20:00,955] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2017-05-15 14:20:00,956] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2017-05-15 14:20:00,956] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2017-05-15 14:20:00,957] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2017-05-15 14:20:00,957] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2017-05-15 14:20:00,957] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2017-05-15 14:20:00,958] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2017-05-15 14:20:00,958] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2017-05-15 14:20:00,959] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2017-05-15 14:20:00,959] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2017-05-15 14:20:00,959] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2017-05-15 14:20:00,959] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2017-05-15 14:20:00,959] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2017-05-15 14:20:00,959] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2017-05-15 14:20:00,960] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2017-05-15 14:20:00,960] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2017-05-15 14:20:00,960] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2017-05-15 14:20:00,960] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2017-05-15 14:20:00,961] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2017-05-15 14:20:00,961] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2017-05-15 14:20:00,961] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2017-05-15 14:20:00,961] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2017-05-15 14:20:00,962] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2017-05-15 14:20:00,962] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2017-05-15 14:20:00,962] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2017-05-15 14:20:00,962] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2017-05-15 14:20:00,962] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2017-05-15 14:20:00,962] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2017-05-15 14:20:00,963] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2017-05-15 14:20:00,963] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2017-05-15 14:20:00,963] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2017-05-15 14:20:00,963] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2017-05-15 14:20:00,963] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2017-05-15 14:20:00,963] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2017-05-15 14:20:00,964] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2017-05-15 14:20:00,964] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2017-05-15 14:20:00,964] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2017-05-15 14:20:00,964] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2017-05-15 14:20:00,964] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2017-05-15 14:20:00,964] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2017-05-15 14:20:00,965] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2017-05-15 14:20:00,965] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2017-05-15 14:20:00,966] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2017-05-15 14:20:00,966] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2017-05-15 14:20:00,967] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2017-05-15 14:20:00,968] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2017-05-15 14:20:00,968] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2017-05-15 14:20:00,968] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2017-05-15 14:20:00,969] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2017-05-15 14:20:00,969] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2017-05-15 14:20:00,970] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2017-05-15 14:20:00,970] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2017-05-15 14:20:00,971] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2017-05-15 14:20:00,972] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2017-05-15 14:20:00,972] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2017-05-15 14:20:00,972] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
3
6
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1495054485 14400
# Node ID de7f875d0495f805e825237018eab10f59b6b92a
# Parent 884a3be4226cc938ae3ff0ac6098650a924d4807
[LT725UV] Wrong Radio Model in RadioPrompt
This patch corrects the radio model called oun in the Experimental RadioPrompt.
related to Bug #4829
diff -r 884a3be4226c -r de7f875d0495 chirp/drivers/lt725uv.py
--- a/chirp/drivers/lt725uv.py Sat May 06 18:16:23 2017 -0400
+++ b/chirp/drivers/lt725uv.py Wed May 17 16:54:45 2017 -0400
@@ -322,7 +322,7 @@
def get_prompts(cls):
rp = chirp_common.RadioPrompts()
rp.experimental = \
- ('The UV-50X3 driver is a beta version.\n'
+ ('The LT725UV driver is a beta version.\n'
'\n'
'Please save an unedited copy of your first successful\n'
'download to a CHIRP Radio Images(*.img) file.'
1
0
Tested changes:
[Jim Unroe <rock.unroe(a)gmail.com>] [UV-25X2*] Duplex "split" bug
This patch addresses a "split" bug that causes CHIRP to display a
memory as a shift direction/offset even if the RX and TX frequencies
are each in a different band.
* this affects all mobile radios supported by the btech.py driver
Related to Bug #4825
[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 884a3be4226cc938ae3ff0ac6098650a924d4807
[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 884a3be4226cc938ae3ff0ac6098650a924d4807
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson1879262462798184891.sh
[workspace] $ /bin/sh -xe /tmp/hudson6724838088038537836.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.051s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/platform.py:255:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1909:80: E501 line too long (82 > 79 characters)
./chirp/ui/mainapp.py:1965:80: E501 line too long (82 > 79 characters)
real 0m7.619s
user 0m7.496s
sys 0m0.036s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2017-05-17 07:09:59,495] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.2 LTS (Python 2.7.12)
[2017-05-17 07:09:59,508] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2017-05-17 07:09:59,508] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2017-05-17 07:09:59,508] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2017-05-17 07:09:59,508] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2017-05-17 07:09:59,508] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2017-05-17 07:09:59,509] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2017-05-17 07:09:59,509] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2017-05-17 07:09:59,509] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2017-05-17 07:09:59,509] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2017-05-17 07:09:59,509] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2017-05-17 07:09:59,509] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2017-05-17 07:09:59,509] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2017-05-17 07:09:59,509] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2017-05-17 07:09:59,509] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2017-05-17 07:09:59,509] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2017-05-17 07:09:59,509] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2017-05-17 07:09:59,510] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2017-05-17 07:09:59,510] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2017-05-17 07:09:59,510] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2017-05-17 07:09:59,510] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2017-05-17 07:09:59,512] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2017-05-17 07:09:59,513] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2017-05-17 07:09:59,513] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2017-05-17 07:09:59,513] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2017-05-17 07:09:59,513] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2017-05-17 07:09:59,513] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2017-05-17 07:09:59,513] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2017-05-17 07:09:59,513] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2017-05-17 07:09:59,513] chirp.directory - INFO: Registered Alinco_DJ-G7EG = AlincoDJG7EG
[2017-05-17 07:09:59,513] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2017-05-17 07:09:59,514] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2017-05-17 07:09:59,514] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2017-05-17 07:09:59,514] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2017-05-17 07:09:59,514] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2017-05-17 07:09:59,514] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2017-05-17 07:09:59,515] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2017-05-17 07:09:59,515] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2017-05-17 07:09:59,515] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2017-05-17 07:09:59,516] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2017-05-17 07:09:59,516] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2017-05-17 07:09:59,516] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2017-05-17 07:09:59,517] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2017-05-17 07:09:59,517] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2017-05-17 07:09:59,517] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2017-05-17 07:09:59,517] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2017-05-17 07:09:59,517] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2017-05-17 07:09:59,517] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2017-05-17 07:09:59,517] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2017-05-17 07:09:59,517] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2017-05-17 07:09:59,518] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2017-05-17 07:09:59,518] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2017-05-17 07:09:59,518] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2017-05-17 07:09:59,518] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2017-05-17 07:09:59,518] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2017-05-17 07:09:59,518] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2017-05-17 07:09:59,519] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2017-05-17 07:09:59,519] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2017-05-17 07:09:59,519] chirp.directory - INFO: Registered BTECH_UV-25X2 = UV25X2
[2017-05-17 07:09:59,519] chirp.directory - INFO: Registered BTECH_UV-25X4 = UV25X4
[2017-05-17 07:09:59,519] chirp.directory - INFO: Registered BTECH_UV-50X2 = UV50X2
[2017-05-17 07:09:59,519] chirp.directory - INFO: Registered QYT_KT7900D = KT7900D
[2017-05-17 07:09:59,519] chirp.directory - INFO: Registered QYT_KT8900D = KT8900D
[2017-05-17 07:09:59,519] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2017-05-17 07:09:59,519] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2017-05-17 07:09:59,520] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2017-05-17 07:09:59,520] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2017-05-17 07:09:59,520] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2017-05-17 07:09:59,520] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2017-05-17 07:09:59,520] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2017-05-17 07:09:59,520] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2017-05-17 07:09:59,520] chirp.directory - INFO: Registered Feidaxin_FD-460UH = FD460UHRadio
[2017-05-17 07:09:59,520] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2017-05-17 07:09:59,522] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2017-05-17 07:09:59,522] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2017-05-17 07:09:59,523] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2017-05-17 07:09:59,523] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2017-05-17 07:09:59,524] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2017-05-17 07:09:59,525] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2017-05-17 07:09:59,525] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2017-05-17 07:09:59,526] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2017-05-17 07:09:59,526] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2017-05-17 07:09:59,527] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2017-05-17 07:09:59,527] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2017-05-17 07:09:59,527] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2017-05-17 07:09:59,528] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2017-05-17 07:09:59,528] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2017-05-17 07:09:59,529] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2017-05-17 07:09:59,529] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2017-05-17 07:09:59,530] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2017-05-17 07:09:59,530] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2017-05-17 07:09:59,530] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2017-05-17 07:09:59,530] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2017-05-17 07:09:59,537] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2017-05-17 07:09:59,538] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2017-05-17 07:09:59,541] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2017-05-17 07:09:59,541] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2017-05-17 07:09:59,541] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2017-05-17 07:09:59,541] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2017-05-17 07:09:59,542] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2017-05-17 07:09:59,542] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2017-05-17 07:09:59,542] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2017-05-17 07:09:59,542] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2017-05-17 07:09:59,543] chirp.directory - INFO: Registered Icom_IC-P7 = ICP7Radio
[2017-05-17 07:09:59,543] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2017-05-17 07:09:59,543] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2017-05-17 07:09:59,543] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2017-05-17 07:09:59,543] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2017-05-17 07:09:59,544] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2017-05-17 07:09:59,544] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2017-05-17 07:09:59,544] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2017-05-17 07:09:59,544] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2017-05-17 07:09:59,545] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2017-05-17 07:09:59,545] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2017-05-17 07:09:59,545] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2017-05-17 07:09:59,545] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2017-05-17 07:09:59,545] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2017-05-17 07:09:59,546] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2017-05-17 07:09:59,546] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2017-05-17 07:09:59,546] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2017-05-17 07:09:59,546] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2017-05-17 07:09:59,547] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2017-05-17 07:09:59,547] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2017-05-17 07:09:59,547] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2017-05-17 07:09:59,547] chirp.directory - INFO: Registered Jetstream_JT270MH = JetstreamJT270MHRadio
[2017-05-17 07:09:59,547] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2017-05-17 07:09:59,548] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2017-05-17 07:09:59,549] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2017-05-17 07:09:59,549] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2017-05-17 07:09:59,549] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2017-05-17 07:09:59,549] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2017-05-17 07:09:59,549] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2017-05-17 07:09:59,549] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2017-05-17 07:09:59,550] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2017-05-17 07:09:59,550] chirp.directory - INFO: Registered Retevis_RT1 = RT1Radio
[2017-05-17 07:09:59,551] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2017-05-17 07:09:59,551] chirp.directory - INFO: Registered Retevis_RT22 = RT22Radio
[2017-05-17 07:09:59,551] chirp.directory - INFO: Registered WLN_KD-C1 = KDC1
[2017-05-17 07:09:59,551] chirp.directory - INFO: Registered Zastone_ZT-X6 = ZTX6
[2017-05-17 07:09:59,551] chirp.directory - INFO: Registered LUITON_LT-316 = LT316
[2017-05-17 07:09:59,551] chirp.directory - INFO: Registered TID_TD-M8 = TDM8
[2017-05-17 07:09:59,551] chirp.directory - INFO: Registered Rugged_RH5R-V2 = RH5RV2
[2017-05-17 07:09:59,552] chirp.directory - INFO: Registered TDXone_TD-Q8A = TDXoneTDQ8A
[2017-05-17 07:09:59,552] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2017-05-17 07:09:59,552] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2017-05-17 07:09:59,553] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2017-05-17 07:09:59,553] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2017-05-17 07:09:59,553] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2017-05-17 07:09:59,553] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2017-05-17 07:09:59,553] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2017-05-17 07:09:59,554] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2017-05-17 07:09:59,554] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2017-05-17 07:09:59,554] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2017-05-17 07:09:59,554] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2017-05-17 07:09:59,555] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2017-05-17 07:09:59,555] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2017-05-17 07:09:59,555] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2017-05-17 07:09:59,555] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2017-05-17 07:09:59,555] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2017-05-17 07:09:59,555] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2017-05-17 07:09:59,555] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2017-05-17 07:09:59,556] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2017-05-17 07:09:59,556] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2017-05-17 07:09:59,556] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2017-05-17 07:09:59,556] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2017-05-17 07:09:59,556] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2017-05-17 07:09:59,556] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2017-05-17 07:09:59,556] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2017-05-17 07:09:59,556] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2017-05-17 07:09:59,557] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2017-05-17 07:09:59,557] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2017-05-17 07:09:59,557] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2017-05-17 07:09:59,557] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2017-05-17 07:09:59,557] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2017-05-17 07:09:59,557] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2017-05-17 07:09:59,557] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2017-05-17 07:09:59,557] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2017-05-17 07:09:59,558] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2017-05-17 07:09:59,558] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2017-05-17 07:09:59,558] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2017-05-17 07:09:59,558] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2017-05-17 07:09:59,558] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2017-05-17 07:09:59,558] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2017-05-17 07:09:59,558] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2017-05-17 07:09:59,558] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2017-05-17 07:09:59,558] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2017-05-17 07:09:59,559] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2017-05-17 07:09:59,559] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2017-05-17 07:09:59,559] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2017-05-17 07:09:59,559] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2017-05-17 07:09:59,560] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2017-05-17 07:09:59,560] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2017-05-17 07:09:59,561] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2017-05-17 07:09:59,561] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2017-05-17 07:09:59,561] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2017-05-17 07:09:59,561] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2017-05-17 07:09:59,562] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2017-05-17 07:09:59,562] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2017-05-17 07:09:59,562] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2017-05-17 07:09:59,563] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2017-05-17 07:09:59,563] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2017-05-17 07:09:59,563] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2017-05-17 07:09:59,563] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0