Developers
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 3 participants
- 2964 discussions
While working on the changes to support Python virtualenv's, I noticed
there's no locale directory in the linux daily builds, or in my local
builds.
I"m also seeing build errors related to the locales:
make: Entering directory `/home/mikeyp/Documents/new_chirp/chirp.hg/locale'
rm -f en_US/LC_MESSAGES/CHIRP.mo pl/LC_MESSAGES/CHIRP.mo
it/LC_MESSAGES/CHIRP.mo nl/LC_MESSAGES/CHIRP.mo de/LC_MESSAGES/CHIRP.mo
hu/LC_MESSAGES/CHIRP.mo ru/LC_MESSAGES/CHIRP.mo pt_BR/LC_MESSAGES/CHIRP.mo
*~ *.orig
rm -f `find . -name '*.mo'`
rmdir `find * -depth -type d`
rmdir: missing operand
Try `rmdir --help' for more information.
make: *** [clean] Error 1
make: Leaving directory `/home/mikeyp/Documents/new_chirp/chirp.hg/locale'
LOC: []
Is this a bug, or just something not implemented yet ?
mike
1
0
[chirp_devel] [PATCH] [uv-b5]Add Test Mode Settings for Squelch Levels and Power Output Levels
by Jim Unroe 10 Sep '13
by Jim Unroe 10 Sep '13
10 Sep '13
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1378866694 14400
# Node ID 96f54c5afe2ada5b0f4874de0a264e6930ba412c
# Parent c60b1cdee0f0549b7c1ae56507b3738778fc5b5d
[uv-b5]Add Test Mode Settings for Squelch Levels and Power Output Levels
that correspond to the OEM software's Test Mode settings menu.
add structure to support test mode settings
add Test Mode menu
add 8 VHF High Power settings
add 8 VHF Low Power settings
add 8 UHF High Power settings
add 8 UHF Low Power settings
add 10 VHF Squelch settings
add 10 UHF Squelch settings
#1123
diff -r c60b1cdee0f0 -r 96f54c5afe2a chirp/uvb5.py
--- a/chirp/uvb5.py Mon Sep 09 14:06:23 2013 -0700
+++ b/chirp/uvb5.py Tue Sep 10 22:31:34 2013 -0400
@@ -96,6 +96,64 @@
lbcd lower_uhf[2];
lbcd upper_uhf[2];
} limits;
+
+#seekto 0x0FF0;
+struct {
+ u8 vhfsquelch0;
+ u8 vhfsquelch1;
+ u8 vhfsquelch2;
+ u8 vhfsquelch3;
+ u8 vhfsquelch4;
+ u8 vhfsquelch5;
+ u8 vhfsquelch6;
+ u8 vhfsquelch7;
+ u8 vhfsquelch8;
+ u8 vhfsquelch9;
+ u8 unknown1[6];
+ u8 uhfsquelch0;
+ u8 uhfsquelch1;
+ u8 uhfsquelch2;
+ u8 uhfsquelch3;
+ u8 uhfsquelch4;
+ u8 uhfsquelch5;
+ u8 uhfsquelch6;
+ u8 uhfsquelch7;
+ u8 uhfsquelch8;
+ u8 uhfsquelch9;
+ u8 unknown2[6];
+ u8 vhfhipwr0;
+ u8 vhfhipwr1;
+ u8 vhfhipwr2;
+ u8 vhfhipwr3;
+ u8 vhfhipwr4;
+ u8 vhfhipwr5;
+ u8 vhfhipwr6;
+ u8 vhfhipwr7;
+ u8 vhflopwr0;
+ u8 vhflopwr1;
+ u8 vhflopwr2;
+ u8 vhflopwr3;
+ u8 vhflopwr4;
+ u8 vhflopwr5;
+ u8 vhflopwr6;
+ u8 vhflopwr7;
+ u8 uhfhipwr0;
+ u8 uhfhipwr1;
+ u8 uhfhipwr2;
+ u8 uhfhipwr3;
+ u8 uhfhipwr4;
+ u8 uhfhipwr5;
+ u8 uhfhipwr6;
+ u8 uhfhipwr7;
+ u8 uhflopwr0;
+ u8 uhflopwr1;
+ u8 uhflopwr2;
+ u8 uhflopwr3;
+ u8 uhflopwr4;
+ u8 uhflopwr5;
+ u8 uhflopwr6;
+ u8 uhflopwr7;
+} test;
"""
def do_ident(radio):
@@ -542,6 +600,45 @@
rs.set_apply_callback(apply_freq, self._memobj.broadcastfm[i])
bcastfm.append(rs)
+ testmode = RadioSettingGroup("testmode", "Test Mode Settings")
+ group.append(testmode)
+
+ vhfdata = ["136-139", "140-144", "145-149", "150-154",
+ "155-159", "160-164", "165-169", "170-174"]
+ uhfdata = ["400-409", "410-419", "420-429", "430-439",
+ "440-449", "450-459", "460-469", "470-479"]
+ powernamedata = ["Hi", "Lo"]
+ powerkeydata = ["hipwr", "lopwr"]
+
+ for power in range (0, 2):
+ for index in range(0, 8):
+ key = "test.vhf%s%i" % (powerkeydata[power], index)
+ name = "%s Mhz %s Power" % (vhfdata[index],
+ powernamedata[power])
+ rs = RadioSetting(key, name, RadioSettingValueInteger(0, 255,
+ getattr(self._memobj.test, "vhf%s%i"
+ % (powerkeydata[power], index))))
+ testmode.append(rs)
+
+ for power in range (0, 2):
+ for index in range(0, 8):
+ key = "test.uhf%s%i" % (powerkeydata[power], index)
+ name = "%s Mhz %s Power" % (uhfdata[index],
+ powernamedata[power])
+ rs = RadioSetting(key, name, RadioSettingValueInteger(0, 255,
+ getattr(self._memobj.test, "uhf%s%i"
+ % (powerkeydata[power], index))))
+ testmode.append(rs)
+
+ for band in ["vhf", "uhf"]:
+ for index in range(0, 10):
+ key = "test.%ssquelch%i" % (band, index)
+ name = "%s Squelch %i" % (band.upper(), index)
+ rs = RadioSetting(key, name, RadioSettingValueInteger(0, 255,
+ getattr(self._memobj.test, "%ssquelch%i"
+ % (band, index))))
+ testmode.append(rs)
+
return group
def set_settings(self, settings):
1
0
[chirp_devel] [PATCH] [uv-b5]Add Test Mode Settings for Squelch Levels and Power Output Levels
by Jim Unroe 10 Sep '13
by Jim Unroe 10 Sep '13
10 Sep '13
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1378779173 14400
# Node ID faeedc1f4b5f978fb917adb68c752492cbb68433
# Parent c60b1cdee0f0549b7c1ae56507b3738778fc5b5d
[uv-b5]Add Test Mode Settings for Squelch Levels and Power Output Levels
that correspond to the OEM software's Test Mode settings menu.
add structure to support test mode settings
add Test Mode menu
add 8 VHF High Power settings
add 8 VHF Low Power settings
add 8 UHF High Power settings
add 8 UHF Low Power settings
add 10 VHF Squelch settings
add 10 UHF Squelch settings
#1123
diff -r c60b1cdee0f0 -r faeedc1f4b5f chirp/uvb5.py
--- a/chirp/uvb5.py Mon Sep 09 14:06:23 2013 -0700
+++ b/chirp/uvb5.py Mon Sep 09 22:12:53 2013 -0400
@@ -96,6 +96,64 @@
lbcd lower_uhf[2];
lbcd upper_uhf[2];
} limits;
+
+#seekto 0x0FF0;
+struct {
+ u8 vhfsquelch0;
+ u8 vhfsquelch1;
+ u8 vhfsquelch2;
+ u8 vhfsquelch3;
+ u8 vhfsquelch4;
+ u8 vhfsquelch5;
+ u8 vhfsquelch6;
+ u8 vhfsquelch7;
+ u8 vhfsquelch8;
+ u8 vhfsquelch9;
+ u8 unknown1[6];
+ u8 uhfsquelch0;
+ u8 uhfsquelch1;
+ u8 uhfsquelch2;
+ u8 uhfsquelch3;
+ u8 uhfsquelch4;
+ u8 uhfsquelch5;
+ u8 uhfsquelch6;
+ u8 uhfsquelch7;
+ u8 uhfsquelch8;
+ u8 uhfsquelch9;
+ u8 unknown2[6];
+ u8 vhfhipwr0;
+ u8 vhfhipwr1;
+ u8 vhfhipwr2;
+ u8 vhfhipwr3;
+ u8 vhfhipwr4;
+ u8 vhfhipwr5;
+ u8 vhfhipwr6;
+ u8 vhfhipwr7;
+ u8 vhflopwr0;
+ u8 vhflopwr1;
+ u8 vhflopwr2;
+ u8 vhflopwr3;
+ u8 vhflopwr4;
+ u8 vhflopwr5;
+ u8 vhflopwr6;
+ u8 vhflopwr7;
+ u8 uhfhipwr0;
+ u8 uhfhipwr1;
+ u8 uhfhipwr2;
+ u8 uhfhipwr3;
+ u8 uhfhipwr4;
+ u8 uhfhipwr5;
+ u8 uhfhipwr6;
+ u8 uhfhipwr7;
+ u8 uhflopwr0;
+ u8 uhflopwr1;
+ u8 uhflopwr2;
+ u8 uhflopwr3;
+ u8 uhflopwr4;
+ u8 uhflopwr5;
+ u8 uhflopwr6;
+ u8 uhflopwr7;
+} test;
"""
def do_ident(radio):
@@ -542,6 +600,217 @@
rs.set_apply_callback(apply_freq, self._memobj.broadcastfm[i])
bcastfm.append(rs)
+ testmode = RadioSettingGroup("testmode", "Test Mode Settings")
+ group.append(testmode)
+
+ rs = RadioSetting("test.vhfhipwr0", "136-139 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfhipwr0))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfhipwr1", "140-144 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfhipwr1))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfhipwr2", "145-149 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfhipwr2))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfhipwr3", "150-154 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfhipwr3))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfhipwr4", "155-159 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfhipwr4))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfhipwr5", "160-164 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfhipwr5))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfhipwr6", "165-169 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfhipwr6))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfhipwr7", "170-174 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfhipwr7))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhflopwr0", "136-139 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhflopwr0))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhflopwr1", "140-144 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhflopwr1))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhflopwr2", "145-149 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhflopwr2))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhflopwr3", "150-154 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhflopwr3))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhflopwr4", "155-159 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhflopwr4))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhflopwr5", "160-164 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhflopwr5))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhflopwr6", "165-169 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhflopwr6))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhflopwr7", "170-174 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhflopwr7))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfhipwr0", "400-409 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfhipwr0))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfhipwr1", "410-419 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfhipwr1))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfhipwr2", "420-429 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfhipwr2))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfhipwr3", "430-439 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfhipwr3))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfhipwr4", "440-449 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfhipwr4))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfhipwr5", "450-459 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfhipwr5))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfhipwr6", "460-469 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfhipwr6))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfhipwr7", "470-479 Mhz High Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfhipwr7))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhflopwr0", "400-409 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhflopwr0))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhflopwr1", "410-419 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhflopwr1))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhflopwr2", "420-429 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhflopwr2))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhflopwr3", "430-439 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhflopwr3))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhflopwr4", "440-449 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhflopwr4))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhflopwr5", "450-459 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhflopwr5))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhflopwr6", "460-469 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhflopwr6))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhflopwr7", "470-479 Mhz Low Power",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhflopwr7))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfsquelch0", "VHF Squelch 0",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfsquelch0))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfsquelch1", "VHF Squelch 1",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfsquelch1))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfsquelch2", "VHF Squelch 2",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfsquelch2))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfsquelch3", "VHF Squelch 3",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfsquelch3))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfsquelch4", "VHF Squelch 4",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfsquelch4))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfsquelch5", "VHF Squelch 5",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfsquelch5))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfsquelch6", "VHF Squelch 6",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfsquelch6))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfsquelch7", "VHF Squelch 7",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfsquelch7))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfsquelch8", "VHF Squelch 8",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfsquelch8))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.vhfsquelch9", "VHF Squelch 9",
+ RadioSettingValueInteger(0,255, self._memobj.test.vhfsquelch9))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfsquelch0", "UHF Squelch 0",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfsquelch0))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfsquelch1", "UHF Squelch 1",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfsquelch1))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfsquelch2", "UHF Squelch 2",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfsquelch2))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfsquelch3", "UHF Squelch 3",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfsquelch3))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfsquelch4", "UHF Squelch 4",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfsquelch4))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfsquelch5", "UHF Squelch 5",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfsquelch5))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfsquelch6", "UHF Squelch 6",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfsquelch6))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfsquelch7", "UHF Squelch 7",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfsquelch7))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfsquelch8", "UHF Squelch 8",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfsquelch8))
+ testmode.append(rs)
+
+ rs = RadioSetting("test.uhfsquelch9", "UHF Squelch 9",
+ RadioSettingValueInteger(0,255, self._memobj.test.uhfsquelch9))
+ testmode.append(rs)
+
return group
def set_settings(self, settings):
3
4
There seem to be quite a few differently named but identical radios. The
original software for these is called BF-480, so I assume this model is
also identical, at least from a programming point of view.
I have an H-777 and a BF-888S and they certainly seem the same except
for a few minor firmware differences. They can both be programmed by the
H777/BF888 code in Chirp.
So, based upon pictures and specs I've found on the internet, here's a
list of radios I believe to be the same:
Baofeng BF-480
Baofeng BF-666S
Baofeng BF-777S
Baofeng BF-888S
BHD B-828
BHD B-868
Heng Shun Tong (???) H-777
Tianyi TY-100
Zastone ZT-V68
--
Andrew.
1
0
Tested changes:
[Dan Smith <dsmith(a)danplanet.com>] [bf888] Add Baofeng BF-888 test image
[Dan Smith <dsmith(a)danplanet.com>] [bf888] Enable Baofeng BF-888 driver
Related to #701
[Dan Smith <dsmith(a)danplanet.com>] Fix radio browser exposing children in tree with nothing to see
Right now, the radio browser will expose the elements of an array
as children in the tree, but clicking on them yields nothing as
arrays are exposed at the top level. This avoids adding those
elements to the tree to avoid confusion.
(need a bug here)
[Dan Smith <dsmith(a)danplanet.com>] [bf888] Standardize cloning routines and change name
This patch makes the BF888/H777 driver pass the functional tests. Most
of the change is around making the clone routines return conventional
error messages and the proper exceptions for errors. Also, to run the
functional tests, we have to have a predictable VENDOR and MODEL for
the driver. The chinese name is cool (and correct) but it's going to
get in the way of testing on some systems. For now, call this driver
the Baofeng BF-888. Later, if we can figure out how to differentiate
files for them, we can have a subclass for the H777.
Related to #701
[Dan Smith <dsmith(a)danplanet.com>] [bf888] Finish BCL and BS flags and fix other inverted ones
This adds Busy Channel Lockout and Beat Shift per-memory settings.
The power, mode, and skip flags were also inverted, so this fixes that
as well as punts on further decoding memory data if we determine
that it is empty.
Related to #701
[Dan Smith <dsmith(a)danplanet.com>] [bf888] Finish tone encoding and decoding
This finishes Tone and DTCS encode/decode, as well as adds support
for all the Cross variations.
Related to #701
[Dan Smith <dsmith(a)danplanet.com>] [bf888] Fix get_raw_memory() index
This makes the get_raw_memory() function properly return the n-1'th
memory.
Related to #701
[Dan Smith <dsmith(a)danplanet.com>] [bf888] Fix loading existing files
This adds the process_mmap() function so that the driver will
properly load existing files from disk.
Related to #701
[Dan Smith <dsmith(a)danplanet.com>] [bf888] Clean up clone routines
This avoids counting the blocks and otherwise streamlines the
clone upload and download routines.
Related to #701
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 2fdf058355458deb31f1fcb711437ee71dd24ba1
[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 2fdf058355458deb31f1fcb711437ee71dd24ba1
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson9157330093167036600.sh
+ cd tests
+ ./run_tests
Registered Icom_IC-2820H = IC2820Radio
Registered AnyTone_5888UV = AnyTone5888UVRadio
Registered Icom_IC-2200H = IC2200Radio
Registered Yaesu_FT-2800M = FT2800Radio
Registered Yaesu_VX-3 = VX3Radio
Registered Icom_IC-2100H = IC2100Radio
Registered Yaesu_FTM-350 = FTM350Radio
Registered Icom_IC-91_92AD_ICF_File = IC9xICFRadio
Registered Icom_IC-V82_U82 = ICx8xRadio
Registered Yaesu_VX-6 = VX6Radio
Registered Yaesu_VX-5 = VX5Radio
Registered Yaesu_FT-60 = FT60Radio
Registered Yaesu_VX-7 = VX7Radio
Registered Baofeng_UV-5R = BaofengUV5R
Registered Baofeng_F-11 = BaofengF11Radio
Registered Baofeng_UV-82 = BaofengUV82Radio
Registered Yaesu_FT-1802M = FT1802Radio
Registered Kenwood_TK-7102 = KenwoodTK7102Radio
Registered Kenwood_TK-8102 = KenwoodTK8102Radio
Registered Kenwood_TK-7108 = KenwoodTK7108Radio
Registered Kenwood_TK-8108 = KenwoodTK8108Radio
Registered Icom_ID-31A = ID31Radio
Registered Icom_ID-51A = ID51Radio
Registered Icom_IC-2720H = IC2720Radio
Registered Icom_IC-T8A = ICT8ARadio
Registered Wouxun_KG-UVD1P = KGUVD1PRadio
Registered Wouxun_KG-UV6 = KGUV6DRadio
Registered Wouxun_KG-816 = KG816Radio
Registered Wouxun_KG-818 = KG818Radio
Registered TYT_TH-UVF1 = TYTTHUVF1Radio
Registered Yaesu_FT-90 = FT90Radio
Registered Generic_CSV = CSVRadio
Registered RT_Systems_CSV = RTCSVRadio
Registered Kenwood_ITM = ITMRadio
Registered Alinco_DR03T = DR03Radio
Registered Alinco_DR06T = DR06Radio
Registered Alinco_DR135T = DR135Radio
Registered Alinco_DR235T = DR235Radio
Registered Alinco_DR435T = DR435Radio
Registered Alinco_DJ596 = DJ596Radio
Registered Jetstream_JT220M = JT220MRadio
Registered Alinco_DJ175 = DJ175Radio
Registered Kenwood_TH-D7 = THD7Radio
Registered Kenwood_TH-D7G = THD7GRadio
Registered Kenwood_TM-D700 = TMD700Radio
Registered Kenwood_TM-V7 = TMV7Radio
Registered Kenwood_TM-G707 = TMG707Radio
Registered Kenwood_TH-G71 = THG71Radio
Registered Kenwood_TH-F6 = THF6ARadio
Registered Kenwood_TH-F7 = THF7ERadio
Registered Kenwood_TM-D710 = TMD710Radio
Registered Kenwood_TH-D72_live_mode = THD72Radio
Registered Kenwood_TM-V71 = TMV71Radio
Registered Kenwood_TH-K2 = THK2Radio
Registered Kenwood_TM-271 = TM271Radio
Registered Kenwood_TM-471 = TM471Radio
Registered Yaesu_VX-8_R = VX8Radio
Registered Yaesu_VX-8_DR = VX8DRadio
Registered Yaesu_VX-8_GE = VX8GERadio
Registered Icom_IC-T7H = ICT7HRadio
Registered Icom_IC-Q7A = ICQ7Radio
Registered Baofeng_UV-B5 = BaofengUVB5
Registered Generic_XML = XMLRadio
Registered Kenwood_HMK = HMKRadio
Registered Kenwood_TH-D72_clone_mode = THD72Radio
Registered Icom_IC-91_92AD = IC9xRadio
Registered Icom_IC-T70 = ICT70Radio
Registered Icom_IC-208H = IC208Radio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Baofeng_BF-888 = H777Radio
Registered Yaesu_FT-7800 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Registered TYT_TH-UV3R = TYTUV3RRadio
Alinco DJ175 Detect PASSED: All tests
Alinco DJ175 CopyAll PASSED: All tests
Alinco DJ175 Clone PASSED: All tests
Alinco DJ175 BruteForce PASSED: All tests
Alinco DJ175 Edges PASSED: All tests
Alinco DJ175 Banks SKIPPED: Banks not supported
Alinco DJ596 Detect PASSED: All tests
Alinco DJ596 CopyAll PASSED: All tests
Alinco DJ596 Clone PASSED: All tests
Alinco DJ596 BruteForce PASSED: All tests
Alinco DJ596 Edges PASSED: All tests
Alinco DJ596 Banks SKIPPED: Banks not supported
Alinco DR235T Detect PASSED: All tests
Alinco DR235T CopyAll PASSED: All tests
Alinco DR235T Clone PASSED: All tests
Alinco DR235T BruteForce PASSED: All tests
Alinco DR235T Edges PASSED: All tests
Alinco DR235T Banks SKIPPED: Banks not supported
Baofeng BF-888 Detect PASSED: All tests
Baofeng BF-888 CopyAll PASSED: All tests
Baofeng BF-888 Clone PASSED: All tests
Baofeng BF-888 BruteForce PASSED: All tests
Baofeng BF-888 Edges PASSED: All tests
Baofeng BF-888 Banks SKIPPED: Banks not supported
Baofeng F-11 Detect PASSED: All tests
Baofeng F-11 CopyAll PASSED: All tests
Baofeng F-11 Clone PASSED: All tests
Baofeng F-11 BruteForce PASSED: All tests
Baofeng F-11 Edges PASSED: All tests
Baofeng F-11 Banks SKIPPED: Banks not supported
Baofeng UV-3R Detect PASSED: All tests
Baofeng UV-3R CopyAll PASSED: All tests
Baofeng UV-3R Clone PASSED: All tests
Baofeng UV-3R BruteForce PASSED: All tests
Baofeng UV-3R Edges PASSED: All tests
Baofeng UV-3R Banks SKIPPED: Banks not supported
Baofeng UV-5R Detect PASSED: All tests
Baofeng UV-5R CopyAll PASSED: All tests
Baofeng UV-5R Clone PASSED: All tests
Baofeng UV-5R BruteForce PASSED: All tests
Baofeng UV-5R Edges PASSED: All tests
Baofeng UV-5R Banks SKIPPED: Banks not supported
Baofeng UV-B5 Detect PASSED: All tests
Baofeng UV-B5 CopyAll PASSED: All tests
Baofeng UV-B5 Clone PASSED: All tests
Baofeng UV-B5 BruteForce PASSED: All tests
Baofeng UV-B5 Edges PASSED: All tests
Baofeng UV-B5 Banks SKIPPED: Banks not supported
Icom IC-208H Detect PASSED: All tests
Icom IC-208H CopyAll PASSED: All tests
Icom IC-208H Clone PASSED: All tests
Icom IC-208H BruteForce PASSED: All tests
Icom IC-208H Edges PASSED: All tests
Icom IC-208H Banks PASSED: All tests
Icom IC-2100H Detect PASSED: All tests
Icom IC-2100H CopyAll PASSED: All tests
Icom IC-2100H Clone PASSED: All tests
Icom IC-2100H BruteForce PASSED: All tests
Icom IC-2100H Edges PASSED: All tests
Icom IC-2100H Banks SKIPPED: Banks not supported
Icom IC-2200H Detect PASSED: All tests
Icom IC-2200H CopyAll PASSED: All tests
Icom IC-2200H Clone PASSED: All tests
Icom IC-2200H BruteForce PASSED: All tests
Icom IC-2200H Edges PASSED: All tests
Icom IC-2200H Banks PASSED: All tests
Icom IC-2720H Detect PASSED: All tests
Icom IC-2720H CopyAll PASSED: All tests
Icom IC-2720H Clone PASSED: All tests
Icom IC-2720H BruteForce PASSED: All tests
Icom IC-2720H Edges PASSED: All tests
Icom IC-2720H Banks PASSED: All tests
Icom IC-2820H Detect PASSED: All tests
Icom IC-2820H CopyAll PASSED: All tests
Icom IC-2820H Clone PASSED: All tests
Icom IC-2820H BruteForce PASSED: All tests
Icom IC-2820H Edges PASSED: All tests
Icom IC-2820H Banks PASSED: All tests
Icom IC-Q7A Detect PASSED: All tests
Icom IC-Q7A CopyAll PASSED: All tests
Icom IC-Q7A Clone PASSED: All tests
Icom IC-Q7A BruteForce PASSED: All tests
Icom IC-Q7A Edges PASSED: All tests
Icom IC-Q7A Banks SKIPPED: Banks not supported
Icom IC-T70 Detect PASSED: All tests
Icom IC-T70 CopyAll PASSED: All tests
Icom IC-T70 Clone PASSED: All tests
Icom IC-T70 BruteForce PASSED: All tests
Icom IC-T70 Edges PASSED: All tests
Icom IC-T70 Banks PASSED: All tests
Icom IC-T7H Detect PASSED: All tests
Icom IC-T7H CopyAll PASSED: All tests
Icom IC-T7H Clone PASSED: All tests
Icom IC-T7H BruteForce PASSED: All tests
Icom IC-T7H Edges PASSED: All tests
Icom IC-T7H Banks SKIPPED: Banks not supported
Icom IC-T8A Detect PASSED: All tests
Icom IC-T8A CopyAll PASSED: All tests
Icom IC-T8A Clone PASSED: All tests
Icom IC-T8A BruteForce PASSED: All tests
Icom IC-T8A Edges PASSED: All tests
Icom IC-T8A Banks SKIPPED: Banks not supported
Icom IC-V82/U82 Detect PASSED: All tests
Icom IC-V82/U82 CopyAll PASSED: All tests
Icom IC-V82/U82 Clone PASSED: All tests
Icom IC-V82/U82 BruteForce PASSED: All tests
Icom IC-V82/U82 Edges PASSED: All tests
Icom IC-V82/U82 Banks PASSED: All tests
Icom IC-W32A VHF Detect PASSED: All tests
Icom IC-W32A VHF CopyAll PASSED: All tests
Icom IC-W32A VHF Clone PASSED: All tests
Icom IC-W32A VHF BruteForce PASSED: All tests
Icom IC-W32A VHF Edges PASSED: All tests
Icom IC-W32A VHF Banks SKIPPED: Banks not supported
Icom IC-W32A UHF Detect PASSED: All tests
Icom IC-W32A UHF CopyAll PASSED: All tests
Icom IC-W32A UHF Clone PASSED: All tests
Icom IC-W32A UHF BruteForce PASSED: All tests
Icom IC-W32A UHF Edges PASSED: All tests
Icom IC-W32A UHF Banks SKIPPED: Banks not supported
Icom ID-31A Detect PASSED: All tests
Icom ID-31A CopyAll PASSED: All tests
Icom ID-31A Clone PASSED: All tests
Icom ID-31A BruteForce PASSED: All tests
Icom ID-31A Edges PASSED: All tests
Icom ID-31A Banks PASSED: All tests
Icom ID-51A Detect PASSED: All tests
Icom ID-51A CopyAll PASSED: All tests
Icom ID-51A Clone PASSED: All tests
Icom ID-51A BruteForce PASSED: All tests
Icom ID-51A Edges PASSED: All tests
Icom ID-51A Banks PASSED: All tests
Icom ID-800H v2 Detect PASSED: All tests
Icom ID-800H v2 CopyAll PASSED: All tests
Icom ID-800H v2 Clone PASSED: All tests
Icom ID-800H v2 BruteForce PASSED: All tests
Icom ID-800H v2 Edges PASSED: All tests
Icom ID-800H v2 Banks PASSED: All tests
Icom ID-880H Detect PASSED: All tests
Icom ID-880H CopyAll PASSED: All tests
Icom ID-880H Clone PASSED: All tests
Icom ID-880H BruteForce PASSED: All tests
Icom ID-880H Edges PASSED: All tests
Icom ID-880H Banks PASSED: All tests
Jetstream JT220M Detect PASSED: All tests
Jetstream JT220M CopyAll PASSED: All tests
Jetstream JT220M Clone PASSED: All tests
Jetstream JT220M BruteForce PASSED: All tests
Jetstream JT220M Edges PASSED: All tests
Jetstream JT220M Banks SKIPPED: Banks not supported
Kenwood TH-D72 (clone Detect PASSED: All tests
Kenwood TH-D72 (clone CopyAll PASSED: All tests
Kenwood TH-D72 (clone Clone PASSED: All tests
Kenwood TH-D72 (clone BruteForce PASSED: All tests
Kenwood TH-D72 (clone Edges PASSED: All tests
Kenwood TH-D72 (clone Banks SKIPPED: Banks not supported
Kenwood TK-8102 Detect PASSED: All tests
Kenwood TK-8102 CopyAll PASSED: All tests
Kenwood TK-8102 Clone PASSED: All tests
Kenwood TK-8102 BruteForce PASSED: All tests
Kenwood TK-8102 Edges PASSED: All tests
Kenwood TK-8102 Banks SKIPPED: Banks not supported
Puxing PX-2R Detect PASSED: All tests
Puxing PX-2R CopyAll PASSED: All tests
Puxing PX-2R Clone PASSED: All tests
Puxing PX-2R BruteForce PASSED: All tests
Puxing PX-2R Edges PASSED: All tests
Puxing PX-2R Banks SKIPPED: Banks not supported
Puxing PX-777 Detect PASSED: All tests
Puxing PX-777 CopyAll PASSED: All tests
Puxing PX-777 Clone PASSED: All tests
Puxing PX-777 BruteForce PASSED: All tests
Puxing PX-777 Edges PASSED: All tests
Puxing PX-777 Banks SKIPPED: Banks not supported
TYT TH-UV3R Detect PASSED: All tests
TYT TH-UV3R CopyAll PASSED: All tests
TYT TH-UV3R Clone PASSED: All tests
TYT TH-UV3R BruteForce PASSED: All tests
TYT TH-UV3R Edges PASSED: All tests
TYT TH-UV3R Banks SKIPPED: Banks not supported
TYT TH-UVF1 Detect PASSED: All tests
TYT TH-UVF1 CopyAll PASSED: All tests
TYT TH-UVF1 Clone PASSED: All tests
TYT TH-UVF1 BruteForce PASSED: All tests
TYT TH-UVF1 Edges PASSED: All tests
TYT TH-UVF1 Banks SKIPPED: Banks not supported
Vertex VXA-700 Detect PASSED: All tests
Vertex VXA-700 CopyAll PASSED: All tests
Vertex VXA-700 Clone PASSED: All tests
Vertex VXA-700 BruteForce PASSED: All tests
Vertex VXA-700 Edges PASSED: All tests
Vertex VXA-700 Banks SKIPPED: Banks not supported
Wouxun KG-816 Detect PASSED: All tests
Wouxun KG-816 CopyAll PASSED: All tests
Wouxun KG-816 Clone PASSED: All tests
Wouxun KG-816 BruteForce PASSED: All tests
Wouxun KG-816 Edges PASSED: All tests
Wouxun KG-816 Banks SKIPPED: Banks not supported
Wouxun KG-818 Detect PASSED: All tests
Wouxun KG-818 CopyAll PASSED: All tests
Wouxun KG-818 Clone PASSED: All tests
Wouxun KG-818 BruteForce PASSED: All tests
Wouxun KG-818 Edges PASSED: All tests
Wouxun KG-818 Banks SKIPPED: Banks not supported
Wouxun KG-UV6 Detect PASSED: All tests
Wouxun KG-UV6 CopyAll PASSED: All tests
Wouxun KG-UV6 Clone PASSED: All tests
Wouxun KG-UV6 BruteForce PASSED: All tests
Wouxun KG-UV6 Edges PASSED: All tests
Wouxun KG-UV6 Banks SKIPPED: Banks not supported
Wouxun KG-UVD1P Detect PASSED: All tests
Wouxun KG-UVD1P CopyAll PASSED: All tests
Wouxun KG-UVD1P Clone PASSED: All tests
Wouxun KG-UVD1P BruteForce PASSED: All tests
Wouxun KG-UVD1P Edges PASSED: All tests
Wouxun KG-UVD1P Banks SKIPPED: Banks not supported
Yaesu FT-1802M Detect PASSED: All tests
Yaesu FT-1802M CopyAll PASSED: All tests
Yaesu FT-1802M Clone PASSED: All tests
Yaesu FT-1802M BruteForce PASSED: All tests
Yaesu FT-1802M Edges PASSED: All tests
Yaesu FT-1802M Banks SKIPPED: Banks not supported
Yaesu FT-2800M Detect PASSED: All tests
Yaesu FT-2800M CopyAll PASSED: All tests
Yaesu FT-2800M Clone PASSED: All tests
Yaesu FT-2800M BruteForce PASSED: All tests
Yaesu FT-2800M Edges PASSED: All tests
Yaesu FT-2800M Banks SKIPPED: Banks not supported
Yaesu FT-60 Detect PASSED: All tests
Yaesu FT-60 CopyAll PASSED: All tests
Yaesu FT-60 Clone PASSED: All tests
Yaesu FT-60 BruteForce PASSED: All tests
Yaesu FT-60 Edges PASSED: All tests
Yaesu FT-60 Banks SKIPPED: Banks not supported
Yaesu FT-7800 Detect PASSED: All tests
Yaesu FT-7800 CopyAll PASSED: All tests
Yaesu FT-7800 Clone PASSED: All tests
Yaesu FT-7800 BruteForce PASSED: All tests
Yaesu FT-7800 Edges PASSED: All tests
Yaesu FT-7800 Banks PASSED: All tests
Yaesu FT-817 Detect PASSED: All tests
Yaesu FT-817 CopyAll PASSED: All tests
Yaesu FT-817 Clone PASSED: All tests
Yaesu FT-817 BruteForce PASSED: All tests
Yaesu FT-817 Edges PASSED: All tests
Yaesu FT-817 Banks SKIPPED: Banks not supported
Yaesu FT-817ND Detect PASSED: All tests
Yaesu FT-817ND CopyAll PASSED: All tests
Yaesu FT-817ND Clone PASSED: All tests
Yaesu FT-817ND BruteForce PASSED: All tests
Yaesu FT-817ND Edges PASSED: All tests
Yaesu FT-817ND Banks SKIPPED: Banks not supported
Yaesu FT-817ND (US) Detect PASSED: All tests
Yaesu FT-817ND (US) CopyAll PASSED: All tests
Yaesu FT-817ND (US) Clone PASSED: All tests
Yaesu FT-817ND (US) BruteForce PASSED: All tests
Yaesu FT-817ND (US) Edges PASSED: All tests
Yaesu FT-817ND (US) Banks SKIPPED: Banks not supported
Yaesu FT-857/897 Detect PASSED: All tests
Yaesu FT-857/897 CopyAll PASSED: All tests
Yaesu FT-857/897 Clone PASSED: All tests
Yaesu FT-857/897 BruteForce PASSED: All tests
Yaesu FT-857/897 Edges PASSED: All tests
Yaesu FT-857/897 Banks SKIPPED: Banks not supported
Yaesu FT-857/897 (U Detect PASSED: All tests
Yaesu FT-857/897 (U CopyAll PASSED: All tests
Yaesu FT-857/897 (U Clone PASSED: All tests
Yaesu FT-857/897 (U BruteForce PASSED: All tests
Yaesu FT-857/897 (U Edges PASSED: All tests
Yaesu FT-857/897 (U Banks SKIPPED: Banks not supported
Yaesu FT-8800 Left Detect PASSED: All tests
Yaesu FT-8800 Left CopyAll PASSED: All tests
Yaesu FT-8800 Left Clone PASSED: All tests
Yaesu FT-8800 Left BruteForce PASSED: All tests
Yaesu FT-8800 Left Edges PASSED: All tests
Yaesu FT-8800 Left Banks PASSED: All tests
Yaesu FT-8800 Right Detect PASSED: All tests
Yaesu FT-8800 Right CopyAll PASSED: All tests
Yaesu FT-8800 Right Clone PASSED: All tests
Yaesu FT-8800 Right BruteForce PASSED: All tests
Yaesu FT-8800 Right Edges PASSED: All tests
Yaesu FT-8800 Right Banks PASSED: All tests
Yaesu FT-8900 Detect PASSED: All tests
Yaesu FT-8900 CopyAll PASSED: All tests
Yaesu FT-8900 Clone PASSED: All tests
Yaesu FT-8900 BruteForce PASSED: All tests
Yaesu FT-8900 Edges PASSED: All tests
Yaesu FT-8900 Banks SKIPPED: Banks not supported
Yaesu FTM-350 Left Detect PASSED: All tests
Yaesu FTM-350 Left CopyAll PASSED: All tests
Yaesu FTM-350 Left Clone PASSED: All tests
Yaesu FTM-350 Left BruteForce PASSED: All tests
Yaesu FTM-350 Left Edges PASSED: All tests
Yaesu FTM-350 Left Banks SKIPPED: Banks not supported
Yaesu FTM-350 Right Detect PASSED: All tests
Yaesu FTM-350 Right CopyAll PASSED: All tests
Yaesu FTM-350 Right Clone PASSED: All tests
Yaesu FTM-350 Right BruteForce PASSED: All tests
Yaesu FTM-350 Right Edges PASSED: All tests
Yaesu FTM-350 Right Banks SKIPPED: Banks not supported
Yaesu VX-3 Detect PASSED: All tests
Yaesu VX-3 CopyAll PASSED: All tests
Yaesu VX-3 Clone PASSED: All tests
Yaesu VX-3 BruteForce PASSED: All tests
Yaesu VX-3 Edges PASSED: All tests
Yaesu VX-3 Banks SKIPPED: Banks not supported
Yaesu VX-5 Detect PASSED: All tests
Yaesu VX-5 CopyAll PASSED: All tests
Yaesu VX-5 Clone PASSED: All tests
Yaesu VX-5 BruteForce PASSED: All tests
Yaesu VX-5 Edges PASSED: All tests
Yaesu VX-5 Banks PASSED: All tests
Yaesu VX-6 Detect PASSED: All tests
Yaesu VX-6 CopyAll PASSED: All tests
Yaesu VX-6 Clone PASSED: All tests
Yaesu VX-6 BruteForce PASSED: All tests
Yaesu VX-6 Edges PASSED: All tests
Yaesu VX-6 Banks SKIPPED: Banks not supported
Yaesu VX-7 Detect PASSED: All tests
Yaesu VX-7 CopyAll PASSED: All tests
Yaesu VX-7 Clone PASSED: All tests
Yaesu VX-7 BruteForce PASSED: All tests
Yaesu VX-7 Edges PASSED: All tests
Yaesu VX-7 Banks PASSED: All tests
Yaesu VX-8 R Detect PASSED: All tests
Yaesu VX-8 R CopyAll PASSED: All tests
Yaesu VX-8 R Clone PASSED: All tests
Yaesu VX-8 R BruteForce PASSED: All tests
Yaesu VX-8 R Edges PASSED: All tests
Yaesu VX-8 R Banks PASSED: All tests
----------------------------------------------------------------------
Results:
TOTAL : 330
FAILED : 0
SKIPPED: 39
PASSED : 291
CRASHED: 0
[workspace] $ /bin/sh -xe /tmp/hudson8518803227261204133.sh
+ nosetests -v tests/unit
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_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_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... 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 147 tests in 0.056s
OK
Email was triggered for: Success
Sending email for trigger: Success
1
0
Tested changes:
[Marco Filippi <iz3gme.marco(a)gmail.com>] [kg-uv6] Fix fm preset locations and numbers
Fix #1115
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 b5cced8e6c9da6d5ed82200cd62021fca74e926e
[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 b5cced8e6c9da6d5ed82200cd62021fca74e926e
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson5009670163674715348.sh
+ cd tests
+ ./run_tests
Registered Icom_IC-2820H = IC2820Radio
Registered AnyTone_5888UV = AnyTone5888UVRadio
Registered Icom_IC-2200H = IC2200Radio
Registered Yaesu_FT-2800M = FT2800Radio
Registered Yaesu_VX-3 = VX3Radio
Registered Icom_IC-2100H = IC2100Radio
Registered Yaesu_FTM-350 = FTM350Radio
Registered Icom_IC-91_92AD_ICF_File = IC9xICFRadio
Registered Icom_IC-V82_U82 = ICx8xRadio
Registered Yaesu_VX-6 = VX6Radio
Registered Yaesu_VX-5 = VX5Radio
Registered Yaesu_FT-60 = FT60Radio
Registered Yaesu_VX-7 = VX7Radio
Registered Baofeng_UV-5R = BaofengUV5R
Registered Baofeng_F-11 = BaofengF11Radio
Registered Baofeng_UV-82 = BaofengUV82Radio
Registered Yaesu_FT-1802M = FT1802Radio
Registered Kenwood_TK-7102 = KenwoodTK7102Radio
Registered Kenwood_TK-8102 = KenwoodTK8102Radio
Registered Kenwood_TK-7108 = KenwoodTK7108Radio
Registered Kenwood_TK-8108 = KenwoodTK8108Radio
Registered Icom_ID-31A = ID31Radio
Registered Icom_ID-51A = ID51Radio
Registered Icom_IC-2720H = IC2720Radio
Registered Icom_IC-T8A = ICT8ARadio
Registered Wouxun_KG-UVD1P = KGUVD1PRadio
Registered Wouxun_KG-UV6 = KGUV6DRadio
Registered Wouxun_KG-816 = KG816Radio
Registered Wouxun_KG-818 = KG818Radio
Registered TYT_TH-UVF1 = TYTTHUVF1Radio
Registered Yaesu_FT-90 = FT90Radio
Registered Generic_CSV = CSVRadio
Registered RT_Systems_CSV = RTCSVRadio
Registered Kenwood_ITM = ITMRadio
Registered Alinco_DR03T = DR03Radio
Registered Alinco_DR06T = DR06Radio
Registered Alinco_DR135T = DR135Radio
Registered Alinco_DR235T = DR235Radio
Registered Alinco_DR435T = DR435Radio
Registered Alinco_DJ596 = DJ596Radio
Registered Jetstream_JT220M = JT220MRadio
Registered Alinco_DJ175 = DJ175Radio
Registered Kenwood_TH-D7 = THD7Radio
Registered Kenwood_TH-D7G = THD7GRadio
Registered Kenwood_TM-D700 = TMD700Radio
Registered Kenwood_TM-V7 = TMV7Radio
Registered Kenwood_TM-G707 = TMG707Radio
Registered Kenwood_TH-G71 = THG71Radio
Registered Kenwood_TH-F6 = THF6ARadio
Registered Kenwood_TH-F7 = THF7ERadio
Registered Kenwood_TM-D710 = TMD710Radio
Registered Kenwood_TH-D72_live_mode = THD72Radio
Registered Kenwood_TM-V71 = TMV71Radio
Registered Kenwood_TH-K2 = THK2Radio
Registered Kenwood_TM-271 = TM271Radio
Registered Kenwood_TM-471 = TM471Radio
Registered Yaesu_VX-8_R = VX8Radio
Registered Yaesu_VX-8_DR = VX8DRadio
Registered Yaesu_VX-8_GE = VX8GERadio
Registered Icom_IC-T7H = ICT7HRadio
Registered Icom_IC-Q7A = ICQ7Radio
Registered Baofeng_UV-B5 = BaofengUVB5
Registered Generic_XML = XMLRadio
Registered Kenwood_HMK = HMKRadio
Registered Kenwood_TH-D72_clone_mode = THD72Radio
Registered Icom_IC-91_92AD = IC9xRadio
Registered Icom_IC-T70 = ICT70Radio
Registered Icom_IC-208H = IC208Radio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Yaesu_FT-7800 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Registered TYT_TH-UV3R = TYTUV3RRadio
Alinco DJ175 Detect PASSED: All tests
Alinco DJ175 CopyAll PASSED: All tests
Alinco DJ175 Clone PASSED: All tests
Alinco DJ175 BruteForce PASSED: All tests
Alinco DJ175 Edges PASSED: All tests
Alinco DJ175 Banks SKIPPED: Banks not supported
Alinco DJ596 Detect PASSED: All tests
Alinco DJ596 CopyAll PASSED: All tests
Alinco DJ596 Clone PASSED: All tests
Alinco DJ596 BruteForce PASSED: All tests
Alinco DJ596 Edges PASSED: All tests
Alinco DJ596 Banks SKIPPED: Banks not supported
Alinco DR235T Detect PASSED: All tests
Alinco DR235T CopyAll PASSED: All tests
Alinco DR235T Clone PASSED: All tests
Alinco DR235T BruteForce PASSED: All tests
Alinco DR235T Edges PASSED: All tests
Alinco DR235T Banks SKIPPED: Banks not supported
Baofeng F-11 Detect PASSED: All tests
Baofeng F-11 CopyAll PASSED: All tests
Baofeng F-11 Clone PASSED: All tests
Baofeng F-11 BruteForce PASSED: All tests
Baofeng F-11 Edges PASSED: All tests
Baofeng F-11 Banks SKIPPED: Banks not supported
Baofeng UV-3R Detect PASSED: All tests
Baofeng UV-3R CopyAll PASSED: All tests
Baofeng UV-3R Clone PASSED: All tests
Baofeng UV-3R BruteForce PASSED: All tests
Baofeng UV-3R Edges PASSED: All tests
Baofeng UV-3R Banks SKIPPED: Banks not supported
Baofeng UV-5R Detect PASSED: All tests
Baofeng UV-5R CopyAll PASSED: All tests
Baofeng UV-5R Clone PASSED: All tests
Baofeng UV-5R BruteForce PASSED: All tests
Baofeng UV-5R Edges PASSED: All tests
Baofeng UV-5R Banks SKIPPED: Banks not supported
Baofeng UV-B5 Detect PASSED: All tests
Baofeng UV-B5 CopyAll PASSED: All tests
Baofeng UV-B5 Clone PASSED: All tests
Baofeng UV-B5 BruteForce PASSED: All tests
Baofeng UV-B5 Edges PASSED: All tests
Baofeng UV-B5 Banks SKIPPED: Banks not supported
Icom IC-208H Detect PASSED: All tests
Icom IC-208H CopyAll PASSED: All tests
Icom IC-208H Clone PASSED: All tests
Icom IC-208H BruteForce PASSED: All tests
Icom IC-208H Edges PASSED: All tests
Icom IC-208H Banks PASSED: All tests
Icom IC-2100H Detect PASSED: All tests
Icom IC-2100H CopyAll PASSED: All tests
Icom IC-2100H Clone PASSED: All tests
Icom IC-2100H BruteForce PASSED: All tests
Icom IC-2100H Edges PASSED: All tests
Icom IC-2100H Banks SKIPPED: Banks not supported
Icom IC-2200H Detect PASSED: All tests
Icom IC-2200H CopyAll PASSED: All tests
Icom IC-2200H Clone PASSED: All tests
Icom IC-2200H BruteForce PASSED: All tests
Icom IC-2200H Edges PASSED: All tests
Icom IC-2200H Banks PASSED: All tests
Icom IC-2720H Detect PASSED: All tests
Icom IC-2720H CopyAll PASSED: All tests
Icom IC-2720H Clone PASSED: All tests
Icom IC-2720H BruteForce PASSED: All tests
Icom IC-2720H Edges PASSED: All tests
Icom IC-2720H Banks PASSED: All tests
Icom IC-2820H Detect PASSED: All tests
Icom IC-2820H CopyAll PASSED: All tests
Icom IC-2820H Clone PASSED: All tests
Icom IC-2820H BruteForce PASSED: All tests
Icom IC-2820H Edges PASSED: All tests
Icom IC-2820H Banks PASSED: All tests
Icom IC-Q7A Detect PASSED: All tests
Icom IC-Q7A CopyAll PASSED: All tests
Icom IC-Q7A Clone PASSED: All tests
Icom IC-Q7A BruteForce PASSED: All tests
Icom IC-Q7A Edges PASSED: All tests
Icom IC-Q7A Banks SKIPPED: Banks not supported
Icom IC-T70 Detect PASSED: All tests
Icom IC-T70 CopyAll PASSED: All tests
Icom IC-T70 Clone PASSED: All tests
Icom IC-T70 BruteForce PASSED: All tests
Icom IC-T70 Edges PASSED: All tests
Icom IC-T70 Banks PASSED: All tests
Icom IC-T7H Detect PASSED: All tests
Icom IC-T7H CopyAll PASSED: All tests
Icom IC-T7H Clone PASSED: All tests
Icom IC-T7H BruteForce PASSED: All tests
Icom IC-T7H Edges PASSED: All tests
Icom IC-T7H Banks SKIPPED: Banks not supported
Icom IC-T8A Detect PASSED: All tests
Icom IC-T8A CopyAll PASSED: All tests
Icom IC-T8A Clone PASSED: All tests
Icom IC-T8A BruteForce PASSED: All tests
Icom IC-T8A Edges PASSED: All tests
Icom IC-T8A Banks SKIPPED: Banks not supported
Icom IC-V82/U82 Detect PASSED: All tests
Icom IC-V82/U82 CopyAll PASSED: All tests
Icom IC-V82/U82 Clone PASSED: All tests
Icom IC-V82/U82 BruteForce PASSED: All tests
Icom IC-V82/U82 Edges PASSED: All tests
Icom IC-V82/U82 Banks PASSED: All tests
Icom IC-W32A VHF Detect PASSED: All tests
Icom IC-W32A VHF CopyAll PASSED: All tests
Icom IC-W32A VHF Clone PASSED: All tests
Icom IC-W32A VHF BruteForce PASSED: All tests
Icom IC-W32A VHF Edges PASSED: All tests
Icom IC-W32A VHF Banks SKIPPED: Banks not supported
Icom IC-W32A UHF Detect PASSED: All tests
Icom IC-W32A UHF CopyAll PASSED: All tests
Icom IC-W32A UHF Clone PASSED: All tests
Icom IC-W32A UHF BruteForce PASSED: All tests
Icom IC-W32A UHF Edges PASSED: All tests
Icom IC-W32A UHF Banks SKIPPED: Banks not supported
Icom ID-31A Detect PASSED: All tests
Icom ID-31A CopyAll PASSED: All tests
Icom ID-31A Clone PASSED: All tests
Icom ID-31A BruteForce PASSED: All tests
Icom ID-31A Edges PASSED: All tests
Icom ID-31A Banks PASSED: All tests
Icom ID-51A Detect PASSED: All tests
Icom ID-51A CopyAll PASSED: All tests
Icom ID-51A Clone PASSED: All tests
Icom ID-51A BruteForce PASSED: All tests
Icom ID-51A Edges PASSED: All tests
Icom ID-51A Banks PASSED: All tests
Icom ID-800H v2 Detect PASSED: All tests
Icom ID-800H v2 CopyAll PASSED: All tests
Icom ID-800H v2 Clone PASSED: All tests
Icom ID-800H v2 BruteForce PASSED: All tests
Icom ID-800H v2 Edges PASSED: All tests
Icom ID-800H v2 Banks PASSED: All tests
Icom ID-880H Detect PASSED: All tests
Icom ID-880H CopyAll PASSED: All tests
Icom ID-880H Clone PASSED: All tests
Icom ID-880H BruteForce PASSED: All tests
Icom ID-880H Edges PASSED: All tests
Icom ID-880H Banks PASSED: All tests
Jetstream JT220M Detect PASSED: All tests
Jetstream JT220M CopyAll PASSED: All tests
Jetstream JT220M Clone PASSED: All tests
Jetstream JT220M BruteForce PASSED: All tests
Jetstream JT220M Edges PASSED: All tests
Jetstream JT220M Banks SKIPPED: Banks not supported
Kenwood TH-D72 (clone Detect PASSED: All tests
Kenwood TH-D72 (clone CopyAll PASSED: All tests
Kenwood TH-D72 (clone Clone PASSED: All tests
Kenwood TH-D72 (clone BruteForce PASSED: All tests
Kenwood TH-D72 (clone Edges PASSED: All tests
Kenwood TH-D72 (clone Banks SKIPPED: Banks not supported
Kenwood TK-8102 Detect PASSED: All tests
Kenwood TK-8102 CopyAll PASSED: All tests
Kenwood TK-8102 Clone PASSED: All tests
Kenwood TK-8102 BruteForce PASSED: All tests
Kenwood TK-8102 Edges PASSED: All tests
Kenwood TK-8102 Banks SKIPPED: Banks not supported
Puxing PX-2R Detect PASSED: All tests
Puxing PX-2R CopyAll PASSED: All tests
Puxing PX-2R Clone PASSED: All tests
Puxing PX-2R BruteForce PASSED: All tests
Puxing PX-2R Edges PASSED: All tests
Puxing PX-2R Banks SKIPPED: Banks not supported
Puxing PX-777 Detect PASSED: All tests
Puxing PX-777 CopyAll PASSED: All tests
Puxing PX-777 Clone PASSED: All tests
Puxing PX-777 BruteForce PASSED: All tests
Puxing PX-777 Edges PASSED: All tests
Puxing PX-777 Banks SKIPPED: Banks not supported
TYT TH-UV3R Detect PASSED: All tests
TYT TH-UV3R CopyAll PASSED: All tests
TYT TH-UV3R Clone PASSED: All tests
TYT TH-UV3R BruteForce PASSED: All tests
TYT TH-UV3R Edges PASSED: All tests
TYT TH-UV3R Banks SKIPPED: Banks not supported
TYT TH-UVF1 Detect PASSED: All tests
TYT TH-UVF1 CopyAll PASSED: All tests
TYT TH-UVF1 Clone PASSED: All tests
TYT TH-UVF1 BruteForce PASSED: All tests
TYT TH-UVF1 Edges PASSED: All tests
TYT TH-UVF1 Banks SKIPPED: Banks not supported
Vertex VXA-700 Detect PASSED: All tests
Vertex VXA-700 CopyAll PASSED: All tests
Vertex VXA-700 Clone PASSED: All tests
Vertex VXA-700 BruteForce PASSED: All tests
Vertex VXA-700 Edges PASSED: All tests
Vertex VXA-700 Banks SKIPPED: Banks not supported
Wouxun KG-816 Detect PASSED: All tests
Wouxun KG-816 CopyAll PASSED: All tests
Wouxun KG-816 Clone PASSED: All tests
Wouxun KG-816 BruteForce PASSED: All tests
Wouxun KG-816 Edges PASSED: All tests
Wouxun KG-816 Banks SKIPPED: Banks not supported
Wouxun KG-818 Detect PASSED: All tests
Wouxun KG-818 CopyAll PASSED: All tests
Wouxun KG-818 Clone PASSED: All tests
Wouxun KG-818 BruteForce PASSED: All tests
Wouxun KG-818 Edges PASSED: All tests
Wouxun KG-818 Banks SKIPPED: Banks not supported
Wouxun KG-UV6 Detect PASSED: All tests
Wouxun KG-UV6 CopyAll PASSED: All tests
Wouxun KG-UV6 Clone PASSED: All tests
Wouxun KG-UV6 BruteForce PASSED: All tests
Wouxun KG-UV6 Edges PASSED: All tests
Wouxun KG-UV6 Banks SKIPPED: Banks not supported
Wouxun KG-UVD1P Detect PASSED: All tests
Wouxun KG-UVD1P CopyAll PASSED: All tests
Wouxun KG-UVD1P Clone PASSED: All tests
Wouxun KG-UVD1P BruteForce PASSED: All tests
Wouxun KG-UVD1P Edges PASSED: All tests
Wouxun KG-UVD1P Banks SKIPPED: Banks not supported
Yaesu FT-1802M Detect PASSED: All tests
Yaesu FT-1802M CopyAll PASSED: All tests
Yaesu FT-1802M Clone PASSED: All tests
Yaesu FT-1802M BruteForce PASSED: All tests
Yaesu FT-1802M Edges PASSED: All tests
Yaesu FT-1802M Banks SKIPPED: Banks not supported
Yaesu FT-2800M Detect PASSED: All tests
Yaesu FT-2800M CopyAll PASSED: All tests
Yaesu FT-2800M Clone PASSED: All tests
Yaesu FT-2800M BruteForce PASSED: All tests
Yaesu FT-2800M Edges PASSED: All tests
Yaesu FT-2800M Banks SKIPPED: Banks not supported
Yaesu FT-60 Detect PASSED: All tests
Yaesu FT-60 CopyAll PASSED: All tests
Yaesu FT-60 Clone PASSED: All tests
Yaesu FT-60 BruteForce PASSED: All tests
Yaesu FT-60 Edges PASSED: All tests
Yaesu FT-60 Banks SKIPPED: Banks not supported
Yaesu FT-7800 Detect PASSED: All tests
Yaesu FT-7800 CopyAll PASSED: All tests
Yaesu FT-7800 Clone PASSED: All tests
Yaesu FT-7800 BruteForce PASSED: All tests
Yaesu FT-7800 Edges PASSED: All tests
Yaesu FT-7800 Banks PASSED: All tests
Yaesu FT-817 Detect PASSED: All tests
Yaesu FT-817 CopyAll PASSED: All tests
Yaesu FT-817 Clone PASSED: All tests
Yaesu FT-817 BruteForce PASSED: All tests
Yaesu FT-817 Edges PASSED: All tests
Yaesu FT-817 Banks SKIPPED: Banks not supported
Yaesu FT-817ND Detect PASSED: All tests
Yaesu FT-817ND CopyAll PASSED: All tests
Yaesu FT-817ND Clone PASSED: All tests
Yaesu FT-817ND BruteForce PASSED: All tests
Yaesu FT-817ND Edges PASSED: All tests
Yaesu FT-817ND Banks SKIPPED: Banks not supported
Yaesu FT-817ND (US) Detect PASSED: All tests
Yaesu FT-817ND (US) CopyAll PASSED: All tests
Yaesu FT-817ND (US) Clone PASSED: All tests
Yaesu FT-817ND (US) BruteForce PASSED: All tests
Yaesu FT-817ND (US) Edges PASSED: All tests
Yaesu FT-817ND (US) Banks SKIPPED: Banks not supported
Yaesu FT-857/897 Detect PASSED: All tests
Yaesu FT-857/897 CopyAll PASSED: All tests
Yaesu FT-857/897 Clone PASSED: All tests
Yaesu FT-857/897 BruteForce PASSED: All tests
Yaesu FT-857/897 Edges PASSED: All tests
Yaesu FT-857/897 Banks SKIPPED: Banks not supported
Yaesu FT-857/897 (U Detect PASSED: All tests
Yaesu FT-857/897 (U CopyAll PASSED: All tests
Yaesu FT-857/897 (U Clone PASSED: All tests
Yaesu FT-857/897 (U BruteForce PASSED: All tests
Yaesu FT-857/897 (U Edges PASSED: All tests
Yaesu FT-857/897 (U Banks SKIPPED: Banks not supported
Yaesu FT-8800 Left Detect PASSED: All tests
Yaesu FT-8800 Left CopyAll PASSED: All tests
Yaesu FT-8800 Left Clone PASSED: All tests
Yaesu FT-8800 Left BruteForce PASSED: All tests
Yaesu FT-8800 Left Edges PASSED: All tests
Yaesu FT-8800 Left Banks PASSED: All tests
Yaesu FT-8800 Right Detect PASSED: All tests
Yaesu FT-8800 Right CopyAll PASSED: All tests
Yaesu FT-8800 Right Clone PASSED: All tests
Yaesu FT-8800 Right BruteForce PASSED: All tests
Yaesu FT-8800 Right Edges PASSED: All tests
Yaesu FT-8800 Right Banks PASSED: All tests
Yaesu FT-8900 Detect PASSED: All tests
Yaesu FT-8900 CopyAll PASSED: All tests
Yaesu FT-8900 Clone PASSED: All tests
Yaesu FT-8900 BruteForce PASSED: All tests
Yaesu FT-8900 Edges PASSED: All tests
Yaesu FT-8900 Banks SKIPPED: Banks not supported
Yaesu FTM-350 Left Detect PASSED: All tests
Yaesu FTM-350 Left CopyAll PASSED: All tests
Yaesu FTM-350 Left Clone PASSED: All tests
Yaesu FTM-350 Left BruteForce PASSED: All tests
Yaesu FTM-350 Left Edges PASSED: All tests
Yaesu FTM-350 Left Banks SKIPPED: Banks not supported
Yaesu FTM-350 Right Detect PASSED: All tests
Yaesu FTM-350 Right CopyAll PASSED: All tests
Yaesu FTM-350 Right Clone PASSED: All tests
Yaesu FTM-350 Right BruteForce PASSED: All tests
Yaesu FTM-350 Right Edges PASSED: All tests
Yaesu FTM-350 Right Banks SKIPPED: Banks not supported
Yaesu VX-3 Detect PASSED: All tests
Yaesu VX-3 CopyAll PASSED: All tests
Yaesu VX-3 Clone PASSED: All tests
Yaesu VX-3 BruteForce PASSED: All tests
Yaesu VX-3 Edges PASSED: All tests
Yaesu VX-3 Banks SKIPPED: Banks not supported
Yaesu VX-5 Detect PASSED: All tests
Yaesu VX-5 CopyAll PASSED: All tests
Yaesu VX-5 Clone PASSED: All tests
Yaesu VX-5 BruteForce PASSED: All tests
Yaesu VX-5 Edges PASSED: All tests
Yaesu VX-5 Banks PASSED: All tests
Yaesu VX-6 Detect PASSED: All tests
Yaesu VX-6 CopyAll PASSED: All tests
Yaesu VX-6 Clone PASSED: All tests
Yaesu VX-6 BruteForce PASSED: All tests
Yaesu VX-6 Edges PASSED: All tests
Yaesu VX-6 Banks SKIPPED: Banks not supported
Yaesu VX-7 Detect PASSED: All tests
Yaesu VX-7 CopyAll PASSED: All tests
Yaesu VX-7 Clone PASSED: All tests
Yaesu VX-7 BruteForce PASSED: All tests
Yaesu VX-7 Edges PASSED: All tests
Yaesu VX-7 Banks PASSED: All tests
Yaesu VX-8 R Detect PASSED: All tests
Yaesu VX-8 R CopyAll PASSED: All tests
Yaesu VX-8 R Clone PASSED: All tests
Yaesu VX-8 R BruteForce PASSED: All tests
Yaesu VX-8 R Edges PASSED: All tests
Yaesu VX-8 R Banks PASSED: All tests
----------------------------------------------------------------------
Results:
TOTAL : 324
FAILED : 0
SKIPPED: 38
PASSED : 286
CRASHED: 0
[workspace] $ /bin/sh -xe /tmp/hudson4814990430146365165.sh
+ nosetests -v tests/unit
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_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_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... 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 147 tests in 0.059s
OK
Email was triggered for: Success
Sending email for trigger: Success
1
0
[chirp_devel] [PATCH] Fix radio browser exposing children in tree with nothing to see
by Dan Smith 08 Sep '13
by Dan Smith 08 Sep '13
08 Sep '13
# HG changeset patch
# User Dan Smith <dsmith(a)danplanet.com>
# Date 1378685894 25200
# Node ID 47fbab94e7c1121fd3efe3c0baa344768ea722d2
# Parent 9a3c970aec76fc46ab49750dd1df3711aafb87ee
Fix radio browser exposing children in tree with nothing to see
Right now, the radio browser will expose the elements of an array
as children in the tree, but clicking on them yields nothing as
arrays are exposed at the top level. This avoids adding those
elements to the tree to avoid confusion.
(need a bug here)
diff -r 9a3c970aec76 -r 47fbab94e7c1 chirpui/radiobrowser.py
--- a/chirpui/radiobrowser.py Sun Sep 08 17:18:08 2013 -0700
+++ b/chirpui/radiobrowser.py Sun Sep 08 17:18:14 2013 -0700
@@ -234,7 +234,8 @@
elif isinstance(obj, bitwise.arrayDataElement):
i = 0
for item in obj:
- self._fill("%s[%i]" % (name, i), item, iter)
+ if isinstance(obj[0], bitwise.structDataElement):
+ self._fill("%s[%i]" % (name, i), item, iter)
i += 1
def _tree_click(self, view, event):
1
0
08 Sep '13
# HG changeset patch
# User Dan Smith <dsmith(a)danplanet.com>
# Date 1378685888 25200
# Node ID 9a3c970aec76fc46ab49750dd1df3711aafb87ee
# Parent ec2693debe95d81aa0d01108236e04e380e8208b
[bf888] Standardize cloning routines and change name
This patch makes the BF888/H777 driver pass the functional tests. Most
of the change is around making the clone routines return conventional
error messages and the proper exceptions for errors. Also, to run the
functional tests, we have to have a predictable VENDOR and MODEL for
the driver. The chinese name is cool (and correct) but it's going to
get in the way of testing on some systems. For now, call this driver
the Baofeng BF-888. Later, if we can figure out how to differentiate
files for them, we can have a subclass for the H777.
Related to #701
diff -r ec2693debe95 -r 9a3c970aec76 chirp/h777.py
--- a/chirp/h777.py Sun Sep 08 17:18:02 2013 -0700
+++ b/chirp/h777.py Sun Sep 08 17:18:08 2013 -0700
@@ -17,11 +17,10 @@
import time
import os
import struct
-import sys
import unittest
from chirp import chirp_common, directory, memmap
-from chirp import bitwise
+from chirp import bitwise, errors, util
from chirp.settings import RadioSetting, RadioSettingGroup, \
RadioSettingValueInteger, RadioSettingValueList, \
RadioSettingValueBoolean
@@ -89,34 +88,47 @@
"voice" : VOICE_LIST,
}
-def debug_print_hex(hexstr):
- for a in range(0, len(hexstr)):
- sys.stdout.write("%02x " % (ord(hexstr[a])))
-
def _h777_enter_programming_mode(radio):
serial = radio.pipe
- serial.write("\x02")
- time.sleep(0.1)
- serial.write("PROGRAM")
- if serial.read(1) != CMD_ACK:
- raise Exception("Didn't get a response from the radio. "
- "Is it turned on and plugged in firmly?")
+ try:
+ serial.write("\x02")
+ time.sleep(0.1)
+ serial.write("PROGRAM")
+ ack = serial.read(1)
+ except:
+ raise errors.RadioError("Error communicating with radio")
- serial.write("\x02")
- ident = serial.read(8)
+ if not ack:
+ raise errors.RadioError("No response from radio")
+ elif ack != CMD_ACK:
+ raise errors.RadioError("Radio refused to enter programming mode")
+
+ try:
+ serial.write("\x02")
+ ident = serial.read(8)
+ except:
+ raise errors.RadioError("Error communicating with radio")
+
if not ident.startswith("P3107"):
- raise Exception("Invalid response. "
- "Is this really the correct model of radio?")
+ print util.hexprint(ident)
+ raise errors.RadioError("Radio returned unknown identification string")
- serial.write(CMD_ACK)
- if serial.read(1) != CMD_ACK:
- raise Exception("Invalid response. "
- "Is this really the correct model of radio?")
+ try:
+ serial.write(CMD_ACK)
+ ack = serial.read(1)
+ except:
+ raise errors.RadioError("Error communicating with radio")
+
+ if ack != CMD_ACK:
+ raise errors.RadioError("Radio refused to enter programming mode")
def _h777_exit_programming_mode(radio):
serial = radio.pipe
- serial.write("E")
+ try:
+ serial.write("E")
+ except:
+ raise errors.RadioError("Radio refused to exit programming mode")
def _h777_read_block(radio, block_addr, block_size):
serial = radio.pipe
@@ -126,15 +138,20 @@
if DEBUG:
print("Reading block %04x..." % (block_addr))
- serial.write(cmd)
- response = serial.read(4 + BLOCK_SIZE)
- if response[:4] != expectedresponse:
- raise Exception("Error reading block %04x." % (block_addr))
+ try:
+ serial.write(cmd)
+ response = serial.read(4 + BLOCK_SIZE)
+ if response[:4] != expectedresponse:
+ raise Exception("Error reading block %04x." % (block_addr))
- block_data = response[4:]
+ block_data = response[4:]
- serial.write(CMD_ACK)
- if serial.read(1) != CMD_ACK:
+ serial.write(CMD_ACK)
+ ack = serial.read(1)
+ except:
+ raise errors.RadioError("Failed to read block at %04x" % block_addr)
+
+ if ack != CMD_ACK:
raise Exception("No ACK reading block %04x." % (block_addr))
return block_data
@@ -147,13 +164,15 @@
if DEBUG:
print("Writing Data:")
- debug_print_hex(cmd + data)
- print("")
+ print util.hexprint(cmd + data)
- serial.write(cmd + data)
-
- if serial.read(1) != CMD_ACK:
- raise Exception("No ACK")
+ try:
+ serial.write(cmd + data)
+ if serial.read(1) != CMD_ACK:
+ raise Exception("No ACK")
+ except:
+ raise errors.RadioError("Failed to send block "
+ "to radio at %04x" % block_addr)
def do_download(radio):
print "download"
@@ -175,9 +194,8 @@
data += block
if DEBUG:
- sys.stdout.write("%04x: " % (addr))
- debug_print_hex(block)
- print("")
+ print "Address: %04x" % addr
+ print util.hexprint(block)
_h777_exit_programming_mode(radio)
@@ -210,8 +228,10 @@
@maybe_register
class H777Radio(chirp_common.CloneModeRadio):
"""HST H-777"""
- VENDOR = "Heng Shun Tong (恒顺通)"
- MODEL = "H-777"
+ # VENDOR = "Heng Shun Tong (恒顺通)"
+ # MODEL = "H-777"
+ VENDOR = "Baofeng"
+ MODEL = "BF-888"
BAUD_RATE = 9600
# This code currently requires that ranges start at 0x0000
1
0
[chirp_devel] [PATCH] [bf888] Finish BCL and BS flags and fix other inverted ones
by Dan Smith 08 Sep '13
by Dan Smith 08 Sep '13
08 Sep '13
# HG changeset patch
# User Dan Smith <dsmith(a)danplanet.com>
# Date 1378685882 25200
# Node ID ec2693debe95d81aa0d01108236e04e380e8208b
# Parent c12b1bd79697023039d0fb6af8322d1be02b742b
[bf888] Finish BCL and BS flags and fix other inverted ones
This adds Busy Channel Lockout and Beat Shift per-memory settings.
The power, mode, and skip flags were also inverted, so this fixes that
as well as punts on further decoding memory data if we determine
that it is empty.
Related to #701
diff -r c12b1bd79697 -r ec2693debe95 chirp/h777.py
--- a/chirp/h777.py Sun Sep 08 17:17:56 2013 -0700
+++ b/chirp/h777.py Sun Sep 08 17:18:02 2013 -0700
@@ -38,9 +38,9 @@
u8 unknown3:1,
unknown2:1,
unknown1:1,
- scanadd:1,
- lowpower:1,
- wide:1,
+ skip:1,
+ highpower:1,
+ narrow:1,
beatshift:1,
bcl:1;
u8 unknown4[3];
@@ -76,8 +76,8 @@
range(0x0380, 0x03e0, 8)]
# TODO: Is it 1 watt?
-H777_POWER_LEVELS = [chirp_common.PowerLevel("High", watts=5.00),
- chirp_common.PowerLevel("Low", watts=1.00)]
+H777_POWER_LEVELS = [chirp_common.PowerLevel("Low", watts=1.00),
+ chirp_common.PowerLevel("High", watts=5.00)]
VOICE_LIST = ["English", "Chinese"]
SIDEKEYFUNCTION_LIST = ["Off", "Monitor", "Transmit Power", "Alarm"]
TIMEOUTTIMER_LIST = ["Off", "30 seconds", "60 seconds", "90 seconds",
@@ -245,8 +245,7 @@
rf.has_name = False
rf.memory_bounds = (1, 16)
rf.valid_bands = [(400000000, 470000000)]
- rf.valid_power_levels = [chirp_common.PowerLevel("High", watts=5.00),
- chirp_common.PowerLevel("Low", watts=1.0)]
+ rf.valid_power_levels = H777_POWER_LEVELS
return rf
@@ -298,12 +297,12 @@
# We'll consider any blank (i.e. 0MHz frequency) to be empty
if mem.freq == 0:
mem.empty = True
+ return mem
if _mem.rxfreq.get_raw() == "\xFF\xFF\xFF\xFF":
mem.freq = 0
mem.empty = True
-
- # TODO: Support empty TX frequency
+ return mem
if int(_mem.rxfreq) == int(_mem.txfreq):
mem.duplex = ""
@@ -312,18 +311,22 @@
mem.duplex = int(_mem.rxfreq) > int(_mem.txfreq) and "-" or "+"
mem.offset = abs(int(_mem.rxfreq) - int(_mem.txfreq)) * 10
- mem.mode = not _mem.wide and "FM" or "NFM"
- mem.power = H777_POWER_LEVELS[not _mem.lowpower]
- # TODO: Invert lowpower flag?
+ mem.mode = not _mem.narrow and "FM" or "NFM"
+ mem.power = H777_POWER_LEVELS[_mem.highpower]
- if not _mem.scanadd:
- mem.skip = "S"
+ mem.skip = _mem.skip and "S" or ""
txtone = self._decode_tone(_mem.txtone)
rxtone = self._decode_tone(_mem.rxtone)
chirp_common.split_tone_decode(mem, txtone, rxtone)
- # TODO: Set beatshift and bcl.
+ mem.extra = RadioSettingGroup("Extra", "extra")
+ rs = RadioSetting("bcl", "Busy Channel Lockout",
+ RadioSettingValueBoolean(not _mem.bcl))
+ mem.extra.append(rs)
+ rs = RadioSetting("beatshift", "Beat Shift",
+ RadioSettingValueBoolean(not _mem.beatshift))
+ mem.extra.append(rs)
return mem
@@ -349,16 +352,17 @@
else:
_mem.txfreq = mem.freq / 10
- # TODO: Support empty TX frequency
-
txtone, rxtone = chirp_common.split_tone_encode(mem)
self._encode_tone(_mem.txtone, *txtone)
self._encode_tone(_mem.rxtone, *rxtone)
- _mem.wide = mem.mode != 0
- _mem.lowpower = mem.power == 1
- _mem.scanadd = mem.skip != "S"
- # TODO: Set beatshift and bcl.
+ _mem.narrow = 'N' in mem.mode
+ _mem.highpower = mem.power == H777_POWER_LEVELS[1]
+ _mem.skip = mem.skip == "S"
+
+ for setting in mem.extra:
+ # NOTE: Only two settings right now, both are inverted
+ setattr(_mem, setting.get_name(), not setting.value)
def get_settings(self):
_settings = self._memobj.settings
1
0
# HG changeset patch
# User Dan Smith <dsmith(a)danplanet.com>
# Date 1378685876 25200
# Node ID c12b1bd79697023039d0fb6af8322d1be02b742b
# Parent ea130e31f030c2db47808b6a327900074e27c3f3
[bf888] Finish tone encoding and decoding
This finishes Tone and DTCS encode/decode, as well as adds support
for all the Cross variations.
Related to #701
diff -r ea130e31f030 -r c12b1bd79697 chirp/h777.py
--- a/chirp/h777.py Sun Sep 08 10:50:00 2013 -0700
+++ b/chirp/h777.py Sun Sep 08 17:17:56 2013 -0700
@@ -18,6 +18,7 @@
import os
import struct
import sys
+import unittest
from chirp import chirp_common, directory, memmap
from chirp import bitwise
@@ -235,15 +236,10 @@
rf.has_settings = True
rf.valid_modes = ["NFM", "FM"] # 12.5 KHz, 25 kHz.
rf.valid_skips = ["", "S"]
- # TODO: Support CTCSS and DCS.
- # rf.valid_tmodes = ["", "TSQL", "DTCS"]
- # rf.has_ctone = True
- # rf.has_cross = True
- # rf.has_rx_dtcs = True
- rf.valid_tmodes = [""]
- rf.has_ctone = False
- rf.has_cross = False
- rf.has_rx_dtcs = False
+ rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS", "Cross"]
+ rf.has_rx_dtcs = True
+ rf.has_ctone = True
+ rf.has_cross = True
rf.has_tuning_step = False
rf.has_bank = False
rf.has_name = False
@@ -267,6 +263,30 @@
def get_raw_memory(self, number):
return repr(self._memobj.memory[number - 1])
+ def _decode_tone(self, val):
+ val = int(val)
+ if val == 16665:
+ return '', None, None
+ elif val >= 12000:
+ return 'DTCS', val - 12000, 'R'
+ elif val >= 8000:
+ return 'DTCS', val - 8000, 'N'
+ else:
+ return 'Tone', val / 10.0, None
+
+ def _encode_tone(self, memval, mode, value, pol):
+ if mode == '':
+ memval[0].set_raw(0xFF)
+ memval[1].set_raw(0xFF)
+ elif mode == 'Tone':
+ memval.set_value(int(value * 10))
+ elif mode == 'DTCS':
+ flag = 0x80 if pol == 'N' else 0xC0
+ memval.set_value(value)
+ memval[1].set_bits(flag)
+ else:
+ raise Exception("Internal error: invalid mode `%s'" % mode)
+
def get_memory(self, number):
_mem = self._memobj.memory[number - 1]
@@ -299,26 +319,9 @@
if not _mem.scanadd:
mem.skip = "S"
- # Decode CTCSS/DCS, if used.
-
- if _mem.rxtone.get_raw() == "\xFF\xFF":
- mem.tmode = ""
- else:
- if ord(_mem.rxtone[1].get_raw()) & 0x80:
- # TODO: Make DCS work.
- raise Exception("Sorry, DCS isn't supported yet.")
- mem.tmode = "DTCS"
- mem.rx_dtcs = int(_mem.rxtone.get_raw() & 0x0FFF)
- mem.dtcs = int(_mem.txtone.get_raw() & 0x0FFF)
-
- if ord(_mem.rxtone[1].get_raw()) & 0x40:
- mem.dtsc_polarity = "R"
- else:
- print("DCS N")
- else:
- mem.tmode = "TSQL"
- mem.rtone = int(_mem.rxtone) / 10.0
- mem.ctone = int(_mem.txtone) / 10.0
+ txtone = self._decode_tone(_mem.txtone)
+ rxtone = self._decode_tone(_mem.rxtone)
+ chirp_common.split_tone_decode(mem, txtone, rxtone)
# TODO: Set beatshift and bcl.
@@ -348,6 +351,10 @@
# TODO: Support empty TX frequency
+ txtone, rxtone = chirp_common.split_tone_encode(mem)
+ self._encode_tone(_mem.txtone, *txtone)
+ self._encode_tone(_mem.rxtone, *rxtone)
+
_mem.wide = mem.mode != 0
_mem.lowpower = mem.power == 1
_mem.scanadd = mem.skip != "S"
@@ -432,3 +439,49 @@
basic.append(rs)
return basic
+
+class H777TestCase(unittest.TestCase):
+ def setUp(self):
+ self.driver = H777Radio(None)
+ self.testdata = bitwise.parse("lbcd foo[2];",
+ memmap.MemoryMap("\x00\x00"))
+
+ def test_decode_tone_dtcs_normal(self):
+ mode, value, pol = self.driver._decode_tone(8023)
+ self.assertEqual('DTCS', mode)
+ self.assertEqual(23, value)
+ self.assertEqual('N', pol)
+
+ def test_decode_tone_dtcs_rev(self):
+ mode, value, pol = self.driver._decode_tone(12023)
+ self.assertEqual('DTCS', mode)
+ self.assertEqual(23, value)
+ self.assertEqual('R', pol)
+
+ def test_decode_tone_tone(self):
+ mode, value, pol = self.driver._decode_tone(885)
+ self.assertEqual('Tone', mode)
+ self.assertEqual(88.5, value)
+ self.assertEqual(None, pol)
+
+ def test_decode_tone_none(self):
+ mode, value, pol = self.driver._decode_tone(16665)
+ self.assertEqual('', mode)
+ self.assertEqual(None, value)
+ self.assertEqual(None, pol)
+
+ def test_encode_tone_dtcs_normal(self):
+ self.driver._encode_tone(self.testdata.foo, 'DTCS', 23, 'N')
+ self.assertEqual(8023, int(self.testdata.foo))
+
+ def test_encode_tone_dtcs_rev(self):
+ self.driver._encode_tone(self.testdata.foo, 'DTCS', 23, 'R')
+ self.assertEqual(12023, int(self.testdata.foo))
+
+ def test_encode_tone(self):
+ self.driver._encode_tone(self.testdata.foo, 'Tone', 88.5, 'N')
+ self.assertEqual(885, int(self.testdata.foo))
+
+ def test_encode_tone_none(self):
+ self.driver._encode_tone(self.testdata.foo, '', 67.0, 'N')
+ self.assertEqual(16665, int(self.testdata.foo))
1
0