Developers
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 1 participants
- 2965 discussions
[chirp_devel] [PATCH] [UV-50X3] Add Support for BTech UV-50X3 - Work Mode Settings
by Jim Unroe 12 Jul '16
by Jim Unroe 12 Jul '16
12 Jul '16
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1468371941 14400
# Node ID 8642a6190d8b790bbd38db174d8c5a69557fd4eb
# Parent f1406051cec8d0aab0e90414e2a233a7cd57da0e
[UV-50X3] Add Support for BTech UV-50X3 - Work Mode Settings
This patch adds the UV-50X3 work mode settings.
related to #3815
diff -r f1406051cec8 -r 8642a6190d8b chirp/drivers/vgc.py
--- a/chirp/drivers/vgc.py Tue Jul 12 20:45:00 2016 -0400
+++ b/chirp/drivers/vgc.py Tue Jul 12 21:05:41 2016 -0400
@@ -313,6 +313,16 @@
# Other settings lists
LIST_CPUCLK = ["Clock frequency 1", "Clock frequency 2"]
+# Work mode settings lists
+LIST_WORK = ["VFO", "Memory System"]
+LIST_WBANDB = ["Air", "H-V", "GR1-V", "GR1-U", "H-U", "GR2"]
+LIST_WBANDA = ["Line-in", "AM", "FM"] + LIST_WBANDB
+LIST_SQL = ["Open"] + ["%s" % x for x in range(1, 10)]
+LIST_STEP = ["Auto", "2.50 KHz", "5.00 KHz", "6.25 KHz", "8.33 KHz",
+ "9.00 KHz", "10.00 KHz", "12.50 KHz", "15.00 KHz", "20.00 KHz",
+ "25.00 KHz", "50.00 KHz", "100.00 KHz", "200.00 KHz"]
+LIST_SMODE = ["F-1", "F-2"]
+
# valid chars on the LCD
VALID_CHARS = chirp_common.CHARSET_ALPHANUMERIC + \
"`{|}!\"#$%&'()*+,-./:;<=>?@[]^_"
@@ -870,7 +880,8 @@
_mem = self._memobj
basic = RadioSettingGroup("basic", "Basic Settings")
other = RadioSettingGroup("other", "Other Settings")
- top = RadioSettings(basic, other)
+ work = RadioSettingGroup("work", "Work Mode Settings")
+ top = RadioSettings(basic, other, work)
# Basic
@@ -1084,6 +1095,83 @@
_mem.embedded_msg.line32)))
other.append(line32)
+ # Work
+
+ workmoda = RadioSetting("settings.workmoda", "Work mode A",
+ RadioSettingValueList(LIST_WORK,LIST_WORK[
+ _mem.settings.workmoda]))
+ work.append(workmoda)
+
+ workmodb = RadioSetting("settings.workmodb", "Work mode B",
+ RadioSettingValueList(LIST_WORK,LIST_WORK[
+ _mem.settings.workmodb]))
+ work.append(workmodb)
+
+ wbanda = RadioSetting("settings.wbanda", "Work band A",
+ RadioSettingValueList(LIST_WBANDA, LIST_WBANDA[
+ (_mem.settings.wbanda) - 1]))
+ work.append(wbanda)
+
+ wbandb = RadioSetting("settings.wbandb", "Work band B",
+ RadioSettingValueList(LIST_WBANDB, LIST_WBANDB[
+ (_mem.settings.wbandb) - 4]))
+ work.append(wbandb)
+
+ sqla = RadioSetting("settings.sqla", "Squelch A",
+ RadioSettingValueList(LIST_SQL, LIST_SQL[
+ _mem.settings.sqla]))
+ work.append(sqla)
+
+ sqlb = RadioSetting("settings.sqlb", "Squelch B",
+ RadioSettingValueList(LIST_SQL, LIST_SQL[
+ _mem.settings.sqlb]))
+ work.append(sqlb)
+
+ stepa = RadioSetting("settings.stepa", "Auto step A",
+ RadioSettingValueList(LIST_STEP,LIST_STEP[
+ _mem.settings.stepa]))
+ work.append(stepa)
+
+ stepb = RadioSetting("settings.stepb", "Auto step B",
+ RadioSettingValueList(LIST_STEP,LIST_STEP[
+ _mem.settings.stepb]))
+ work.append(stepb)
+
+ mrcha = RadioSetting("settings.mrcha", "Current channel A",
+ RadioSettingValueInteger(0, 499,
+ _mem.settings.mrcha))
+ work.append(mrcha)
+
+ mrchb = RadioSetting("settings.mrchb", "Current channel B",
+ RadioSettingValueInteger(0, 499,
+ _mem.settings.mrchb))
+ work.append(mrchb)
+
+ val = _mem.settings.offseta / 100.00
+ offseta = RadioSetting("settings.offseta", "Offset A (0-37.95)",
+ RadioSettingValueFloat(0, 38.00, val, 0.05, 2))
+ work.append(offseta)
+
+ val = _mem.settings.offsetb / 100.00
+ offsetb = RadioSetting("settings.offsetb", "Offset B (0-79.95)",
+ RadioSettingValueFloat(0, 80.00, val, 0.05, 2))
+ work.append(offsetb)
+
+ wpricha = RadioSetting("settings.wpricha", "Priority channel A",
+ RadioSettingValueInteger(0, 499,
+ _mem.settings.wpricha))
+ work.append(wpricha)
+
+ wprichb = RadioSetting("settings.wprichb", "Priority channel B",
+ RadioSettingValueInteger(0, 499,
+ _mem.settings.wprichb))
+ work.append(wprichb)
+
+ smode = RadioSetting("settings.smode", "Smart function mode",
+ RadioSettingValueList(LIST_SMODE,LIST_SMODE[
+ _mem.settings.smode]))
+ work.append(smode)
+
return top
def set_settings(self, settings):
@@ -1120,9 +1208,17 @@
elif setting == "line32":
setattr(obj, setting, str(element.value).rstrip(
" ").ljust(32, "\xFF"))
+ elif setting == "wbanda":
+ setattr(obj, setting, int(element.value) + 1)
+ elif setting == "wbandb":
+ setattr(obj, setting, int(element.value) + 4)
elif element.value.get_mutable():
LOG.debug("Setting %s = %s" % (setting, element.value))
setattr(obj, setting, element.value)
+ elif setting in ["offseta", "offsetb"]:
+ val = element.value
+ value = int(val.get_value() * 100)
+ setattr(obj, setting, value)
except Exception, e:
LOG.debug(element.get_name())
raise
1
0
Tested changes:
[Jim Unroe <rock.unroe(a)gmail.com>] [UV-50X3] Add Support for BTech UV-50X3 - Other Settings
This patch adds the UV-50X3 miscellaneous settings.
related to #3815
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 7ae3d7d373ccfc3c957490387d96ac6f96c4cfae
[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 7ae3d7d373ccfc3c957490387d96ac6f96c4cfae
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson2737318516770820905.sh
[workspace] $ /bin/sh -xe /tmp/hudson3803286500761792086.sh
+ PATH=/usr/bin:/bin:/usr/local/bin ./run_all_tests.sh
test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok
test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok
test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok
test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok
test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok
test_init (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok
test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok
test_changed (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok
test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok
test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
----------------------------------------------------------------------
Ran 151 tests in 0.047s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/drivers/ft2900.py:1236:1: E265 block comment should start with '# '
./chirp/drivers/ft60.py:521:45: W291 trailing whitespace
./chirp/drivers/ft60.py:522:25: E128 continuation line under-indented for visual indent
./chirp/drivers/ft60.py:523:13: E301 expected 1 blank line, found 0
./chirp/drivers/ft817.py:587:41: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:684:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:688:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:691:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:692:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:695:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:696:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:699:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:702:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:705:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:708:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:711:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:714:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:717:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:720:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:721:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:724:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:725:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:728:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:731:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:732:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:735:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:736:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:739:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:740:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:743:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:744:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:747:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:750:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:753:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:754:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:757:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:758:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:761:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:764:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:767:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:768:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:771:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:772:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:775:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:776:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:779:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:782:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:783:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:786:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:789:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:790:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:793:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:794:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:810:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:811:31: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:814:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:817:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:821:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:827:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:832:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:836:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:840:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:844:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:848:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:893:25: E128 continuation line under-indented for visual indent
./chirp/drivers/thd72.py:188:1: E302 expected 2 blank lines, found 1
./chirp/drivers/thd72.py:203:23: E201 whitespace after '['
./chirp/drivers/thd72.py:203:80: E501 line too long (171 > 79 characters)
./chirp/drivers/thd72.py:203:170: E202 whitespace before ']'
./chirp/drivers/thd72.py:204:13: E201 whitespace after '['
./chirp/drivers/thd72.py:204:61: E202 whitespace before ']'
./chirp/drivers/thd72.py:205:23: E201 whitespace after '['
./chirp/drivers/thd72.py:205:74: E202 whitespace before ']'
./chirp/drivers/thd72.py:206:18: E201 whitespace after '['
./chirp/drivers/thd72.py:206:65: E202 whitespace before ']'
./chirp/drivers/thd72.py:595:1: W293 blank line contains whitespace
./chirp/drivers/thd72.py:603:1: W293 blank line contains whitespace
./chirp/ui/mainapp.py:647:13: E128 continuation line under-indented for visual indent
./chirp/ui/mainapp.py:661:5: E303 too many blank lines (2)
./chirp/ui/mainapp.py:1374:80: E501 line too long (81 > 79 characters)
./chirp/ui/mainapp.py:1378:80: E501 line too long (80 > 79 characters)
./chirp/ui/mainapp.py:1663:80: E501 line too long (85 > 79 characters)
real 0m7.028s
user 0m6.994s
sys 0m0.026s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-07-12 18:12:43,621] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 14.04.4 LTS (Python 2.7.6)
[2016-07-12 18:12:43,630] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-07-12 18:12:43,630] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-07-12 18:12:43,630] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-07-12 18:12:43,630] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-07-12 18:12:43,630] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-07-12 18:12:43,630] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-07-12 18:12:43,630] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-07-12 18:12:43,630] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-07-12 18:12:43,631] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-07-12 18:12:43,631] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-07-12 18:12:43,631] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-07-12 18:12:43,631] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-07-12 18:12:43,631] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-07-12 18:12:43,631] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-07-12 18:12:43,631] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-07-12 18:12:43,631] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-07-12 18:12:43,631] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-07-12 18:12:43,632] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-07-12 18:12:43,632] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-07-12 18:12:43,632] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-07-12 18:12:43,632] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-07-12 18:12:43,632] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-07-12 18:12:43,633] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-07-12 18:12:43,633] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-07-12 18:12:43,633] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-07-12 18:12:43,633] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-07-12 18:12:43,633] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-07-12 18:12:43,633] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-07-12 18:12:43,633] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-07-12 18:12:43,633] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-07-12 18:12:43,633] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-07-12 18:12:43,634] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-07-12 18:12:43,634] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-07-12 18:12:43,634] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-07-12 18:12:43,635] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-07-12 18:12:43,635] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-07-12 18:12:43,636] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-07-12 18:12:43,636] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-07-12 18:12:43,636] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-07-12 18:12:43,636] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-07-12 18:12:43,636] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-07-12 18:12:43,636] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-07-12 18:12:43,636] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-07-12 18:12:43,637] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-07-12 18:12:43,637] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-07-12 18:12:43,637] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-07-12 18:12:43,637] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-07-12 18:12:43,637] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-07-12 18:12:43,637] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-07-12 18:12:43,637] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-07-12 18:12:43,637] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-07-12 18:12:43,637] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-07-12 18:12:43,638] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-07-12 18:12:43,638] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-07-12 18:12:43,638] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-07-12 18:12:43,638] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-07-12 18:12:43,638] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-07-12 18:12:43,638] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-07-12 18:12:43,638] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-07-12 18:12:43,638] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-07-12 18:12:43,639] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-07-12 18:12:43,639] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-07-12 18:12:43,640] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-07-12 18:12:43,640] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-07-12 18:12:43,640] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-07-12 18:12:43,641] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-07-12 18:12:43,641] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-07-12 18:12:43,641] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-07-12 18:12:43,641] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-07-12 18:12:43,642] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-07-12 18:12:43,642] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-07-12 18:12:43,642] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-07-12 18:12:43,642] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-07-12 18:12:43,642] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-07-12 18:12:43,643] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-07-12 18:12:43,643] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-07-12 18:12:43,644] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-07-12 18:12:43,644] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-07-12 18:12:43,644] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-07-12 18:12:43,644] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-07-12 18:12:43,650] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-07-12 18:12:43,653] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-07-12 18:12:43,653] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-07-12 18:12:43,653] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-07-12 18:12:43,653] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-07-12 18:12:43,654] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-07-12 18:12:43,654] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-07-12 18:12:43,654] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-07-12 18:12:43,654] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-07-12 18:12:43,655] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-07-12 18:12:43,655] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-07-12 18:12:43,655] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-07-12 18:12:43,655] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-07-12 18:12:43,655] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-07-12 18:12:43,656] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-07-12 18:12:43,656] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-07-12 18:12:43,656] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-07-12 18:12:43,656] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-07-12 18:12:43,656] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-07-12 18:12:43,657] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-07-12 18:12:43,657] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-07-12 18:12:43,657] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-07-12 18:12:43,657] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-07-12 18:12:43,658] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-07-12 18:12:43,658] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-07-12 18:12:43,658] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-07-12 18:12:43,658] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-07-12 18:12:43,659] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-07-12 18:12:43,659] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-07-12 18:12:43,659] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-07-12 18:12:43,659] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-07-12 18:12:43,660] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-07-12 18:12:43,660] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-07-12 18:12:43,660] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-07-12 18:12:43,660] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-07-12 18:12:43,660] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-07-12 18:12:43,661] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-07-12 18:12:43,661] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-07-12 18:12:43,661] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-07-12 18:12:43,661] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-07-12 18:12:43,661] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-07-12 18:12:43,661] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-07-12 18:12:43,662] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-07-12 18:12:43,662] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-07-12 18:12:43,662] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-07-12 18:12:43,662] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-07-12 18:12:43,663] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-07-12 18:12:43,663] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-07-12 18:12:43,663] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-07-12 18:12:43,663] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-07-12 18:12:43,663] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-07-12 18:12:43,663] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-07-12 18:12:43,663] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-07-12 18:12:43,664] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-07-12 18:12:43,664] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-07-12 18:12:43,664] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-07-12 18:12:43,664] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-07-12 18:12:43,664] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-07-12 18:12:43,664] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-07-12 18:12:43,664] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-07-12 18:12:43,664] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-07-12 18:12:43,665] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-07-12 18:12:43,666] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-07-12 18:12:43,666] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-07-12 18:12:43,666] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-07-12 18:12:43,666] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-07-12 18:12:43,666] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-07-12 18:12:43,666] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-07-12 18:12:43,666] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-07-12 18:12:43,666] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-07-12 18:12:43,666] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-07-12 18:12:43,666] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-07-12 18:12:43,667] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-07-12 18:12:43,667] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-07-12 18:12:43,667] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-07-12 18:12:43,667] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-07-12 18:12:43,667] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-07-12 18:12:43,668] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2016-07-12 18:12:43,668] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-07-12 18:12:43,668] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-07-12 18:12:43,669] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-07-12 18:12:43,669] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-07-12 18:12:43,669] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-07-12 18:12:43,670] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-07-12 18:12:43,670] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-07-12 18:12:43,670] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-07-12 18:12:43,670] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-07-12 18:12:43,670] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
+ rm /tmp/Alinco_DJ175_6MTu7O.img /tmp/Alinco_DJ596_jQn7sZ.img /tmp/Alinco_DR235T_a85xFA.img /tmp/AnyTone_OBLTR-8R_NVr4fi.img /tmp/AnyTone_TERMN-8R_2UEjdo.img /tmp/BTECH_UV-2501+220_B_kGGj.img /tmp/BTECH_UV-5001_QsuvvQ.img /tmp/BTECH_UV-50X3_16JCAe.img /tmp/BTECH_UV-50X3_DVqDcd.img /tmp/BTECH_UV-50X3_qsUol9.img /tmp/Baofeng_BF-888_oSbJFZ.img /tmp/Baofeng_F-11_b1FceY.img /tmp/Baofeng_UV-3R_8sejNR.img /tmp/Baofeng_UV-5R_6Se1nJ.img /tmp/Baofeng_UV-B5_Ok_yWt.img /tmp/Baojie_BJ-9900_JLzxce.img /tmp/Baojie_BJ-9900_oZllWs.img /tmp/Baojie_BJ-9900_rzg7V8.img /tmp/Feidaxin_FD-268A_nEZhch.img /tmp/Feidaxin_FD-268B_ovUNG4.img /tmp/Feidaxin_FD-288B_BuSap3.img /tmp/Icom_IC-208H_iBPjoM.img /tmp/Icom_IC-2100H_QxkSUU.img /tmp/Icom_IC-2200H_jzFe7b.img /tmp/Icom_IC-2720H_YQCcsg.img /tmp/Icom_IC-2820H_42zxjd.img /tmp/Icom_IC-Q7A_OvPPFf.img /tmp/Icom_IC-T70_TfYQLQ.img /tmp/Icom_IC-T7H_aAeVyF.img /tmp/Icom_IC-T8A_OuEBC8.img /tmp/Icom_IC-V82_U82_P3idcb.img /tmp/Icom_IC-W32A_9sdE9i.img /tmp/Icom_IC-W32A_k0M0Pp.img /tmp/Icom_IC-W32A_rI7rpT.img /tmp/Icom_IC-W32E_GpiS8W.img /tmp/Icom_IC-W32E_gtxoj_.img /tmp/Icom_IC-W32E_sV3PJx.img /tmp/Icom_ID-31A_siP9ch.img /tmp/Icom_ID-51 Plus_kzr5Mf.img /tmp/Icom_ID-51_j1BMrw.img /tmp/Icom_ID-800H_xT9o9k.img /tmp/Icom_ID-880H_tYu1S4.img /tmp/Jetstream_JT220M_S7m2FX.img /tmp/Jetstream_JT270M_cnAVQn.img /tmp/KYD_IP-620_Rj0wHS.img /tmp/Kenwood_TH-D72 (clone mode)_qMEWub.img /tmp/Kenwood_TK-272G_jvxmBU.img /tmp/Kenwood_TK-760G_Y_wJMV.img /tmp/Kenwood_TK-8102_qYzu_E.img /tmp/Leixen_VV-898_Vg_nwc.img /tmp/Polmar_DB-50M_5nCAYY.img /tmp/Puxing_PX-2R_FtIobX.img /tmp/Puxing_PX-777_K8qiXh.img /tmp/TYT_TH-7800_ASU4_1.img /tmp/TYT_TH-9800_0E9vDV.img /tmp/TYT_TH-UV3R-25_torykT.img /tmp/TYT_TH-UV3R_FRHuo4.img /tmp/TYT_TH-UVF1_dFPi6f.img /tmp/TYT_TH9000_144_FEICrm.img /tmp/Vertex Standard_VXA-700_wiIhSH.img /tmp/WACCOM_MINI-8900_NUBHpB.img /tmp/Wouxun_KG-816_q_lp4a.img /tmp/Wouxun_KG-818__KmvUR.img /tmp/Wouxun_KG-UV6_SAhWnj.img /tmp/Wouxun_KG-UV8D_LOutG1.img /tmp/Wouxun_KG-UVD1P_aZgaay.img /tmp/Yaesu_FT-1802M_gYwnBP.img /tmp/Yaesu_FT-1D_7nzBJ3.img /tmp/Yaesu_FT-2800M_crN9lm.img /tmp/Yaesu_FT-2900R_1900R_M7JsM1.img /tmp/Yaesu_FT-50_uLHVU9.img /tmp/Yaesu_FT-60_xBzRqY.img /tmp/Yaesu_FT-7800_7900_g7ZDZF.img /tmp/Yaesu_FT-817ND (US)_ouDMHY.img /tmp/Yaesu_FT-817ND_KMPbut.img /tmp/Yaesu_FT-817_jbEidS.img /tmp/Yaesu_FT-857_897 (US)_wVPUxh.img /tmp/Yaesu_FT-857_897_BzHkyu.img /tmp/Yaesu_FT-8800_76qNSr.img /tmp/Yaesu_FT-8800_YVh89v.img /tmp/Yaesu_FT-8800_qOa7FC.img /tmp/Yaesu_FT-8900_HS1ZqO.img /tmp/Yaesu_FTM-350_BW3TUb.img /tmp/Yaesu_FTM-350_NN38nY.img /tmp/Yaesu_FTM-350_nwNdtx.img /tmp/Yaesu_VX-2_uCQc3Z.img /tmp/Yaesu_VX-3_3H02JW.img /tmp/Yaesu_VX-5_XFWbL2.img /tmp/Yaesu_VX-6_pkQ7fE.img /tmp/Yaesu_VX-7_vZTflV.img /tmp/Yaesu_VX-8_DauDSH.img
Email was triggered for: Success
Sending email for trigger: Success
1
0
[chirp_devel] [PATCH] [UV-50X3] Add Support for BTech UV-50X3 - Other Settings
by Jim Unroe 12 Jul '16
by Jim Unroe 12 Jul '16
12 Jul '16
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1468370700 14400
# Node ID f1406051cec8d0aab0e90414e2a233a7cd57da0e
# Parent 339dbb706cc0bbb2dd8635ec6ee602c2302bb079
[UV-50X3] Add Support for BTech UV-50X3 - Other Settings
This patch adds the UV-50X3 miscellaneous settings.
related to #3815
diff -r 339dbb706cc0 -r f1406051cec8 chirp/drivers/vgc.py
--- a/chirp/drivers/vgc.py Tue Jul 12 20:25:54 2016 -0400
+++ b/chirp/drivers/vgc.py Tue Jul 12 20:45:00 2016 -0400
@@ -310,6 +310,9 @@
LIST_DATASPD = ["1200 bps", "9600 bps"]
LIST_DATASQL = ["Busy/TX", "Busy", "TX"]
+# Other settings lists
+LIST_CPUCLK = ["Clock frequency 1", "Clock frequency 2"]
+
# valid chars on the LCD
VALID_CHARS = chirp_common.CHARSET_ALPHANUMERIC + \
"`{|}!\"#$%&'()*+,-./:;<=>?@[]^_"
@@ -866,7 +869,8 @@
"""Translate the bit in the mem_struct into settings in the UI"""
_mem = self._memobj
basic = RadioSettingGroup("basic", "Basic Settings")
- top = RadioSettings(basic)
+ other = RadioSettingGroup("other", "Other Settings")
+ top = RadioSettings(basic, other)
# Basic
@@ -1050,6 +1054,36 @@
_mem.settings.tot]))
basic.append(tot)
+ # Other
+
+ dw = RadioSetting("settings.dw", "Dual watch",
+ RadioSettingValueBoolean(_mem.settings.dw))
+ other.append(dw)
+
+ cpuclk = RadioSetting("settings.cpuclk", "CPU clock frequency",
+ RadioSettingValueList(LIST_CPUCLK,LIST_CPUCLK[
+ _mem.settings.cpuclk]))
+ other.append(cpuclk)
+
+ def _filter(name):
+ filtered = ""
+ for char in str(name):
+ if char in VALID_CHARS:
+ filtered += char
+ else:
+ filtered += " "
+ return filtered
+
+ line16 = RadioSetting("poweron_msg.line16", "Power-on message",
+ RadioSettingValueString(0, 16, _filter(
+ _mem.poweron_msg.line16)))
+ other.append(line16)
+
+ line32 = RadioSetting("embedded_msg.line32", "Embedded message",
+ RadioSettingValueString(0, 32, _filter(
+ _mem.embedded_msg.line32)))
+ other.append(line32)
+
return top
def set_settings(self, settings):
@@ -1080,6 +1114,12 @@
if element.has_apply_callback():
LOG.debug("Using apply callback")
element.run_apply_callback()
+ elif setting == "line16":
+ setattr(obj, setting, str(element.value).rstrip(
+ " ").ljust(16, "\xFF"))
+ elif setting == "line32":
+ setattr(obj, setting, str(element.value).rstrip(
+ " ").ljust(32, "\xFF"))
elif element.value.get_mutable():
LOG.debug("Setting %s = %s" % (setting, element.value))
setattr(obj, setting, element.value)
1
0
Tested changes:
[Jim Unroe <rock.unroe(a)gmail.com>] [UV-50X3] Add Support for BTech UV-50X3 - Basic Settings
This patch adds the UV-50X3 settings that correspond to the radio's
built in SET menu.
related to #3815
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 5df74dc7422b72ccb8fd9fb5a11e44f43b32bbb6
[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 5df74dc7422b72ccb8fd9fb5a11e44f43b32bbb6
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson86381278653541960.sh
[workspace] $ /bin/sh -xe /tmp/hudson3063271687611975214.sh
+ PATH=/usr/bin:/bin:/usr/local/bin ./run_all_tests.sh
test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok
test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok
test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok
test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok
test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok
test_init (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok
test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok
test_changed (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok
test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok
test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
----------------------------------------------------------------------
Ran 151 tests in 0.050s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/drivers/ft2900.py:1236:1: E265 block comment should start with '# '
./chirp/drivers/ft60.py:521:45: W291 trailing whitespace
./chirp/drivers/ft60.py:522:25: E128 continuation line under-indented for visual indent
./chirp/drivers/ft60.py:523:13: E301 expected 1 blank line, found 0
./chirp/drivers/ft817.py:587:41: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:684:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:688:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:691:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:692:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:695:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:696:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:699:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:702:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:705:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:708:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:711:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:714:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:717:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:720:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:721:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:724:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:725:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:728:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:731:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:732:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:735:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:736:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:739:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:740:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:743:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:744:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:747:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:750:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:753:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:754:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:757:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:758:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:761:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:764:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:767:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:768:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:771:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:772:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:775:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:776:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:779:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:782:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:783:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:786:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:789:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:790:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:793:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:794:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:810:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:811:31: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:814:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:817:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:821:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:827:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:832:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:836:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:840:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:844:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:848:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:893:25: E128 continuation line under-indented for visual indent
./chirp/drivers/thd72.py:188:1: E302 expected 2 blank lines, found 1
./chirp/drivers/thd72.py:203:23: E201 whitespace after '['
./chirp/drivers/thd72.py:203:80: E501 line too long (171 > 79 characters)
./chirp/drivers/thd72.py:203:170: E202 whitespace before ']'
./chirp/drivers/thd72.py:204:13: E201 whitespace after '['
./chirp/drivers/thd72.py:204:61: E202 whitespace before ']'
./chirp/drivers/thd72.py:205:23: E201 whitespace after '['
./chirp/drivers/thd72.py:205:74: E202 whitespace before ']'
./chirp/drivers/thd72.py:206:18: E201 whitespace after '['
./chirp/drivers/thd72.py:206:65: E202 whitespace before ']'
./chirp/drivers/thd72.py:595:1: W293 blank line contains whitespace
./chirp/drivers/thd72.py:603:1: W293 blank line contains whitespace
./chirp/ui/mainapp.py:647:13: E128 continuation line under-indented for visual indent
./chirp/ui/mainapp.py:661:5: E303 too many blank lines (2)
./chirp/ui/mainapp.py:1374:80: E501 line too long (81 > 79 characters)
./chirp/ui/mainapp.py:1378:80: E501 line too long (80 > 79 characters)
./chirp/ui/mainapp.py:1663:80: E501 line too long (85 > 79 characters)
real 0m7.294s
user 0m7.242s
sys 0m0.033s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-07-12 17:52:33,856] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 14.04.4 LTS (Python 2.7.6)
[2016-07-12 17:52:33,865] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-07-12 17:52:33,865] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-07-12 17:52:33,866] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-07-12 17:52:33,867] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-07-12 17:52:33,867] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-07-12 17:52:33,867] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-07-12 17:52:33,867] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-07-12 17:52:33,867] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-07-12 17:52:33,868] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-07-12 17:52:33,868] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-07-12 17:52:33,868] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-07-12 17:52:33,868] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-07-12 17:52:33,868] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-07-12 17:52:33,868] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-07-12 17:52:33,868] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-07-12 17:52:33,868] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-07-12 17:52:33,869] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-07-12 17:52:33,869] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-07-12 17:52:33,869] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-07-12 17:52:33,869] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-07-12 17:52:33,869] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-07-12 17:52:33,869] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-07-12 17:52:33,870] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-07-12 17:52:33,870] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-07-12 17:52:33,871] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-07-12 17:52:33,871] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-07-12 17:52:33,871] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-07-12 17:52:33,871] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-07-12 17:52:33,871] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-07-12 17:52:33,871] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-07-12 17:52:33,872] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-07-12 17:52:33,872] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-07-12 17:52:33,872] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-07-12 17:52:33,872] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-07-12 17:52:33,872] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-07-12 17:52:33,872] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-07-12 17:52:33,872] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-07-12 17:52:33,872] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-07-12 17:52:33,873] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-07-12 17:52:33,873] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-07-12 17:52:33,873] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-07-12 17:52:33,873] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-07-12 17:52:33,873] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-07-12 17:52:33,873] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-07-12 17:52:33,873] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-07-12 17:52:33,873] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-07-12 17:52:33,874] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-07-12 17:52:33,874] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-07-12 17:52:33,874] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-07-12 17:52:33,875] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-07-12 17:52:33,875] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-07-12 17:52:33,875] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-07-12 17:52:33,876] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-07-12 17:52:33,876] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-07-12 17:52:33,876] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-07-12 17:52:33,877] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-07-12 17:52:33,877] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-07-12 17:52:33,877] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-07-12 17:52:33,877] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-07-12 17:52:33,877] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-07-12 17:52:33,878] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-07-12 17:52:33,878] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-07-12 17:52:33,878] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-07-12 17:52:33,878] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-07-12 17:52:33,879] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-07-12 17:52:33,879] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-07-12 17:52:33,879] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-07-12 17:52:33,880] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-07-12 17:52:33,880] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-07-12 17:52:33,886] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-07-12 17:52:33,889] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-07-12 17:52:33,889] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-07-12 17:52:33,889] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-07-12 17:52:33,889] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-07-12 17:52:33,890] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-07-12 17:52:33,890] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-07-12 17:52:33,890] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-07-12 17:52:33,890] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-07-12 17:52:33,891] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-07-12 17:52:33,891] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-07-12 17:52:33,891] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-07-12 17:52:33,891] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-07-12 17:52:33,892] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-07-12 17:52:33,892] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-07-12 17:52:33,892] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-07-12 17:52:33,892] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-07-12 17:52:33,893] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-07-12 17:52:33,893] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-07-12 17:52:33,893] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-07-12 17:52:33,893] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-07-12 17:52:33,893] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-07-12 17:52:33,894] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-07-12 17:52:33,894] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-07-12 17:52:33,894] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-07-12 17:52:33,895] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-07-12 17:52:33,895] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-07-12 17:52:33,895] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-07-12 17:52:33,895] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-07-12 17:52:33,896] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-07-12 17:52:33,896] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-07-12 17:52:33,896] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-07-12 17:52:33,896] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-07-12 17:52:33,896] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-07-12 17:52:33,896] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-07-12 17:52:33,897] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-07-12 17:52:33,897] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-07-12 17:52:33,898] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-07-12 17:52:33,898] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-07-12 17:52:33,898] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-07-12 17:52:33,898] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-07-12 17:52:33,898] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-07-12 17:52:33,898] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-07-12 17:52:33,898] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-07-12 17:52:33,899] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-07-12 17:52:33,899] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-07-12 17:52:33,899] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-07-12 17:52:33,900] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-07-12 17:52:33,900] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-07-12 17:52:33,900] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-07-12 17:52:33,900] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-07-12 17:52:33,900] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-07-12 17:52:33,900] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-07-12 17:52:33,900] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-07-12 17:52:33,900] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-07-12 17:52:33,901] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-07-12 17:52:33,901] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-07-12 17:52:33,901] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-07-12 17:52:33,901] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-07-12 17:52:33,901] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-07-12 17:52:33,901] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-07-12 17:52:33,903] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-07-12 17:52:33,903] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-07-12 17:52:33,903] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-07-12 17:52:33,903] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-07-12 17:52:33,903] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-07-12 17:52:33,903] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-07-12 17:52:33,903] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-07-12 17:52:33,903] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-07-12 17:52:33,903] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-07-12 17:52:33,903] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-07-12 17:52:33,904] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-07-12 17:52:33,904] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-07-12 17:52:33,904] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-07-12 17:52:33,904] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-07-12 17:52:33,904] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-07-12 17:52:33,905] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-07-12 17:52:33,905] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2016-07-12 17:52:33,905] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-07-12 17:52:33,906] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-07-12 17:52:33,906] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-07-12 17:52:33,906] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-07-12 17:52:33,906] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-07-12 17:52:33,907] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-07-12 17:52:33,907] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-07-12 17:52:33,908] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-07-12 17:52:33,908] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-07-12 17:52:33,908] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
+ rm /tmp/Alinco_DJ175_MNOldo.img /tmp/Alinco_DJ596_LfaDWg.img /tmp/Alinco_DR235T_2tGf52.img /tmp/AnyTone_OBLTR-8R_6CCqbg.img /tmp/AnyTone_TERMN-8R_8QUqzQ.img /tmp/BTECH_UV-2501+220_tQE3Mg.img /tmp/BTECH_UV-5001__apR4s.img /tmp/BTECH_UV-50X3_nPHncM.img /tmp/BTECH_UV-50X3_q5Uoyt.img /tmp/BTECH_UV-50X3_w3kbKQ.img /tmp/Baofeng_BF-888_9FILYS.img /tmp/Baofeng_F-11_eqRUvQ.img /tmp/Baofeng_UV-3R_7zE3K1.img /tmp/Baofeng_UV-5R_LLsVVm.img /tmp/Baofeng_UV-B5_8hUnF_.img /tmp/Baojie_BJ-9900_seSZf1.img /tmp/Baojie_BJ-9900_vPegxs.img /tmp/Baojie_BJ-9900_zOf1XO.img /tmp/Feidaxin_FD-268A_LzJ9RC.img /tmp/Feidaxin_FD-268B_0Lq6dC.img /tmp/Feidaxin_FD-288B_Pte83P.img /tmp/Icom_IC-208H_GMGCSa.img /tmp/Icom_IC-2100H__D1e2u.img /tmp/Icom_IC-2200H_VDlL4f.img /tmp/Icom_IC-2720H_KEYNVM.img /tmp/Icom_IC-2820H_6Ay7vt.img /tmp/Icom_IC-Q7A_yJIWar.img /tmp/Icom_IC-T70_SRs7eQ.img /tmp/Icom_IC-T7H_KFWECR.img /tmp/Icom_IC-T8A_AtxgnT.img /tmp/Icom_IC-V82_U82_OOxWaW.img /tmp/Icom_IC-W32A_4fWQPU.img /tmp/Icom_IC-W32A_8GF5z9.img /tmp/Icom_IC-W32A_rBDkAt.img /tmp/Icom_IC-W32E_Mwkxfj.img /tmp/Icom_IC-W32E_eWOw3C.img /tmp/Icom_IC-W32E_tJOzfK.img /tmp/Icom_ID-31A_eqGLh8.img /tmp/Icom_ID-51 Plus_3FI5qP.img /tmp/Icom_ID-51_4l1oFD.img /tmp/Icom_ID-800H_8khcbK.img /tmp/Icom_ID-880H_4ooAnf.img /tmp/Jetstream_JT220M_J7vSl3.img /tmp/Jetstream_JT270M_uYyg2d.img /tmp/KYD_IP-620_9MEiSl.img /tmp/Kenwood_TH-D72 (clone mode)_zWgcLo.img /tmp/Kenwood_TK-272G_s9IhLD.img /tmp/Kenwood_TK-760G_iAlj85.img /tmp/Kenwood_TK-8102_nJsDZu.img /tmp/Leixen_VV-898_AFiYlD.img /tmp/Polmar_DB-50M_aE1rZw.img /tmp/Puxing_PX-2R_FaBzsO.img /tmp/Puxing_PX-777_vXzJ_N.img /tmp/TYT_TH-7800_xmaeRt.img /tmp/TYT_TH-9800_B9ahza.img /tmp/TYT_TH-UV3R-25_aPDRfV.img /tmp/TYT_TH-UV3R_XxoHo1.img /tmp/TYT_TH-UVF1_UkOoBC.img /tmp/TYT_TH9000_144_oAMlid.img /tmp/Vertex Standard_VXA-700_HlbpRB.img /tmp/WACCOM_MINI-8900_wxJPQU.img /tmp/Wouxun_KG-816_vfZ_8q.img /tmp/Wouxun_KG-818_tXtUO8.img /tmp/Wouxun_KG-UV6_o8M8gP.img /tmp/Wouxun_KG-UV8D_xcdu_V.img /tmp/Wouxun_KG-UVD1P_j80J2u.img /tmp/Yaesu_FT-1802M_Sy74F2.img /tmp/Yaesu_FT-1D_0DUwGi.img /tmp/Yaesu_FT-2800M_lU44aM.img /tmp/Yaesu_FT-2900R_1900R_0QNOIk.img /tmp/Yaesu_FT-50_YlX8AZ.img /tmp/Yaesu_FT-60_g_xfpX.img /tmp/Yaesu_FT-7800_7900_6vjrmP.img /tmp/Yaesu_FT-817ND (US)_Fg7fvc.img /tmp/Yaesu_FT-817ND_Z3JE9F.img /tmp/Yaesu_FT-817_2ec9QU.img /tmp/Yaesu_FT-857_897 (US)_18oOyQ.img /tmp/Yaesu_FT-857_897_5sE3c7.img /tmp/Yaesu_FT-8800_ADeXeE.img /tmp/Yaesu_FT-8800_BiI2_k.img /tmp/Yaesu_FT-8800_Ix8goc.img /tmp/Yaesu_FT-8900_6JiRy1.img /tmp/Yaesu_FTM-350_4YlYuN.img /tmp/Yaesu_FTM-350_57r7M3.img /tmp/Yaesu_FTM-350_B0T15K.img /tmp/Yaesu_VX-2_7KsNtY.img /tmp/Yaesu_VX-3_zOd2ck.img /tmp/Yaesu_VX-5_91yF0B.img /tmp/Yaesu_VX-6_nVYg4t.img /tmp/Yaesu_VX-7_rpVeqz.img /tmp/Yaesu_VX-8_Fx6QVG.img
Email was triggered for: Success
Sending email for trigger: Success
1
0
Tested changes:
[Dan Smith <dsmith(a)danplanet.com>] Add BTECH UV-50X3 image
Related to #3815
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 d64acf844bd3de97b6184e61a2651988e30adf0b
[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 d64acf844bd3de97b6184e61a2651988e30adf0b
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson4022252516609685374.sh
[workspace] $ /bin/sh -xe /tmp/hudson4180822815943249981.sh
+ PATH=/usr/bin:/bin:/usr/local/bin ./run_all_tests.sh
test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok
test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok
test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok
test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok
test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok
test_init (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok
test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok
test_changed (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok
test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok
test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
----------------------------------------------------------------------
Ran 151 tests in 0.048s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/drivers/ft2900.py:1236:1: E265 block comment should start with '# '
./chirp/drivers/ft60.py:521:45: W291 trailing whitespace
./chirp/drivers/ft60.py:522:25: E128 continuation line under-indented for visual indent
./chirp/drivers/ft60.py:523:13: E301 expected 1 blank line, found 0
./chirp/drivers/ft817.py:587:41: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:684:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:688:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:691:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:692:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:695:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:696:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:699:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:702:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:705:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:708:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:711:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:714:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:717:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:720:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:721:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:724:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:725:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:728:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:731:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:732:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:735:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:736:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:739:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:740:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:743:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:744:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:747:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:750:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:753:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:754:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:757:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:758:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:761:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:764:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:767:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:768:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:771:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:772:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:775:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:776:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:779:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:782:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:783:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:786:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:789:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:790:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:793:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:794:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:810:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:811:31: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:814:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:817:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:821:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:827:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:832:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:836:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:840:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:844:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:848:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:893:25: E128 continuation line under-indented for visual indent
./chirp/drivers/thd72.py:188:1: E302 expected 2 blank lines, found 1
./chirp/drivers/thd72.py:203:23: E201 whitespace after '['
./chirp/drivers/thd72.py:203:80: E501 line too long (171 > 79 characters)
./chirp/drivers/thd72.py:203:170: E202 whitespace before ']'
./chirp/drivers/thd72.py:204:13: E201 whitespace after '['
./chirp/drivers/thd72.py:204:61: E202 whitespace before ']'
./chirp/drivers/thd72.py:205:23: E201 whitespace after '['
./chirp/drivers/thd72.py:205:74: E202 whitespace before ']'
./chirp/drivers/thd72.py:206:18: E201 whitespace after '['
./chirp/drivers/thd72.py:206:65: E202 whitespace before ']'
./chirp/drivers/thd72.py:595:1: W293 blank line contains whitespace
./chirp/drivers/thd72.py:603:1: W293 blank line contains whitespace
./chirp/ui/mainapp.py:647:13: E128 continuation line under-indented for visual indent
./chirp/ui/mainapp.py:661:5: E303 too many blank lines (2)
./chirp/ui/mainapp.py:1374:80: E501 line too long (81 > 79 characters)
./chirp/ui/mainapp.py:1378:80: E501 line too long (80 > 79 characters)
./chirp/ui/mainapp.py:1663:80: E501 line too long (85 > 79 characters)
real 0m7.249s
user 0m7.200s
sys 0m0.035s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-07-12 17:37:33,532] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 14.04.4 LTS (Python 2.7.6)
[2016-07-12 17:37:33,542] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-07-12 17:37:33,542] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-07-12 17:37:33,542] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-07-12 17:37:33,542] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-07-12 17:37:33,542] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-07-12 17:37:33,542] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-07-12 17:37:33,542] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-07-12 17:37:33,542] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-07-12 17:37:33,542] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-07-12 17:37:33,542] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-07-12 17:37:33,542] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-07-12 17:37:33,543] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-07-12 17:37:33,543] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-07-12 17:37:33,543] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-07-12 17:37:33,543] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-07-12 17:37:33,543] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-07-12 17:37:33,543] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-07-12 17:37:33,543] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-07-12 17:37:33,543] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-07-12 17:37:33,544] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-07-12 17:37:33,544] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-07-12 17:37:33,544] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-07-12 17:37:33,544] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-07-12 17:37:33,544] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-07-12 17:37:33,544] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-07-12 17:37:33,544] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-07-12 17:37:33,544] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-07-12 17:37:33,545] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-07-12 17:37:33,545] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-07-12 17:37:33,545] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-07-12 17:37:33,545] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-07-12 17:37:33,545] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-07-12 17:37:33,546] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-07-12 17:37:33,546] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-07-12 17:37:33,546] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-07-12 17:37:33,547] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-07-12 17:37:33,547] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-07-12 17:37:33,547] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-07-12 17:37:33,547] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-07-12 17:37:33,547] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-07-12 17:37:33,548] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-07-12 17:37:33,548] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-07-12 17:37:33,548] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-07-12 17:37:33,548] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-07-12 17:37:33,548] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-07-12 17:37:33,548] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-07-12 17:37:33,548] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-07-12 17:37:33,548] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-07-12 17:37:33,549] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-07-12 17:37:33,549] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-07-12 17:37:33,549] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-07-12 17:37:33,549] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-07-12 17:37:33,549] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-07-12 17:37:33,549] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-07-12 17:37:33,549] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-07-12 17:37:33,549] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-07-12 17:37:33,550] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-07-12 17:37:33,550] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-07-12 17:37:33,550] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-07-12 17:37:33,550] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-07-12 17:37:33,551] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-07-12 17:37:33,551] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-07-12 17:37:33,551] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-07-12 17:37:33,552] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-07-12 17:37:33,552] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-07-12 17:37:33,553] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-07-12 17:37:33,553] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-07-12 17:37:33,553] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-07-12 17:37:33,553] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-07-12 17:37:33,553] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-07-12 17:37:33,553] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-07-12 17:37:33,554] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-07-12 17:37:33,554] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-07-12 17:37:33,554] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-07-12 17:37:33,554] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-07-12 17:37:33,555] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-07-12 17:37:33,555] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-07-12 17:37:33,555] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-07-12 17:37:33,556] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-07-12 17:37:33,556] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-07-12 17:37:33,561] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-07-12 17:37:33,564] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-07-12 17:37:33,565] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-07-12 17:37:33,565] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-07-12 17:37:33,565] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-07-12 17:37:33,565] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-07-12 17:37:33,565] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-07-12 17:37:33,566] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-07-12 17:37:33,566] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-07-12 17:37:33,566] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-07-12 17:37:33,567] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-07-12 17:37:33,567] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-07-12 17:37:33,567] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-07-12 17:37:33,567] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-07-12 17:37:33,567] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-07-12 17:37:33,568] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-07-12 17:37:33,568] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-07-12 17:37:33,568] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-07-12 17:37:33,568] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-07-12 17:37:33,568] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-07-12 17:37:33,569] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-07-12 17:37:33,569] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-07-12 17:37:33,569] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-07-12 17:37:33,569] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-07-12 17:37:33,570] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-07-12 17:37:33,570] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-07-12 17:37:33,570] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-07-12 17:37:33,571] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-07-12 17:37:33,571] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-07-12 17:37:33,571] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-07-12 17:37:33,571] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-07-12 17:37:33,571] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-07-12 17:37:33,571] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-07-12 17:37:33,572] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-07-12 17:37:33,572] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-07-12 17:37:33,572] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-07-12 17:37:33,572] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-07-12 17:37:33,573] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-07-12 17:37:33,573] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-07-12 17:37:33,573] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-07-12 17:37:33,573] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-07-12 17:37:33,573] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-07-12 17:37:33,574] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-07-12 17:37:33,574] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-07-12 17:37:33,574] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-07-12 17:37:33,574] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-07-12 17:37:33,575] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-07-12 17:37:33,575] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-07-12 17:37:33,575] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-07-12 17:37:33,575] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-07-12 17:37:33,575] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-07-12 17:37:33,575] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-07-12 17:37:33,575] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-07-12 17:37:33,576] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-07-12 17:37:33,576] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-07-12 17:37:33,576] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-07-12 17:37:33,576] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-07-12 17:37:33,576] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-07-12 17:37:33,576] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-07-12 17:37:33,576] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-07-12 17:37:33,576] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-07-12 17:37:33,578] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-07-12 17:37:33,578] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-07-12 17:37:33,578] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-07-12 17:37:33,578] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-07-12 17:37:33,578] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-07-12 17:37:33,578] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-07-12 17:37:33,578] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-07-12 17:37:33,578] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-07-12 17:37:33,578] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-07-12 17:37:33,578] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-07-12 17:37:33,579] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-07-12 17:37:33,579] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-07-12 17:37:33,579] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-07-12 17:37:33,579] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-07-12 17:37:33,580] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-07-12 17:37:33,580] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-07-12 17:37:33,580] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2016-07-12 17:37:33,580] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-07-12 17:37:33,581] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-07-12 17:37:33,581] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-07-12 17:37:33,581] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-07-12 17:37:33,582] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-07-12 17:37:33,582] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-07-12 17:37:33,582] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-07-12 17:37:33,583] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-07-12 17:37:33,583] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-07-12 17:37:33,583] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
+ rm /tmp/Alinco_DJ175_der05r.img /tmp/Alinco_DJ596_ifWyjG.img /tmp/Alinco_DR235T_RCOX4g.img /tmp/AnyTone_OBLTR-8R_VZckfM.img /tmp/AnyTone_TERMN-8R_zLxVFR.img /tmp/BTECH_UV-2501+220_YyhSbr.img /tmp/BTECH_UV-5001_31YSq0.img /tmp/BTECH_UV-50X3_3DD0pR.img /tmp/BTECH_UV-50X3_8vG70F.img /tmp/BTECH_UV-50X3_FmZ1NA.img /tmp/Baofeng_BF-888_g3F8mg.img /tmp/Baofeng_F-11_crQ6i6.img /tmp/Baofeng_UV-3R_bHlOUB.img /tmp/Baofeng_UV-5R_9K6vcg.img /tmp/Baofeng_UV-B5_unwfZs.img /tmp/Baojie_BJ-9900_0_s0Kr.img /tmp/Baojie_BJ-9900__IlmUM.img /tmp/Baojie_BJ-9900_dvvmFC.img /tmp/Feidaxin_FD-268A_KGl8sb.img /tmp/Feidaxin_FD-268B_fCS7ZC.img /tmp/Feidaxin_FD-288B_JC2PFH.img /tmp/Icom_IC-208H_dzdUkX.img /tmp/Icom_IC-2100H_HqunFO.img /tmp/Icom_IC-2200H_m3TQst.img /tmp/Icom_IC-2720H_N1S4Jp.img /tmp/Icom_IC-2820H_TTUPl8.img /tmp/Icom_IC-Q7A_vOeP7b.img /tmp/Icom_IC-T70_wyureb.img /tmp/Icom_IC-T7H_AzK5WF.img /tmp/Icom_IC-T8A_5vuhbX.img /tmp/Icom_IC-V82_U82_ig6z7z.img /tmp/Icom_IC-W32A_YP4RVQ.img /tmp/Icom_IC-W32A_b3axvM.img /tmp/Icom_IC-W32A_rJFvIA.img /tmp/Icom_IC-W32E_8OxpPe.img /tmp/Icom_IC-W32E_EQnX2Z.img /tmp/Icom_IC-W32E_XWUZck.img /tmp/Icom_ID-31A_9vBcdc.img /tmp/Icom_ID-51 Plus_RQOtry.img /tmp/Icom_ID-51_ZuCNlg.img /tmp/Icom_ID-800H_rwvP7F.img /tmp/Icom_ID-880H_6U5hXr.img /tmp/Jetstream_JT220M_1bOqw4.img /tmp/Jetstream_JT270M_ALARuW.img /tmp/KYD_IP-620_w1EGni.img /tmp/Kenwood_TH-D72 (clone mode)_qKnSXv.img /tmp/Kenwood_TK-272G_lfC69D.img /tmp/Kenwood_TK-760G_6vxPb7.img /tmp/Kenwood_TK-8102_TBYhsa.img /tmp/Leixen_VV-898_R_HbZz.img /tmp/Polmar_DB-50M_8VFBoY.img /tmp/Puxing_PX-2R_6ba8bh.img /tmp/Puxing_PX-777_e2hExN.img /tmp/TYT_TH-7800_Kwc0Yt.img /tmp/TYT_TH-9800_5FN1db.img /tmp/TYT_TH-UV3R-25_CKlvP8.img /tmp/TYT_TH-UV3R_Bl7YgP.img /tmp/TYT_TH-UVF1_EcpADe.img /tmp/TYT_TH9000_144_kvAXAD.img /tmp/Vertex Standard_VXA-700_h7VyGW.img /tmp/WACCOM_MINI-8900_ZYbOP5.img /tmp/Wouxun_KG-816_jGcVli.img /tmp/Wouxun_KG-818_e9JScC.img /tmp/Wouxun_KG-UV6_fJNQle.img /tmp/Wouxun_KG-UV8D_WxckeJ.img /tmp/Wouxun_KG-UVD1P_zTupKp.img /tmp/Yaesu_FT-1802M_7q7CWg.img /tmp/Yaesu_FT-1D_IFz473.img /tmp/Yaesu_FT-2800M_TenX6l.img /tmp/Yaesu_FT-2900R_1900R_NCpPzJ.img /tmp/Yaesu_FT-50_1PcISX.img /tmp/Yaesu_FT-60_WVlzrl.img /tmp/Yaesu_FT-7800_7900_EDlxYQ.img /tmp/Yaesu_FT-817ND (US)_22J6mO.img /tmp/Yaesu_FT-817ND_D4e6NC.img /tmp/Yaesu_FT-817_UwvFOB.img /tmp/Yaesu_FT-857_897 (US)_DIHcnD.img /tmp/Yaesu_FT-857_897_B8Kkbc.img /tmp/Yaesu_FT-8800_Gfgw79.img /tmp/Yaesu_FT-8800_b13cex.img /tmp/Yaesu_FT-8800_rOB_TG.img /tmp/Yaesu_FT-8900_Xgkvhd.img /tmp/Yaesu_FTM-350_9AvStu.img /tmp/Yaesu_FTM-350_DpAzxo.img /tmp/Yaesu_FTM-350_lbOMZ5.img /tmp/Yaesu_VX-2_7VS0FZ.img /tmp/Yaesu_VX-3_OfFwX2.img /tmp/Yaesu_VX-5_K0td5L.img /tmp/Yaesu_VX-6_SXd43Q.img /tmp/Yaesu_VX-7_XPfNmR.img /tmp/Yaesu_VX-8_qE4lHl.img
Email was triggered for: Success
Sending email for trigger: Success
1
0
[chirp_devel] [PATCH] [UV-50X3] Add Support for BTech UV-50X3 - Basic Settings
by Jim Unroe 12 Jul '16
by Jim Unroe 12 Jul '16
12 Jul '16
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1468369554 14400
# Node ID 339dbb706cc0bbb2dd8635ec6ee602c2302bb079
# Parent b717d6b593bcb8e9f170e571173c51129a6a62da
[UV-50X3] Add Support for BTech UV-50X3 - Basic Settings
This patch adds the UV-50X3 settings that correspond to the radio's
built in SET menu.
related to #3815
diff -r b717d6b593bc -r 339dbb706cc0 chirp/drivers/vgc.py
--- a/chirp/drivers/vgc.py Tue Jul 12 19:43:19 2016 -0400
+++ b/chirp/drivers/vgc.py Tue Jul 12 20:25:54 2016 -0400
@@ -241,6 +241,75 @@
DTMF_CHARS = list("0123456789ABCD*#")
STIMEOUT = 1
+# Basic settings lists
+LIST_AFTONE = ["Low-3", "Low-2", "Low-1", "Normal", "High-1", "High-2"]
+LIST_SPKR = ["Off", "Front", "Rear", "Front + Rear"]
+LIST_AUDIO = ["Monaural", "Stereo"]
+LIST_SBMUTE = ["Off", "TX", "RX", "Both"]
+LIST_MLNHM = ["Min", "Low", "Normal", "High", "Max"]
+LIST_PTT = ["Momentary", "Toggle"]
+LIST_RXEXP = ["General", "Wide coverage"]
+LIST_VOX = ["Off", "Internal mic", "Front hand-mic", "Rear hand-mic"]
+LIST_DISPLAY = ["Frequency", "Timer/Clock"]
+LIST_MINMAX = ["Min"] + ["%s" % x for x in range(2, 8)] + ["Max"]
+LIST_COLOR = ["White-Blue", "Sky-Blue", "Marine-Blue", "Green",
+ "Yellow-Green", "Orange", "Amber", "White"]
+LIST_BTIME = ["Continuous"] + ["%s" % x for x in range(1, 61)]
+LIST_MRSCAN = ["All", "Selected"]
+LIST_DWSTOP = ["Auto", "Hold"]
+LIST_SCAND = ["Down", "Up"]
+LIST_SCANR = ["Busy", "Hold", "1 sec", "3 sec", "5 sec"]
+LIST_APO = ["Off", ".5", "1", "1.5"] + ["%s" % x for x in range(2, 13)]
+LIST_BEEP = ["Off", "Low", "High"]
+LIST_FKEY = ["MHz/AD-F", "AF Dual 1(line-in)", "AF Dual 2(AM)", "AF Dual 3(FM)",
+ "PA", "SQL off", "T-call", "WX"]
+LIST_PFKEY = ["Off", "SQL off", "TX power", "Scan", "RPT shift", "Reverse",
+ "T-Call"]
+LIST_AB = ["A", "B"]
+LIST_COVERAGE = ["In band", "All"]
+LIST_TOT = ["Off"] + ["%s" % x for x in range(5, 25, 5)] + ["30"]
+LIST_DATEFMT = ["yyyy/mm/dd", "yyyy/dd/mm", "mm/dd/yyyy", "dd/mm/yyyy"]
+LIST_TIMEFMT = ["24H", "12H"]
+LIST_TZ = ["-12 INT DL W",
+ "-11 MIDWAY",
+ "-10 HAST",
+ "-9 AKST",
+ "-8 PST",
+ "-7 MST",
+ "-6 CST",
+ "-5 EST",
+ "-4:30 CARACAS",
+ "-4 AST",
+ "-3:30 NST",
+ "-3 BRASILIA",
+ "-2 MATLANTIC",
+ "-1 AZORES",
+ "-0 LONDON",
+ "+0 LONDON",
+ "+1 ROME",
+ "+2 ATHENS",
+ "+3 MOSCOW",
+ "+3:30 REHRW",
+ "+4 ABUDNABI",
+ "+4:30 KABUL",
+ "+5 ISLMABAD",
+ "+5:30 NEWDELHI",
+ "+6 DHAKA",
+ "+6:30 YANGON",
+ "+7 BANKOK",
+ "+8 BEIJING",
+ "+9 TOKYO",
+ "+10 ADELAIDE",
+ "+10 SYDNET",
+ "+11 NWCLDNIA",
+ "+12 FIJI",
+ "+13 NUKALOFA"
+ ]
+LIST_BELL = ["Off", "1 time", "3 times", "5 times", "8 times", "Continuous"]
+LIST_DATABND = ["Main band", "Sub band", "Left band-fixed", "Right band-fixed"]
+LIST_DATASPD = ["1200 bps", "9600 bps"]
+LIST_DATASQL = ["Busy/TX", "Busy", "TX"]
+
# valid chars on the LCD
VALID_CHARS = chirp_common.CHARSET_ALPHANUMERIC + \
"`{|}!\"#$%&'()*+,-./:;<=>?@[]^_"
@@ -508,7 +577,7 @@
def get_features(self):
rf = chirp_common.RadioFeatures()
- rf.has_settings = False
+ rf.has_settings = True
rf.has_bank = False
rf.has_tuning_step = False
rf.can_odd_split = True
@@ -793,6 +862,232 @@
_mem.dname = 1
+ def get_settings(self):
+ """Translate the bit in the mem_struct into settings in the UI"""
+ _mem = self._memobj
+ basic = RadioSettingGroup("basic", "Basic Settings")
+ top = RadioSettings(basic)
+
+ # Basic
+
+ # Audio: A01-A04
+
+ aftone = RadioSetting("settings.aftone", "AF tone control",
+ RadioSettingValueList(LIST_AFTONE, LIST_AFTONE[
+ _mem.settings.aftone]))
+ basic.append(aftone)
+
+ spkr = RadioSetting("settings.spkr", "Speaker",
+ RadioSettingValueList(LIST_SPKR,LIST_SPKR[
+ _mem.settings.spkr]))
+ basic.append(spkr)
+
+ audio = RadioSetting("settings.audio", "Stereo/Mono",
+ RadioSettingValueList(LIST_AUDIO, LIST_AUDIO[
+ _mem.settings.audio]))
+ basic.append(audio)
+
+ sbmute = RadioSetting("settings.sbmute", "Sub band mute",
+ RadioSettingValueList(LIST_SBMUTE, LIST_SBMUTE[
+ _mem.settings.sbmute]))
+ basic.append(sbmute)
+
+ # TX/RX: B01-B08
+
+ mgain = RadioSetting("settings.mgain", "Mic gain",
+ RadioSettingValueList(LIST_MLNHM, LIST_MLNHM[
+ _mem.settings.mgain]))
+ basic.append(mgain)
+
+ ptt = RadioSetting("settings.ptt", "PTT mode",
+ RadioSettingValueList(LIST_PTT,LIST_PTT[
+ _mem.settings.ptt]))
+ basic.append(ptt)
+
+ # B03 (per channel)
+ # B04 (per channel)
+
+ rxexp = RadioSetting("settings.rxexp", "RX expansion",
+ RadioSettingValueList(LIST_RXEXP,LIST_RXEXP[
+ _mem.settings.rxexp]))
+ basic.append(rxexp)
+
+ vox = RadioSetting("settings.vox", "Vox",
+ RadioSettingValueList(LIST_VOX, LIST_VOX[
+ _mem.settings.vox]))
+ basic.append(vox)
+
+ voxs = RadioSetting("settings.voxs", "Vox sensitivity",
+ RadioSettingValueList(LIST_MLNHM, LIST_MLNHM[
+ _mem.settings.voxs]))
+ basic.append(voxs)
+
+ # B08 (per channel)
+
+ # Display: C01-C06
+
+ display = RadioSetting("settings.display", "Display select",
+ RadioSettingValueList(LIST_DISPLAY,
+ LIST_DISPLAY[_mem.settings.display]))
+ basic.append(display)
+
+ lcdb = RadioSetting("settings.lcdb", "LCD brightness",
+ RadioSettingValueList(LIST_MINMAX, LIST_MINMAX[
+ _mem.settings.lcdb]))
+ basic.append(lcdb)
+
+ color = RadioSetting("settings.color", "LCD color",
+ RadioSettingValueList(LIST_COLOR, LIST_COLOR[
+ _mem.settings.color]))
+ basic.append(color)
+
+ lcdc = RadioSetting("settings.lcdc", "LCD contrast",
+ RadioSettingValueList(LIST_MINMAX, LIST_MINMAX[
+ _mem.settings.lcdc]))
+ basic.append(lcdc)
+
+ btime = RadioSetting("settings.btime", "LCD backlight time",
+ RadioSettingValueList(LIST_BTIME, LIST_BTIME[
+ _mem.settings.btime]))
+ basic.append(btime)
+
+ keyb = RadioSetting("settings.keyb", "Key brightness",
+ RadioSettingValueList(LIST_MINMAX, LIST_MINMAX[
+ _mem.settings.keyb]))
+ basic.append(keyb)
+
+ # Memory: D01-D04
+
+ # D01 (per channel)
+ # D02 (per channel)
+
+ mrscan = RadioSetting("settings.mrscan", "Memory scan type",
+ RadioSettingValueList(LIST_MRSCAN, LIST_MRSCAN[
+ _mem.settings.mrscan]))
+ basic.append(mrscan)
+
+ # D04 (per channel)
+
+ # Scan: E01-E04
+
+ dwstop = RadioSetting("settings.dwstop", "Dual watch stop",
+ RadioSettingValueList(LIST_DWSTOP, LIST_DWSTOP[
+ _mem.settings.dwstop]))
+ basic.append(dwstop)
+
+ scand = RadioSetting("settings.scand", "Scan direction",
+ RadioSettingValueList(LIST_SCAND,LIST_SCAND[
+ _mem.settings.scand]))
+ basic.append(scand)
+
+ scanr = RadioSetting("settings.scanr", "Scan resume",
+ RadioSettingValueList(LIST_SCANR,LIST_SCANR[
+ _mem.settings.scanr]))
+ basic.append(scanr)
+
+ scansb = RadioSetting("settings.scansb", "Scan stop beep",
+ RadioSettingValueBoolean(_mem.settings.scansb))
+ basic.append(scansb)
+
+ # System: F01-F09
+
+ apo = RadioSetting("settings.apo", "Automatic power off [hours]",
+ RadioSettingValueList(LIST_APO, LIST_APO[
+ _mem.settings.apo]))
+ basic.append(apo)
+
+ ars = RadioSetting("settings.ars", "Automatic repeater shift",
+ RadioSettingValueBoolean(_mem.settings.ars))
+ basic.append(ars)
+
+ beep = RadioSetting("settings.beep", "Beep volume",
+ RadioSettingValueList(LIST_BEEP,LIST_BEEP[
+ _mem.settings.beep]))
+ basic.append(beep)
+
+ fkey = RadioSetting("settings.fkey", "F key",
+ RadioSettingValueList(LIST_FKEY,LIST_FKEY[
+ _mem.settings.fkey]))
+ basic.append(fkey)
+
+ pfkey1 = RadioSetting("settings.pfkey1", "Mic P1 key",
+ RadioSettingValueList(LIST_PFKEY, LIST_PFKEY[
+ _mem.settings.pfkey1]))
+ basic.append(pfkey1)
+
+ pfkey2 = RadioSetting("settings.pfkey2", "Mic P2 key",
+ RadioSettingValueList(LIST_PFKEY, LIST_PFKEY[
+ _mem.settings.pfkey2]))
+ basic.append(pfkey2)
+
+ pfkey3 = RadioSetting("settings.pfkey3", "Mic P3 key",
+ RadioSettingValueList(LIST_PFKEY, LIST_PFKEY[
+ _mem.settings.pfkey3]))
+ basic.append(pfkey3)
+
+ pfkey4 = RadioSetting("settings.pfkey4", "Mic P4 key",
+ RadioSettingValueList(LIST_PFKEY, LIST_PFKEY[
+ _mem.settings.pfkey4]))
+ basic.append(pfkey4)
+
+ omode = RadioSetting("settings.omode", "Operation mode",
+ RadioSettingValueList(LIST_AB,LIST_AB[
+ _mem.settings.omode]))
+ basic.append(omode)
+
+ rxcoverm = RadioSetting("settings.rxcoverm", "RX coverage - memory",
+ RadioSettingValueList(LIST_COVERAGE,
+ LIST_COVERAGE[_mem.settings.rxcoverm]))
+ basic.append(rxcoverm)
+
+ rxcoverv = RadioSetting("settings.rxcoverv", "RX coverage - VFO",
+ RadioSettingValueList(LIST_COVERAGE,
+ LIST_COVERAGE[_mem.settings.rxcoverv]))
+ basic.append(rxcoverv)
+
+ tot = RadioSetting("settings.tot", "Time out timer [min]",
+ RadioSettingValueList(LIST_TOT, LIST_TOT[
+ _mem.settings.tot]))
+ basic.append(tot)
+
+ return top
+
+ def set_settings(self, settings):
+ _settings = self._memobj.settings
+ _mem = self._memobj
+ for element in settings:
+ if not isinstance(element, RadioSetting):
+ self.set_settings(element)
+ continue
+ else:
+ try:
+ name = element.get_name()
+ if "." in name:
+ bits = name.split(".")
+ obj = self._memobj
+ for bit in bits[:-1]:
+ if "/" in bit:
+ bit, index = bit.split("/", 1)
+ index = int(index)
+ obj = getattr(obj, bit)[index]
+ else:
+ obj = getattr(obj, bit)
+ setting = bits[-1]
+ else:
+ obj = _settings
+ setting = element.get_name()
+
+ if element.has_apply_callback():
+ LOG.debug("Using apply callback")
+ element.run_apply_callback()
+ elif element.value.get_mutable():
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+ except Exception, e:
+ LOG.debug(element.get_name())
+ raise
+
+
@classmethod
def match_model(cls, filedata, filename):
match_size = False
1
0
[chirp_devel] [PATCH] [UV-50X3] Add Support for BTech UV-50X3 - Basic Settings
by Jim Unroe 12 Jul '16
by Jim Unroe 12 Jul '16
12 Jul '16
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1468367503 14400
# Node ID 6a568198077819aa3fcf40eb414874b8c5b23490
# Parent b717d6b593bcb8e9f170e571173c51129a6a62da
[UV-50X3] Add Support for BTech UV-50X3 - Basic Settings
This patch adds the UV-50X3 settings that correspond to the radio's
built in SET menu.
related to #3815
1
1
Tested changes:
[Jim Unroe <rock.unroe(a)gmail.com>] [UV-50X3] Add Support for BTech UV-50X3
This patch adds basic support (500 left memories/500 right memories) plus
all per-channel settings. It also and exposes the structures that will be used
to add settings in future patches.
related to #3815
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 0fb2340c1de9a353cb0eb7d0a2190585e3692e03
[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 0fb2340c1de9a353cb0eb7d0a2190585e3692e03
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson2477965061603870263.sh
[workspace] $ /bin/sh -xe /tmp/hudson2756029932977064281.sh
+ PATH=/usr/bin:/bin:/usr/local/bin ./run_all_tests.sh
test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok
test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok
test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok
test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok
test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok
test_init (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok
test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok
test_changed (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok
test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok
test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
----------------------------------------------------------------------
Ran 151 tests in 0.051s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/drivers/ft2900.py:1236:1: E265 block comment should start with '# '
./chirp/drivers/ft60.py:521:45: W291 trailing whitespace
./chirp/drivers/ft60.py:522:25: E128 continuation line under-indented for visual indent
./chirp/drivers/ft60.py:523:13: E301 expected 1 blank line, found 0
./chirp/drivers/ft817.py:587:41: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:684:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:688:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:691:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:692:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:695:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:696:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:699:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:702:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:705:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:708:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:711:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:714:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:717:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:720:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:721:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:724:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:725:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:728:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:731:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:732:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:735:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:736:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:739:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:740:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:743:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:744:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:747:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:750:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:753:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:754:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:757:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:758:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:761:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:764:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:767:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:768:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:771:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:772:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:775:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:776:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:779:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:782:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:783:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:786:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:789:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:790:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:793:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:794:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:810:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:811:31: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:814:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:817:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:821:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:827:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:832:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:836:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:840:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:844:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:848:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:893:25: E128 continuation line under-indented for visual indent
./chirp/drivers/thd72.py:188:1: E302 expected 2 blank lines, found 1
./chirp/drivers/thd72.py:203:23: E201 whitespace after '['
./chirp/drivers/thd72.py:203:80: E501 line too long (171 > 79 characters)
./chirp/drivers/thd72.py:203:170: E202 whitespace before ']'
./chirp/drivers/thd72.py:204:13: E201 whitespace after '['
./chirp/drivers/thd72.py:204:61: E202 whitespace before ']'
./chirp/drivers/thd72.py:205:23: E201 whitespace after '['
./chirp/drivers/thd72.py:205:74: E202 whitespace before ']'
./chirp/drivers/thd72.py:206:18: E201 whitespace after '['
./chirp/drivers/thd72.py:206:65: E202 whitespace before ']'
./chirp/drivers/thd72.py:595:1: W293 blank line contains whitespace
./chirp/drivers/thd72.py:603:1: W293 blank line contains whitespace
./chirp/ui/mainapp.py:647:13: E128 continuation line under-indented for visual indent
./chirp/ui/mainapp.py:661:5: E303 too many blank lines (2)
./chirp/ui/mainapp.py:1374:80: E501 line too long (81 > 79 characters)
./chirp/ui/mainapp.py:1378:80: E501 line too long (80 > 79 characters)
./chirp/ui/mainapp.py:1663:80: E501 line too long (85 > 79 characters)
real 0m7.520s
user 0m7.402s
sys 0m0.052s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-07-12 17:22:36,194] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 14.04.4 LTS (Python 2.7.6)
[2016-07-12 17:22:36,204] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-07-12 17:22:36,204] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-07-12 17:22:36,204] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-07-12 17:22:36,204] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-07-12 17:22:36,205] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-07-12 17:22:36,206] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-07-12 17:22:36,206] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-07-12 17:22:36,206] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-07-12 17:22:36,207] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-07-12 17:22:36,207] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-07-12 17:22:36,207] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-07-12 17:22:36,207] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-07-12 17:22:36,207] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-07-12 17:22:36,207] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-07-12 17:22:36,207] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-07-12 17:22:36,207] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-07-12 17:22:36,207] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-07-12 17:22:36,207] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-07-12 17:22:36,208] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-07-12 17:22:36,208] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-07-12 17:22:36,208] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-07-12 17:22:36,208] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-07-12 17:22:36,209] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-07-12 17:22:36,209] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-07-12 17:22:36,210] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-07-12 17:22:36,210] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-07-12 17:22:36,210] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-07-12 17:22:36,210] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-07-12 17:22:36,210] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-07-12 17:22:36,210] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-07-12 17:22:36,210] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-07-12 17:22:36,210] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-07-12 17:22:36,211] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-07-12 17:22:36,211] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-07-12 17:22:36,211] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-07-12 17:22:36,211] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-07-12 17:22:36,211] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-07-12 17:22:36,211] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-07-12 17:22:36,211] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-07-12 17:22:36,211] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-07-12 17:22:36,212] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-07-12 17:22:36,212] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-07-12 17:22:36,212] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-07-12 17:22:36,212] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-07-12 17:22:36,212] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-07-12 17:22:36,212] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-07-12 17:22:36,212] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-07-12 17:22:36,212] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-07-12 17:22:36,213] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-07-12 17:22:36,213] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-07-12 17:22:36,214] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-07-12 17:22:36,214] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-07-12 17:22:36,214] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-07-12 17:22:36,215] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-07-12 17:22:36,215] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-07-12 17:22:36,215] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-07-12 17:22:36,215] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-07-12 17:22:36,216] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-07-12 17:22:36,216] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-07-12 17:22:36,216] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-07-12 17:22:36,216] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-07-12 17:22:36,217] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-07-12 17:22:36,217] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-07-12 17:22:36,217] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-07-12 17:22:36,217] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-07-12 17:22:36,218] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-07-12 17:22:36,218] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-07-12 17:22:36,218] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-07-12 17:22:36,218] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-07-12 17:22:36,224] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-07-12 17:22:36,227] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-07-12 17:22:36,227] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-07-12 17:22:36,228] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-07-12 17:22:36,228] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-07-12 17:22:36,228] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-07-12 17:22:36,228] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-07-12 17:22:36,228] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-07-12 17:22:36,229] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-07-12 17:22:36,229] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-07-12 17:22:36,229] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-07-12 17:22:36,229] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-07-12 17:22:36,230] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-07-12 17:22:36,230] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-07-12 17:22:36,230] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-07-12 17:22:36,230] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-07-12 17:22:36,231] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-07-12 17:22:36,231] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-07-12 17:22:36,231] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-07-12 17:22:36,231] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-07-12 17:22:36,231] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-07-12 17:22:36,231] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-07-12 17:22:36,232] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-07-12 17:22:36,232] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-07-12 17:22:36,232] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-07-12 17:22:36,233] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-07-12 17:22:36,233] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-07-12 17:22:36,233] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-07-12 17:22:36,233] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-07-12 17:22:36,234] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-07-12 17:22:36,234] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-07-12 17:22:36,234] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-07-12 17:22:36,234] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-07-12 17:22:36,234] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-07-12 17:22:36,234] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-07-12 17:22:36,235] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-07-12 17:22:36,235] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-07-12 17:22:36,235] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-07-12 17:22:36,236] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-07-12 17:22:36,236] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-07-12 17:22:36,236] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-07-12 17:22:36,236] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-07-12 17:22:36,236] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-07-12 17:22:36,236] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-07-12 17:22:36,237] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-07-12 17:22:36,237] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-07-12 17:22:36,237] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-07-12 17:22:36,238] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-07-12 17:22:36,238] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-07-12 17:22:36,238] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-07-12 17:22:36,238] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-07-12 17:22:36,238] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-07-12 17:22:36,238] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-07-12 17:22:36,238] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-07-12 17:22:36,238] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-07-12 17:22:36,239] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-07-12 17:22:36,239] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-07-12 17:22:36,239] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-07-12 17:22:36,239] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-07-12 17:22:36,239] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-07-12 17:22:36,239] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-07-12 17:22:36,240] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-07-12 17:22:36,240] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-07-12 17:22:36,240] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-07-12 17:22:36,240] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-07-12 17:22:36,241] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-07-12 17:22:36,241] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-07-12 17:22:36,241] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-07-12 17:22:36,241] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-07-12 17:22:36,241] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-07-12 17:22:36,241] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-07-12 17:22:36,241] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-07-12 17:22:36,241] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-07-12 17:22:36,241] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-07-12 17:22:36,241] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-07-12 17:22:36,242] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-07-12 17:22:36,242] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-07-12 17:22:36,242] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2016-07-12 17:22:36,243] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-07-12 17:22:36,243] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-07-12 17:22:36,243] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-07-12 17:22:36,244] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-07-12 17:22:36,244] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-07-12 17:22:36,244] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-07-12 17:22:36,245] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-07-12 17:22:36,245] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-07-12 17:22:36,245] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-07-12 17:22:36,245] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
+ rm /tmp/Alinco_DJ175_J0YNnj.img /tmp/Alinco_DJ175_JiCJdg.img /tmp/Alinco_DJ596___OaAF.img /tmp/Alinco_DJ596_yyQfIj.img /tmp/Alinco_DR235T_L0wq23.img /tmp/Alinco_DR235T_M6cqfp.img /tmp/AnyTone_OBLTR-8R_KiNXNg.img /tmp/AnyTone_OBLTR-8R_NQxyNn.img /tmp/AnyTone_TERMN-8R_0x264l.img /tmp/AnyTone_TERMN-8R_hxWwp3.img /tmp/BTECH_UV-2501+220_6iAiXn.img /tmp/BTECH_UV-2501+220_c2Ra72.img /tmp/BTECH_UV-5001_2Dex3F.img /tmp/BTECH_UV-5001_OFQMQz.img /tmp/Baofeng_BF-888_HStFTW.img /tmp/Baofeng_BF-888_LpnrkI.img /tmp/Baofeng_F-11_ZJPea8.img /tmp/Baofeng_F-11_aBk_U5.img /tmp/Baofeng_UV-3R_9PT7TM.img /tmp/Baofeng_UV-3R_WCZhMR.img /tmp/Baofeng_UV-5R_VmVvPT.img /tmp/Baofeng_UV-5R_tkUUpU.img /tmp/Baofeng_UV-B5_JkEe43.img /tmp/Baofeng_UV-B5_vkYXkJ.img /tmp/Baojie_BJ-9900_CnHkvd.img /tmp/Baojie_BJ-9900_IpvU7m.img /tmp/Baojie_BJ-9900_fubaJ7.img /tmp/Baojie_BJ-9900_vo3aNl.img /tmp/Baojie_BJ-9900_wxwtUb.img /tmp/Baojie_BJ-9900_xQiMNs.img /tmp/Feidaxin_FD-268A_J8fkkZ.img /tmp/Feidaxin_FD-268A_Rg76A3.img /tmp/Feidaxin_FD-268B_GsIIfJ.img /tmp/Feidaxin_FD-268B_hKbiIA.img /tmp/Feidaxin_FD-288B_FXZfLe.img /tmp/Feidaxin_FD-288B_TIVciL.img /tmp/Icom_IC-208H_PYbXlN.img /tmp/Icom_IC-208H_g53FAX.img /tmp/Icom_IC-2100H_ZS0JwJ.img /tmp/Icom_IC-2100H_yJitxk.img /tmp/Icom_IC-2200H_8PPlGV.img /tmp/Icom_IC-2200H_n3vhBC.img /tmp/Icom_IC-2720H_1SpCBX.img /tmp/Icom_IC-2720H_fIkoll.img /tmp/Icom_IC-2820H_7nAq9l.img /tmp/Icom_IC-2820H_cs81RR.img /tmp/Icom_IC-Q7A_a2M_lV.img /tmp/Icom_IC-Q7A_ebr8XA.img /tmp/Icom_IC-T70_noWtAQ.img /tmp/Icom_IC-T70_wChFiU.img /tmp/Icom_IC-T7H_0vsR4t.img /tmp/Icom_IC-T7H_zPy2jq.img /tmp/Icom_IC-T8A_3xokm7.img /tmp/Icom_IC-T8A_nUt5en.img /tmp/Icom_IC-V82_U82_0OPvad.img /tmp/Icom_IC-V82_U82_F_YM5h.img /tmp/Icom_IC-W32A_AIWfWG.img /tmp/Icom_IC-W32A_ZlmcpY.img /tmp/Icom_IC-W32A_k1zEV7.img /tmp/Icom_IC-W32A_kjzMyZ.img /tmp/Icom_IC-W32A_p1reYf.img /tmp/Icom_IC-W32A_z_3OQH.img /tmp/Icom_IC-W32E_Q866RB.img /tmp/Icom_IC-W32E_QB9ao8.img /tmp/Icom_IC-W32E_XA0UJs.img /tmp/Icom_IC-W32E_hisG29.img /tmp/Icom_IC-W32E_nxu_TY.img /tmp/Icom_IC-W32E_zVEAPy.img /tmp/Icom_ID-31A_JkWM7S.img /tmp/Icom_ID-31A_rZ6eQZ.img /tmp/Icom_ID-51 Plus_HCeCBM.img /tmp/Icom_ID-51 Plus_MycIGJ.img /tmp/Icom_ID-51_ZYta2H.img /tmp/Icom_ID-51_lLApnq.img /tmp/Icom_ID-800H_NLFXgV.img /tmp/Icom_ID-800H_oFAeJO.img /tmp/Icom_ID-880H_VkMdiH.img /tmp/Icom_ID-880H_hUSnsA.img /tmp/Jetstream_JT220M_g3xiNO.img /tmp/Jetstream_JT220M_w8tz5I.img /tmp/Jetstream_JT270M_09IFZn.img /tmp/Jetstream_JT270M_epIkDQ.img /tmp/KYD_IP-620_2l0lLI.img /tmp/KYD_IP-620_PdZwUm.img /tmp/Kenwood_TH-D72 (clone mode)_3aWPVF.img /tmp/Kenwood_TH-D72 (clone mode)_yEG7ej.img /tmp/Kenwood_TK-272G_bcxfSg.img /tmp/Kenwood_TK-272G_l1dXl2.img /tmp/Kenwood_TK-760G_DoKWok.img /tmp/Kenwood_TK-760G_K0cnJ2.img /tmp/Kenwood_TK-8102_X7t3rs.img /tmp/Kenwood_TK-8102_c3USKD.img /tmp/Leixen_VV-898_4NFl90.img /tmp/Leixen_VV-898_HUZDY3.img /tmp/Polmar_DB-50M_ZfH0CG.img /tmp/Polmar_DB-50M_hUdq7Z.img /tmp/Puxing_PX-2R_2aK_6z.img /tmp/Puxing_PX-2R_rW8fXN.img /tmp/Puxing_PX-777_3exRVd.img /tmp/Puxing_PX-777_9I0pkJ.img /tmp/TYT_TH-7800_Df813t.img /tmp/TYT_TH-7800_GtFG7E.img /tmp/TYT_TH-9800_BBaKhm.img /tmp/TYT_TH-9800_rhbMrO.img /tmp/TYT_TH-UV3R-25_ADhy8u.img /tmp/TYT_TH-UV3R-25_qqw_Rx.img /tmp/TYT_TH-UV3R_F4mgG3.img /tmp/TYT_TH-UV3R_XRebMp.img /tmp/TYT_TH-UVF1_WP1dU4.img /tmp/TYT_TH-UVF1_WsKoHd.img /tmp/TYT_TH9000_144_2LtbIu.img /tmp/TYT_TH9000_144_q37Qqr.img /tmp/Vertex Standard_VXA-700_ZtAiTb.img /tmp/Vertex Standard_VXA-700_dEofUa.img /tmp/WACCOM_MINI-8900_0mXTQQ.img /tmp/WACCOM_MINI-8900_1BLXs3.img /tmp/Wouxun_KG-816_BDutJv.img /tmp/Wouxun_KG-816_t5ASLa.img /tmp/Wouxun_KG-818_NPoYNE.img /tmp/Wouxun_KG-818_QvKE_o.img /tmp/Wouxun_KG-UV6_imZYcA.img /tmp/Wouxun_KG-UV6_laRv0B.img /tmp/Wouxun_KG-UV8D_dJewlc.img /tmp/Wouxun_KG-UV8D_dvqBZl.img /tmp/Wouxun_KG-UVD1P_vMlomw.img /tmp/Wouxun_KG-UVD1P_xQsdYA.img /tmp/Yaesu_FT-1802M_BPqg9Y.img /tmp/Yaesu_FT-1802M_VJAG1I.img /tmp/Yaesu_FT-1D_UyADcc.img /tmp/Yaesu_FT-1D_gNsjQM.img /tmp/Yaesu_FT-2800M_0r4kiA.img /tmp/Yaesu_FT-2800M_w1cVww.img /tmp/Yaesu_FT-2900R_1900R_8BlvjG.img /tmp/Yaesu_FT-2900R_1900R_yCYU_a.img /tmp/Yaesu_FT-50_BNNHmj.img /tmp/Yaesu_FT-50_VN7wiC.img /tmp/Yaesu_FT-60_bf0luQ.img /tmp/Yaesu_FT-60_djtYRd.img /tmp/Yaesu_FT-7800_7900_fa686S.img /tmp/Yaesu_FT-7800_7900_uRcPH9.img /tmp/Yaesu_FT-817ND (US)_4V1IAU.img /tmp/Yaesu_FT-817ND (US)_ONC9yI.img /tmp/Yaesu_FT-817ND_21iQby.img /tmp/Yaesu_FT-817ND_FaYeg2.img /tmp/Yaesu_FT-817_I4xKRg.img /tmp/Yaesu_FT-817_zUd6wj.img /tmp/Yaesu_FT-857_897 (US)_h9_Mh6.img /tmp/Yaesu_FT-857_897 (US)_wAh1qk.img /tmp/Yaesu_FT-857_897_QYWLAR.img /tmp/Yaesu_FT-857_897_nyVJOP.img /tmp/Yaesu_FT-8800_FhRS94.img /tmp/Yaesu_FT-8800_FzuZYU.img /tmp/Yaesu_FT-8800_QdAf7J.img /tmp/Yaesu_FT-8800_SG3s_v.img /tmp/Yaesu_FT-8800_lppF2w.img /tmp/Yaesu_FT-8800_wXF1Z6.img /tmp/Yaesu_FT-8900_djfhE3.img /tmp/Yaesu_FT-8900_yX7OAN.img /tmp/Yaesu_FTM-350_HLFAkT.img /tmp/Yaesu_FTM-350_MLuNva.img /tmp/Yaesu_FTM-350_QI8ieQ.img /tmp/Yaesu_FTM-350_eL3Px6.img /tmp/Yaesu_FTM-350_iwryM6.img /tmp/Yaesu_FTM-350_pkWM_e.img /tmp/Yaesu_VX-2_8jpOh3.img /tmp/Yaesu_VX-2_Wl9SQ5.img /tmp/Yaesu_VX-3_YEZtdu.img /tmp/Yaesu_VX-3_qHuzhH.img /tmp/Yaesu_VX-5_IC3x0o.img /tmp/Yaesu_VX-5_feEhEy.img /tmp/Yaesu_VX-6_FXolBb.img /tmp/Yaesu_VX-6_cJIcOB.img /tmp/Yaesu_VX-7_RGp1br.img /tmp/Yaesu_VX-7_z8rEoL.img /tmp/Yaesu_VX-8_94JDi5.img /tmp/Yaesu_VX-8_K5wXj5.img
Email was triggered for: Success
Sending email for trigger: Success
1
0
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1468366999 14400
# Node ID b717d6b593bcb8e9f170e571173c51129a6a62da
# Parent 971c5f5430d90e7bfe37b8d9235790ae5cae7d9f
[UV-50X3] Add Support for BTech UV-50X3
This patch adds basic support (500 left memories/500 right memories) plus
all per-channel settings. It also and exposes the structures that will be used
to add settings in future patches.
related to #3815
diff -r 971c5f5430d9 -r b717d6b593bc chirp/drivers/vgc.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/chirp/drivers/vgc.py Tue Jul 12 19:43:19 2016 -0400
@@ -0,0 +1,828 @@
+# Copyright 2016:
+# * Jim Unroe KC9HI, <rock.unroe(a)gmail.com>
+# * Pavel Milanes CO7WT <pavelmc(a)gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import time
+import struct
+import logging
+import re
+
+LOG = logging.getLogger(__name__)
+
+from chirp import chirp_common, directory, memmap
+from chirp import bitwise, errors, util
+from chirp.settings import RadioSettingGroup, RadioSetting, \
+ RadioSettingValueBoolean, RadioSettingValueList, \
+ RadioSettingValueString, RadioSettingValueInteger, \
+ RadioSettingValueFloat, RadioSettings
+from textwrap import dedent
+
+MEM_FORMAT = """
+struct mem {
+ lbcd rxfreq[4];
+ lbcd txfreq[4];
+ lbcd rxtone[2];
+ lbcd txtone[2];
+ u8 unknown0:2,
+ txp:2,
+ wn:2,
+ unknown1:1,
+ bcl:1;
+ u8 unknown2:2,
+ revert:1,
+ dname:1,
+ unknown3:4;
+ u8 unknown4[2];
+};
+
+struct nam {
+ char name[6];
+ u8 unknown1[2];
+};
+
+#seekto 0x0000;
+struct mem left_memory[500];
+
+#seekto 0x2000;
+struct mem right_memory[500];
+
+#seekto 0x4000;
+struct nam left_names[500];
+
+#seekto 0x5000;
+struct nam right_names[500];
+
+#seekto 0x6000;
+u8 left_usedflags[64];
+
+#seekto 0x6040;
+u8 left_scanflags[64];
+
+#seekto 0x6080;
+u8 right_usedflags[64];
+
+#seekto 0x60C0;
+u8 right_scanflags[64];
+
+#seekto 0x6160;
+struct {
+ char line32[32];
+} embedded_msg;
+
+#seekto 0x6180;
+struct {
+ u8 sbmute:2, // sub band mute
+ unknown1:1,
+ workmodb:1, // work mode (right side)
+ dw:1, // dual watch
+ audio:1, // audio output mode (stereo/mono)
+ unknown2:1,
+ workmoda:1; // work mode (left side)
+ u8 scansb:1, // scan stop beep
+ aftone:3, // af tone control
+ scand:1, // scan directon
+ scanr:3; // scan resume
+ u8 rxexp:1, // rx expansion
+ ptt:1, // ptt mode
+ display:1, // display select (frequency/clock)
+ omode:1, // operaton mode
+ beep:2, // beep volume
+ spkr:2; // speaker
+ u8 cpuclk:1, // operating mode(cpu clock)
+ fkey:3, // fkey function
+ mrscan:1, // memory scan type
+ color:3; // lcd backlight color
+ u8 vox:2, // vox
+ voxs:3, // vox sensitivity
+ mgain:3; // mic gain
+ u8 wbandb:4, // work band (right side)
+ wbanda:4; // work band (left side)
+ u8 sqlb:4, // squelch level (right side)
+ sqla:4; // squelch level (left side)
+ u8 apo:4, // auto power off
+ ars:1, // automatic repeater shift
+ tot:3; // time out timer
+ u8 stepb:4, // auto step (right side)
+ stepa:4; // auto step (left side)
+ u8 rxcoverm:1, // rx coverage-memory
+ lcdc:3, // lcd contrast
+ rxcoverv:1, // rx coverage-vfo
+ lcdb:3; // lcd brightness
+ u8 smode:1, // smart function mode
+ timefmt:1, // time format
+ datefmt:2, // date format
+ timesig:1, // time signal
+ keyb:3; // key/led brightness
+ u8 dwstop:1, // dual watch stop
+ unknown3:1,
+ sqlexp:1, // sql expansion
+ decbandsel:1, // decoding band select
+ dtmfmodenc:1, // dtmf mode encode
+ bell:3; // bell ringer
+ u8 unknown4:2,
+ btime:6; // lcd backlight time
+ u8 unknown5:2,
+ tz:6; // time zone
+ u8 unknown618E;
+ u8 unknown618F;
+ ul16 offseta; // work offset (left side)
+ ul16 offsetb; // work offset (right side)
+ ul16 mrcha; // selected memory channel (left)
+ ul16 mrchb; // selected memory channel (right)
+ ul16 wpricha; // work priority channel (left)
+ ul16 wprichb; // work priority channel (right)
+ u8 unknown6:3,
+ datasql:2, // data squelch
+ dataspd:1, // data speed
+ databnd:2; // data band select
+ u8 unknown7:1,
+ pfkey2:3, // mic p2 key
+ unknown8:1,
+ pfkey1:3; // mic p1 key
+ u8 unknown9:1,
+ pfkey4:3, // mic p4 key
+ unknowna:1,
+ pfkey3:3; // mic p3 key
+ u8 unknownb:7,
+ dtmfmoddec:1; // dtmf mode decode
+} settings;
+
+#seekto 0x61B0;
+struct {
+ char line16[16];
+} poweron_msg;
+
+#seekto 0x6300;
+struct {
+ u8 unknown1:3,
+ ttdgt:5; // dtmf digit time
+ u8 unknown2:3,
+ ttint:5; // dtmf interval time
+ u8 unknown3:3,
+ tt1stdgt:5; // dtmf 1st digit time
+ u8 unknown4:3,
+ tt1stdly:5; // dtmf 1st digit delay
+ u8 unknown5:3,
+ ttdlyqt:5; // dtmf delay when use qt
+ u8 unknown6:3,
+ ttdkey:5; // dtmf d key function
+ u8 unknown7;
+ u8 unknown8:4,
+ ttautod:4; // dtmf auto dial group
+} dtmf;
+
+#seekto 0x6330;
+struct {
+ u8 unknown1:7,
+ ttsig:1; // dtmf signal
+ u8 unknown2:4,
+ ttintcode:4; // dtmf interval code
+ u8 unknown3:5,
+ ttgrpcode:3; // dtmf group code
+ u8 unknown4:4,
+ ttautorst:4; // dtmf auto reset time
+ u8 unknown5:5,
+ ttalert:3; // dtmf alert tone/transpond
+} dtmf2;
+
+#seekto 0x6360;
+struct {
+ u8 code1[8]; // dtmf code
+ u8 code1_len; // dtmf code length
+ u8 unknown1[7];
+ u8 code2[8]; // dtmf code
+ u8 code2_len; // dtmf code length
+ u8 unknown2[7];
+ u8 code3[8]; // dtmf code
+ u8 code3_len; // dtmf code length
+ u8 unknown3[7];
+ u8 code4[8]; // dtmf code
+ u8 code4_len; // dtmf code length
+ u8 unknown4[7];
+ u8 code5[8]; // dtmf code
+ u8 code5_len; // dtmf code length
+ u8 unknown5[7];
+ u8 code6[8]; // dtmf code
+ u8 code6_len; // dtmf code length
+ u8 unknown6[7];
+ u8 code7[8]; // dtmf code
+ u8 code7_len; // dtmf code length
+ u8 unknown7[7];
+ u8 code8[8]; // dtmf code
+ u8 code8_len; // dtmf code length
+ u8 unknown8[7];
+ u8 code9[8]; // dtmf code
+ u8 code9_len; // dtmf code length
+ u8 unknown9[7];
+} dtmfcode;
+
+"""
+
+MEM_SIZE = 0x8000
+BLOCK_SIZE = 0x40
+MODES = ["FM", "Auto", "NFM", "AM"]
+SKIP_VALUES = ["", "S"]
+TONES = chirp_common.TONES
+DTCS_CODES = chirp_common.DTCS_CODES
+NAME_LENGTH = 6
+DTMF_CHARS = list("0123456789ABCD*#")
+STIMEOUT = 1
+
+# valid chars on the LCD
+VALID_CHARS = chirp_common.CHARSET_ALPHANUMERIC + \
+ "`{|}!\"#$%&'()*+,-./:;<=>?@[]^_"
+
+# Power Levels
+POWER_LEVELS = [chirp_common.PowerLevel("Low", watts=5),
+ chirp_common.PowerLevel("Mid", watts=20),
+ chirp_common.PowerLevel("High", watts=50)]
+
+# B-TECH UV-50X3 id string
+UV50X3_id = "VGC6600MD"
+
+
+def _clean_buffer(radio):
+ radio.pipe.timeout = 0.005
+ junk = radio.pipe.read(256)
+ radio.pipe.timeout = STIMEOUT
+ if junk:
+ Log.debug("Got %i bytes of junk before starting" % len(junk))
+
+
+def _check_for_double_ack(radio):
+ radio.pipe.timeout = 0.005
+ c = radio.pipe.read(1)
+ radio.pipe.timeout = STIMEOUT
+ if c and c != '\x06':
+ _exit_program_mode(radio)
+ raise errors.RadioError('Expected nothing or ACK, got %r' % c)
+
+
+def _rawrecv(radio, amount):
+ """Raw read from the radio device"""
+ data = ""
+ try:
+ data = radio.pipe.read(amount)
+ except:
+ _exit_program_mode(radio)
+ msg = "Generic error reading data from radio; check your cable."
+ raise errors.RadioError(msg)
+
+ if len(data) != amount:
+ _exit_program_mode(radio)
+ msg = "Error reading data from radio: not the amount of data we want."
+ raise errors.RadioError(msg)
+
+ return data
+
+
+def _rawsend(radio, data):
+ """Raw send to the radio device"""
+ try:
+ radio.pipe.write(data)
+ except:
+ raise errors.RadioError("Error sending data to radio")
+
+
+def _make_frame(cmd, addr, length, data=""):
+ """Pack the info in the headder format"""
+ frame = struct.pack(">BHB", ord(cmd), addr, length)
+ # add the data if set
+ if len(data) != 0:
+ frame += data
+ # return the data
+ return frame
+
+
+def _recv(radio, addr, length=BLOCK_SIZE):
+ """Get data from the radio """
+ # read 4 bytes of header
+ hdr = _rawrecv(radio, 4)
+
+ # check for unexpected extra command byte
+ c, a, l = struct.unpack(">BHB", hdr)
+ if hdr[0:2] == "WW" and a != addr:
+ # extra command byte detected
+ # throw away the 1st byte and add the next byte in the buffer
+ hdr = hdr[1:] + _rawrecv(radio, 1)
+
+ # read 64 bytes (0x40) of data
+ data = _rawrecv(radio, (BLOCK_SIZE))
+
+ # DEBUG
+ LOG.info("Response:")
+ LOG.debug(util.hexprint(hdr + data))
+
+ c, a, l = struct.unpack(">BHB", hdr)
+ if a != addr or l != length or c != ord("W"):
+ _exit_program_mode(radio)
+ LOG.error("Invalid answer for block 0x%04x:" % addr)
+ LOG.debug("CMD: %s ADDR: %04x SIZE: %02x" % (c, a, l))
+ raise errors.RadioError("Unknown response from the radio")
+
+ return data
+
+
+def _do_ident(radio):
+ """Put the radio in PROGRAM mode & identify it"""
+ # set the serial discipline
+ radio.pipe.baudrate = 115200
+ radio.pipe.parity = "N"
+ radio.pipe.timeout = STIMEOUT
+
+ # flush input buffer
+ _clean_buffer(radio)
+
+ magic = "V66LINK"
+
+ _rawsend(radio, magic)
+
+ # Ok, get the ident string
+ ident = _rawrecv(radio, 9)
+
+ # check if ident is OK
+ if ident != radio.IDENT:
+ # bad ident
+ msg = "Incorrect model ID, got this:"
+ msg += util.hexprint(ident)
+ LOG.debug(msg)
+ raise errors.RadioError("Radio identification failed.")
+
+ # DEBUG
+ LOG.info("Positive ident, got this:")
+ LOG.debug(util.hexprint(ident))
+
+ return True
+
+
+def _exit_program_mode(radio):
+ endframe = "\x45"
+ _rawsend(radio, endframe)
+
+
+def _download(radio):
+ """Get the memory map"""
+
+ # put radio in program mode and identify it
+ _do_ident(radio)
+
+ # UI progress
+ status = chirp_common.Status()
+ status.cur = 0
+ status.max = MEM_SIZE / BLOCK_SIZE
+ status.msg = "Cloning from radio..."
+ radio.status_fn(status)
+
+ data = ""
+ for addr in range(0, MEM_SIZE, BLOCK_SIZE):
+ frame = _make_frame("R", addr, BLOCK_SIZE)
+ # DEBUG
+ LOG.info("Request sent:")
+ LOG.debug(util.hexprint(frame))
+
+ # sending the read request
+ _rawsend(radio, frame)
+
+ # now we read
+ d = _recv(radio, addr)
+
+ # aggregate the data
+ data += d
+
+ # UI Update
+ status.cur = addr / BLOCK_SIZE
+ status.msg = "Cloning from radio..."
+ radio.status_fn(status)
+
+ _exit_program_mode(radio)
+
+ return data
+
+
+def _upload(radio):
+ """Upload procedure"""
+
+ MEM_SIZE = 0x7000
+
+ # put radio in program mode and identify it
+ _do_ident(radio)
+
+ # UI progress
+ status = chirp_common.Status()
+ status.cur = 0
+ status.max = MEM_SIZE / BLOCK_SIZE
+ status.msg = "Cloning to radio..."
+ radio.status_fn(status)
+
+ # the fun start here
+ for addr in range(0, MEM_SIZE, BLOCK_SIZE):
+ # sending the data
+ data = radio.get_mmap()[addr:addr + BLOCK_SIZE]
+
+ frame = _make_frame("W", addr, BLOCK_SIZE, data)
+
+ _rawsend(radio, frame)
+
+ # receiving the response
+ ack = _rawrecv(radio, 1)
+ if ack != "\x06":
+ _exit_program_mode(radio)
+ msg = "Bad ack writing block 0x%04x" % addr
+ raise errors.RadioError(msg)
+
+ _check_for_double_ack(radio)
+
+ # UI Update
+ status.cur = addr / BLOCK_SIZE
+ status.msg = "Cloning to radio..."
+ radio.status_fn(status)
+
+ _exit_program_mode(radio)
+
+
+def model_match(cls, data):
+ """Match the opened/downloaded image to the correct version"""
+ rid = data[0x6140:0x6148]
+
+ #if rid in cls._fileid:
+ if rid in cls.IDENT:
+ return True
+
+ return False
+
+
+class VGCStyleRadio(chirp_common.CloneModeRadio,
+ chirp_common.ExperimentalRadio):
+ """BTECH's UV-50X3"""
+ VENDOR = "BTECH"
+ _air_range = (108000000, 136000000)
+ _vhf_range = (136000000, 174000000)
+ _vhf2_range = (174000000, 250000000)
+ _220_range = (222000000, 225000000)
+ _gen1_range = (300000000, 400000000)
+ _uhf_range = (400000000, 480000000)
+ _gen2_range = (480000000, 520000000)
+ _upper = 499
+ MODEL = ""
+ IDENT = ""
+
+ @classmethod
+ def get_prompts(cls):
+ rp = chirp_common.RadioPrompts()
+ rp.experimental = \
+ ('The UV-50X3 driver is a beta version.\n'
+ '\n'
+ 'Please save an unedited copy of your first successful\n'
+ 'download to a CHIRP Radio Images(*.img) file.'
+ )
+ rp.pre_download = _(dedent("""\
+ Follow this instructions to download your info:
+
+ 1 - Turn off your radio
+ 2 - Connect your interface cable
+ 3 - Turn on your radio
+ 4 - Do the download of your radio data
+ """))
+ rp.pre_upload = _(dedent("""\
+ Follow this instructions to upload your info:
+
+ 1 - Turn off your radio
+ 2 - Connect your interface cable
+ 3 - Turn on your radio
+ 4 - Do the upload of your radio data
+ """))
+ return rp
+
+ def get_features(self):
+ rf = chirp_common.RadioFeatures()
+ rf.has_settings = False
+ rf.has_bank = False
+ rf.has_tuning_step = False
+ rf.can_odd_split = True
+ rf.has_name = True
+ rf.has_offset = True
+ rf.has_mode = True
+ rf.has_dtcs = True
+ rf.has_rx_dtcs = True
+ rf.has_dtcs_polarity = True
+ rf.has_ctone = True
+ rf.has_cross = True
+ rf.has_sub_devices = self.VARIANT == ""
+ rf.valid_modes = MODES
+ rf.valid_characters = VALID_CHARS
+ rf.valid_duplexes = ["", "-", "+", "split", "off"]
+ rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS', 'Cross']
+ rf.valid_cross_modes = [
+ "Tone->Tone",
+ "DTCS->",
+ "->DTCS",
+ "Tone->DTCS",
+ "DTCS->Tone",
+ "->Tone",
+ "DTCS->DTCS"]
+ rf.valid_power_levels = POWER_LEVELS
+ rf.valid_skips = SKIP_VALUES
+ rf.valid_name_length = NAME_LENGTH
+ rf.valid_dtcs_codes = DTCS_CODES
+ rf.valid_bands = [self._air_range,
+ self._vhf_range,
+ self._vhf2_range,
+ self._220_range,
+ self._gen1_range,
+ self._uhf_range,
+ self._gen2_range]
+ rf.memory_bounds = (0, self._upper)
+ return rf
+
+ def get_sub_devices(self):
+ return [UV50X3Left(self._mmap), UV50X3Right(self._mmap)]
+
+ def sync_in(self):
+ """Download from radio"""
+ try:
+ data = _download(self)
+ except errors.RadioError:
+ # Pass through any real errors we raise
+ raise
+ except:
+ # If anything unexpected happens, make sure we raise
+ # a RadioError and log the problem
+ LOG.exception('Unexpected error during download')
+ raise errors.RadioError('Unexpected error communicating '
+ 'with the radio')
+ self._mmap = memmap.MemoryMap(data)
+ self.process_mmap()
+
+ def sync_out(self):
+ """Upload to radio"""
+ try:
+ _upload(self)
+ except:
+ # If anything unexpected happens, make sure we raise
+ # a RadioError and log the problem
+ LOG.exception('Unexpected error during upload')
+ raise errors.RadioError('Unexpected error communicating '
+ 'with the radio')
+
+ def process_mmap(self):
+ """Process the mem map into the mem object"""
+ self._memobj = bitwise.parse(MEM_FORMAT, self._mmap)
+
+ def get_raw_memory(self, number):
+ return repr(self._memobj.memory[number])
+
+ def decode_tone(self, val):
+ """Parse the tone data to decode from mem, it returns:
+ Mode (''|DTCS|Tone), Value (None|###), Polarity (None,N,R)"""
+ if val.get_raw() == "\xFF\xFF":
+ return '', None, None
+
+ val = int(val)
+ if val >= 12000:
+ a = val - 12000
+ return 'DTCS', a, 'R'
+ elif val >= 8000:
+ a = val - 8000
+ return 'DTCS', a, 'N'
+ else:
+ a = val / 10.0
+ return 'Tone', a, None
+
+ def encode_tone(self, memval, mode, value, pol):
+ """Parse the tone data to encode from UI to mem"""
+ 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 _memory_obj(self, suffix=""):
+ return getattr(self._memobj, "%s_memory%s" % (self._vfo, suffix))
+
+ def _name_obj(self, suffix=""):
+ return getattr(self._memobj, "%s_names%s" % (self._vfo, suffix))
+
+ def _scan_obj(self, suffix=""):
+ return getattr(self._memobj, "%s_scanflags%s" % (self._vfo, suffix))
+
+ def _used_obj(self, suffix=""):
+ return getattr(self._memobj, "%s_usedflags%s" % (self._vfo, suffix))
+
+ def get_memory(self, number):
+ """Get the mem representation from the radio image"""
+ bitpos = (1 << (number % 8))
+ bytepos = (number / 8)
+
+ _mem = self._memory_obj()[number]
+ _names = self._name_obj()[number]
+ _scn = self._scan_obj()[bytepos]
+ _usd = self._used_obj()[bytepos]
+
+ isused = bitpos & int(_usd)
+ isscan = bitpos & int(_scn)
+
+ # Create a high-level memory object to return to the UI
+ mem = chirp_common.Memory()
+
+ # Memory number
+ mem.number = number
+
+ if not isused:
+ mem.empty = True
+ return mem
+
+ # Freq and offset
+ mem.freq = int(_mem.rxfreq) * 10
+ # tx freq can be blank
+ if _mem.get_raw()[4] == "\xFF":
+ # TX freq not set
+ mem.offset = 0
+ mem.duplex = "off"
+ else:
+ # TX feq set
+ offset = (int(_mem.txfreq) * 10) - mem.freq
+ if offset < 0:
+ mem.offset = abs(offset)
+ mem.duplex = "-"
+ elif offset > 0:
+ mem.offset = offset
+ mem.duplex = "+"
+ else:
+ mem.offset = 0
+
+ # skip
+ if not isscan:
+ mem.skip = "S"
+
+ # name TAG of the channel
+ mem.name = str(_names.name).strip("\xFF")
+
+ # power
+ mem.power = POWER_LEVELS[int(_mem.txp)]
+
+ # wide/narrow
+ mem.mode = MODES[int(_mem.wn)]
+
+ # tone data
+ rxtone = txtone = None
+ txtone = self.decode_tone(_mem.txtone)
+ rxtone = self.decode_tone(_mem.rxtone)
+ chirp_common.split_tone_decode(mem, txtone, rxtone)
+
+ # Extra
+ mem.extra = RadioSettingGroup("extra", "Extra")
+
+ bcl = RadioSetting("bcl", "Busy channel lockout",
+ RadioSettingValueBoolean(bool(_mem.bcl)))
+ mem.extra.append(bcl)
+
+ revert = RadioSetting("revert", "Revert",
+ RadioSettingValueBoolean(bool(_mem.revert)))
+ mem.extra.append(revert)
+
+ dname = RadioSetting("dname", "Display name",
+ RadioSettingValueBoolean(bool(_mem.dname)))
+ mem.extra.append(dname)
+
+ return mem
+
+ def set_memory(self, mem):
+ """Set the memory data in the eeprom img from the UI"""
+ bitpos = (1 << (mem.number % 8))
+ bytepos = (mem.number / 8)
+
+ _mem = self._memory_obj()[mem.number]
+ _names = self._name_obj()[mem.number]
+ _scn = self._scan_obj()[bytepos]
+ _usd = self._used_obj()[bytepos]
+
+ if mem.empty:
+ _usd &= ~bitpos
+ _scn &= ~bitpos
+ _mem.set_raw("\xFF" * 16)
+ _names.name = ("\xFF" * 6)
+ return
+ else:
+ _usd |= bitpos
+
+ # frequency
+ _mem.rxfreq = mem.freq / 10
+
+ # duplex
+ if mem.duplex == "+":
+ _mem.txfreq = (mem.freq + mem.offset) / 10
+ elif mem.duplex == "-":
+ _mem.txfreq = (mem.freq - mem.offset) / 10
+ elif mem.duplex == "off":
+ for i in _mem.txfreq:
+ i.set_raw("\xFF")
+ elif mem.duplex == "split":
+ _mem.txfreq = mem.offset / 10
+ else:
+ _mem.txfreq = mem.freq / 10
+
+ # tone data
+ ((txmode, txtone, txpol), (rxmode, rxtone, rxpol)) = \
+ chirp_common.split_tone_encode(mem)
+ self.encode_tone(_mem.txtone, txmode, txtone, txpol)
+ self.encode_tone(_mem.rxtone, rxmode, rxtone, rxpol)
+
+ # name TAG of the channel
+ _names.name = mem.name.ljust(6, "\xFF")
+
+ # power level, # default power level is low
+ _mem.txp = 0 if mem.power is None else POWER_LEVELS.index(mem.power)
+
+ # wide/narrow
+ _mem.wn = MODES.index(mem.mode)
+
+ if mem.skip == "S":
+ _scn &= ~bitpos
+ else:
+ _scn |= bitpos
+
+ # autoset display to display name if filled
+ if mem.extra:
+ # mem.extra only seems to be populated when called from edit panel
+ dname = mem.extra["dname"]
+ else:
+ dname = None
+ if mem.name:
+ _mem.dname = True
+ if dname and not dname.changed():
+ dname.value = True
+ else:
+ _mem.dname = False
+ if dname and not dname.changed():
+ dname.value = False
+
+ # reseting unknowns, this has to be set by hand
+ _mem.unknown0 = 0
+ _mem.unknown1 = 0
+ _mem.unknown2 = 0
+ _mem.unknown3 = 0
+
+ # extra settings
+ if len(mem.extra) > 0:
+ # there are setting, parse
+ for setting in mem.extra:
+ setattr(_mem, setting.get_name(), setting.value)
+ else:
+ # there are no extra settings, load defaults
+ _mem.bcl = 0
+ _mem.revert = 0
+ _mem.dname = 1
+
+
+ @classmethod
+ def match_model(cls, filedata, filename):
+ match_size = False
+ match_model = False
+
+ # testing the file data size
+ if len(filedata) == MEM_SIZE:
+ match_size = True
+
+ # testing the firmware model fingerprint
+ match_model = model_match(cls, filedata)
+
+ if match_size and match_model:
+ return True
+ else:
+ return False
+
+
+(a)directory.register
+class UV50X3(VGCStyleRadio):
+ """BTech UV-50X3"""
+ MODEL = "UV-50X3"
+ IDENT = UV50X3_id
+
+
+class UV50X3Left(UV50X3):
+ VARIANT = "Left"
+ _vfo = "left"
+
+
+class UV50X3Right(UV50X3):
+ VARIANT = "Right"
+ _vfo = "right"
2
2
Tested changes:
[Tom Hayward <tom(a)tomh.us>] [ui] Replace / with _ in default filenames. Fixes #3797. Related to #3753
The FT-857/897 driver has a slash in the model name. When used in the
filename, this slash is interpreted as a directory on Linux and implodes
on Windows. Neither is intended behavior.
This patch substitues an underscore for a slash when generating a default
filename.
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 62236873e87473bc926b06ac2aafab9a7926eec0
[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 62236873e87473bc926b06ac2aafab9a7926eec0
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson4098641001203720197.sh
[workspace] $ /bin/sh -xe /tmp/hudson8638317441185433816.sh
+ PATH=/usr/bin:/bin:/usr/local/bin ./run_all_tests.sh
test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok
test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok
test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok
test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok
test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok
test_init (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok
test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok
test_changed (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok
test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok
test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
----------------------------------------------------------------------
Ran 151 tests in 0.053s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/drivers/ft2900.py:1236:1: E265 block comment should start with '# '
./chirp/drivers/ft60.py:521:45: W291 trailing whitespace
./chirp/drivers/ft60.py:522:25: E128 continuation line under-indented for visual indent
./chirp/drivers/ft60.py:523:13: E301 expected 1 blank line, found 0
./chirp/drivers/ft817.py:587:41: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:684:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:688:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:691:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:692:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:695:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:696:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:699:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:702:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:705:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:708:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:711:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:714:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:717:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:720:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:721:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:724:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:725:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:728:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:731:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:732:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:735:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:736:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:739:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:740:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:743:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:744:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:747:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:750:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:753:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:754:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:757:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:758:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:761:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:764:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:767:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:768:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:771:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:772:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:775:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:776:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:779:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:782:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:783:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:786:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:789:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:790:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:793:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:794:29: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:810:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:811:31: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:814:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:817:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:821:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:827:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:832:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:836:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:840:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:844:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:848:25: E128 continuation line under-indented for visual indent
./chirp/drivers/kguv8d.py:893:25: E128 continuation line under-indented for visual indent
./chirp/drivers/thd72.py:188:1: E302 expected 2 blank lines, found 1
./chirp/drivers/thd72.py:203:23: E201 whitespace after '['
./chirp/drivers/thd72.py:203:80: E501 line too long (171 > 79 characters)
./chirp/drivers/thd72.py:203:170: E202 whitespace before ']'
./chirp/drivers/thd72.py:204:13: E201 whitespace after '['
./chirp/drivers/thd72.py:204:61: E202 whitespace before ']'
./chirp/drivers/thd72.py:205:23: E201 whitespace after '['
./chirp/drivers/thd72.py:205:74: E202 whitespace before ']'
./chirp/drivers/thd72.py:206:18: E201 whitespace after '['
./chirp/drivers/thd72.py:206:65: E202 whitespace before ']'
./chirp/drivers/thd72.py:595:1: W293 blank line contains whitespace
./chirp/drivers/thd72.py:603:1: W293 blank line contains whitespace
./chirp/ui/mainapp.py:647:13: E128 continuation line under-indented for visual indent
./chirp/ui/mainapp.py:661:5: E303 too many blank lines (2)
./chirp/ui/mainapp.py:1374:80: E501 line too long (81 > 79 characters)
./chirp/ui/mainapp.py:1378:80: E501 line too long (80 > 79 characters)
./chirp/ui/mainapp.py:1663:80: E501 line too long (85 > 79 characters)
real 0m7.505s
user 0m7.350s
sys 0m0.081s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-07-05 15:52:35,590] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 14.04.4 LTS (Python 2.7.6)
[2016-07-05 15:52:35,601] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-07-05 15:52:35,601] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-07-05 15:52:35,601] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-07-05 15:52:35,601] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-07-05 15:52:35,601] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-07-05 15:52:35,601] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-07-05 15:52:35,601] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-07-05 15:52:35,601] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-07-05 15:52:35,601] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-07-05 15:52:35,601] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-07-05 15:52:35,601] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-07-05 15:52:35,602] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-07-05 15:52:35,602] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-07-05 15:52:35,602] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-07-05 15:52:35,602] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-07-05 15:52:35,602] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-07-05 15:52:35,602] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-07-05 15:52:35,602] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-07-05 15:52:35,602] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-07-05 15:52:35,603] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-07-05 15:52:35,603] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-07-05 15:52:35,603] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-07-05 15:52:35,603] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-07-05 15:52:35,603] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-07-05 15:52:35,603] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-07-05 15:52:35,603] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-07-05 15:52:35,604] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-07-05 15:52:35,604] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-07-05 15:52:35,604] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-07-05 15:52:35,604] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-07-05 15:52:35,604] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-07-05 15:52:35,604] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-07-05 15:52:35,605] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-07-05 15:52:35,605] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-07-05 15:52:35,605] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-07-05 15:52:35,606] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-07-05 15:52:35,606] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-07-05 15:52:35,606] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-07-05 15:52:35,606] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-07-05 15:52:35,606] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-07-05 15:52:35,607] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-07-05 15:52:35,607] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-07-05 15:52:35,607] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-07-05 15:52:35,607] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-07-05 15:52:35,607] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-07-05 15:52:35,607] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-07-05 15:52:35,607] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-07-05 15:52:35,608] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-07-05 15:52:35,608] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-07-05 15:52:35,608] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-07-05 15:52:35,608] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-07-05 15:52:35,608] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-07-05 15:52:35,608] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-07-05 15:52:35,608] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-07-05 15:52:35,608] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-07-05 15:52:35,608] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-07-05 15:52:35,609] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-07-05 15:52:35,609] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-07-05 15:52:35,609] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-07-05 15:52:35,609] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-07-05 15:52:35,610] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-07-05 15:52:35,610] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-07-05 15:52:35,610] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-07-05 15:52:35,611] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-07-05 15:52:35,611] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-07-05 15:52:35,612] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-07-05 15:52:35,612] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-07-05 15:52:35,612] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-07-05 15:52:35,612] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-07-05 15:52:35,612] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-07-05 15:52:35,613] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-07-05 15:52:35,613] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-07-05 15:52:35,613] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-07-05 15:52:35,613] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-07-05 15:52:35,613] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-07-05 15:52:35,614] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-07-05 15:52:35,614] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-07-05 15:52:35,614] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-07-05 15:52:35,615] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-07-05 15:52:35,615] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-07-05 15:52:35,620] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-07-05 15:52:35,623] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-07-05 15:52:35,624] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-07-05 15:52:35,624] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-07-05 15:52:35,624] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-07-05 15:52:35,624] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-07-05 15:52:35,624] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-07-05 15:52:35,625] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-07-05 15:52:35,625] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-07-05 15:52:35,625] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-07-05 15:52:35,626] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-07-05 15:52:35,626] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-07-05 15:52:35,626] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-07-05 15:52:35,626] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-07-05 15:52:35,626] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-07-05 15:52:35,627] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-07-05 15:52:35,627] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-07-05 15:52:35,627] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-07-05 15:52:35,627] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-07-05 15:52:35,627] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-07-05 15:52:35,628] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-07-05 15:52:35,628] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-07-05 15:52:35,628] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-07-05 15:52:35,628] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-07-05 15:52:35,629] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-07-05 15:52:35,629] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-07-05 15:52:35,629] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-07-05 15:52:35,630] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-07-05 15:52:35,630] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-07-05 15:52:35,630] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-07-05 15:52:35,630] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-07-05 15:52:35,630] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-07-05 15:52:35,630] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-07-05 15:52:35,631] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-07-05 15:52:35,631] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-07-05 15:52:35,631] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-07-05 15:52:35,631] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-07-05 15:52:35,632] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-07-05 15:52:35,632] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-07-05 15:52:35,632] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-07-05 15:52:35,632] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-07-05 15:52:35,632] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-07-05 15:52:35,632] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-07-05 15:52:35,633] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-07-05 15:52:35,633] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-07-05 15:52:35,633] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-07-05 15:52:35,634] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-07-05 15:52:35,634] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-07-05 15:52:35,634] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-07-05 15:52:35,634] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-07-05 15:52:35,634] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-07-05 15:52:35,634] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-07-05 15:52:35,634] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-07-05 15:52:35,634] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-07-05 15:52:35,634] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-07-05 15:52:35,635] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-07-05 15:52:35,635] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-07-05 15:52:35,635] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-07-05 15:52:35,635] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-07-05 15:52:35,635] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-07-05 15:52:35,635] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-07-05 15:52:35,636] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-07-05 15:52:35,637] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-07-05 15:52:35,637] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-07-05 15:52:35,637] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-07-05 15:52:35,637] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-07-05 15:52:35,637] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-07-05 15:52:35,637] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-07-05 15:52:35,637] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-07-05 15:52:35,637] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-07-05 15:52:35,637] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-07-05 15:52:35,637] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-07-05 15:52:35,638] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-07-05 15:52:35,638] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-07-05 15:52:35,638] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-07-05 15:52:35,638] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-07-05 15:52:35,638] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-07-05 15:52:35,639] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-07-05 15:52:35,639] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-07-05 15:52:35,639] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-07-05 15:52:35,640] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-07-05 15:52:35,640] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-07-05 15:52:35,640] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-07-05 15:52:35,641] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-07-05 15:52:35,641] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-07-05 15:52:35,641] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-07-05 15:52:35,641] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
+ rm /tmp/Alinco_DJ175_S6G7fb.img /tmp/Alinco_DJ175_XAlH6m.img /tmp/Alinco_DJ596_b4sVbW.img /tmp/Alinco_DJ596_kq8vmI.img /tmp/Alinco_DR235T_NYmRb8.img /tmp/Alinco_DR235T_da11sT.img /tmp/AnyTone_OBLTR-8R_FqhgoH.img /tmp/AnyTone_OBLTR-8R_n3TVcW.img /tmp/AnyTone_TERMN-8R__yV8PN.img /tmp/AnyTone_TERMN-8R_b7TTMV.img /tmp/BTECH_UV-2501+220_8aFerZ.img /tmp/BTECH_UV-2501+220_CkyWDX.img /tmp/BTECH_UV-5001_8m39Yi.img /tmp/BTECH_UV-5001_oi63Lq.img /tmp/Baofeng_BF-888_b6_wp7.img /tmp/Baofeng_BF-888_st3Uhd.img /tmp/Baofeng_F-11_GVPvp9.img /tmp/Baofeng_F-11_ja86Bb.img /tmp/Baofeng_UV-3R_6S2xCL.img /tmp/Baofeng_UV-3R_RUfU5Q.img /tmp/Baofeng_UV-5R_84GkSI.img /tmp/Baofeng_UV-5R_Ck_Q59.img /tmp/Baofeng_UV-B5_NaEOsr.img /tmp/Baofeng_UV-B5_Y2toKQ.img /tmp/Baojie_BJ-9900_2zfbNY.img /tmp/Baojie_BJ-9900_Gs7iGl.img /tmp/Baojie_BJ-9900_OxTlcr.img /tmp/Baojie_BJ-9900_Q7GtrB.img /tmp/Baojie_BJ-9900_nLGXDL.img /tmp/Baojie_BJ-9900_pB72cT.img /tmp/Feidaxin_FD-268A_KJZP96.img /tmp/Feidaxin_FD-268A_lJS80R.img /tmp/Feidaxin_FD-268B_ClKQ9Q.img /tmp/Feidaxin_FD-268B_aFxjm2.img /tmp/Feidaxin_FD-288B_qslPP5.img /tmp/Feidaxin_FD-288B_wglmMn.img /tmp/Icom_IC-208H_bH_Ezm.img /tmp/Icom_IC-208H_hQYnUd.img /tmp/Icom_IC-2100H_CbjIGr.img /tmp/Icom_IC-2100H_YJeBzr.img /tmp/Icom_IC-2200H_QIHuw8.img /tmp/Icom_IC-2200H_g0FRsa.img /tmp/Icom_IC-2720H_HNsUnH.img /tmp/Icom_IC-2720H_P13xNE.img /tmp/Icom_IC-2820H_OG2kO4.img /tmp/Icom_IC-2820H_zPYPHv.img /tmp/Icom_IC-Q7A_YWktGv.img /tmp/Icom_IC-Q7A_qg7iwi.img /tmp/Icom_IC-T70_YJW5L3.img /tmp/Icom_IC-T70_buvp5o.img /tmp/Icom_IC-T7H_9F10gC.img /tmp/Icom_IC-T7H_y5Tinw.img /tmp/Icom_IC-T8A_AA1Ct_.img /tmp/Icom_IC-T8A_EfTAua.img /tmp/Icom_IC-V82_U82_cNBt3g.img /tmp/Icom_IC-V82_U82_mrz5F2.img /tmp/Icom_IC-W32A_4JzKjr.img /tmp/Icom_IC-W32A_ASyB_k.img /tmp/Icom_IC-W32A_DGcKcY.img /tmp/Icom_IC-W32A_RkvdZ4.img /tmp/Icom_IC-W32A_cM4ZIW.img /tmp/Icom_IC-W32A_dnzb03.img /tmp/Icom_IC-W32E_AscdEc.img /tmp/Icom_IC-W32E_FMgDmf.img /tmp/Icom_IC-W32E_UunsLf.img /tmp/Icom_IC-W32E__aLr18.img /tmp/Icom_IC-W32E_eCfdrd.img /tmp/Icom_IC-W32E_q06NKY.img /tmp/Icom_ID-31A_AzNNfJ.img /tmp/Icom_ID-31A_pfsrqy.img /tmp/Icom_ID-51 Plus_Bq8so9.img /tmp/Icom_ID-51 Plus_KZtMoj.img /tmp/Icom_ID-51_38iIGO.img /tmp/Icom_ID-51_YIjF1u.img /tmp/Icom_ID-800H_5Ci1Ey.img /tmp/Icom_ID-800H_U0Z6qY.img /tmp/Icom_ID-880H_1oZJ3w.img /tmp/Icom_ID-880H_ek36TP.img /tmp/Jetstream_JT220M_7hqR7k.img /tmp/Jetstream_JT220M_iCaC_W.img /tmp/Jetstream_JT270M_Xqj_GM.img /tmp/Jetstream_JT270M_eGGp_p.img /tmp/KYD_IP-620_F_nm6g.img /tmp/KYD_IP-620_K8HWMM.img /tmp/Kenwood_TH-D72 (clone mode)_yv53km.img /tmp/Kenwood_TH-D72 (clone mode)_zyLwRb.img /tmp/Kenwood_TK-272G_4L4Vip.img /tmp/Kenwood_TK-272G_guqVdC.img /tmp/Kenwood_TK-760G_79FarF.img /tmp/Kenwood_TK-760G_iRFLeK.img /tmp/Kenwood_TK-8102_Ip5PbB.img /tmp/Kenwood_TK-8102_snWUcr.img /tmp/Leixen_VV-898_C1lycj.img /tmp/Leixen_VV-898_Pryfd1.img /tmp/Polmar_DB-50M_1hTYl8.img /tmp/Polmar_DB-50M_ULIq6w.img /tmp/Puxing_PX-2R_4540xm.img /tmp/Puxing_PX-2R_rsLL5W.img /tmp/Puxing_PX-777_6FwnQT.img /tmp/Puxing_PX-777_H4tQd1.img /tmp/TYT_TH-7800_Xm_02y.img /tmp/TYT_TH-7800_irVti_.img /tmp/TYT_TH-9800_ev0t6B.img /tmp/TYT_TH-9800_pP2Yr2.img /tmp/TYT_TH-UV3R-25_fB_8VQ.img /tmp/TYT_TH-UV3R-25_nI2dJi.img /tmp/TYT_TH-UV3R_A1M1Ts.img /tmp/TYT_TH-UV3R_oZ6Ntw.img /tmp/TYT_TH-UVF1_KwRf6X.img /tmp/TYT_TH-UVF1_OOonT0.img /tmp/TYT_TH9000_144_7KIsl1.img /tmp/TYT_TH9000_144_PMG4vx.img /tmp/Vertex Standard_VXA-700_3K9mTW.img /tmp/Vertex Standard_VXA-700_wNOdBX.img /tmp/WACCOM_MINI-8900_DQ5T04.img /tmp/WACCOM_MINI-8900_yNA6Fg.img /tmp/Wouxun_KG-816_6JvK4G.img /tmp/Wouxun_KG-816_Sos2Vd.img /tmp/Wouxun_KG-818_ZK7XDl.img /tmp/Wouxun_KG-818_cN_UHi.img /tmp/Wouxun_KG-UV6_Eli7eg.img /tmp/Wouxun_KG-UV6_c910NG.img /tmp/Wouxun_KG-UV8D_8LD084.img /tmp/Wouxun_KG-UV8D_aj3aCQ.img /tmp/Wouxun_KG-UVD1P_AffuCK.img /tmp/Wouxun_KG-UVD1P_T9ioxR.img /tmp/Yaesu_FT-1802M_GnvrIB.img /tmp/Yaesu_FT-1802M_fv8rN6.img /tmp/Yaesu_FT-1D_MrKfUf.img /tmp/Yaesu_FT-1D_QqfOgm.img /tmp/Yaesu_FT-2800M_CZPXpz.img /tmp/Yaesu_FT-2800M_oZNBBA.img /tmp/Yaesu_FT-2900R_1900R_ABeCIj.img /tmp/Yaesu_FT-2900R_1900R_Dy3X3r.img /tmp/Yaesu_FT-50_A0LFNT.img /tmp/Yaesu_FT-50_umQUhN.img /tmp/Yaesu_FT-60_Hb2_yt.img /tmp/Yaesu_FT-60_y0wJS1.img /tmp/Yaesu_FT-7800_7900_WxheMs.img /tmp/Yaesu_FT-7800_7900_i_zNnh.img /tmp/Yaesu_FT-817ND (US)_9RpZJz.img /tmp/Yaesu_FT-817ND (US)_wQr3ks.img /tmp/Yaesu_FT-817ND_4w3aoq.img /tmp/Yaesu_FT-817ND_Ozxvzq.img /tmp/Yaesu_FT-817_X8zVj2.img /tmp/Yaesu_FT-817_wdn5Qv.img /tmp/Yaesu_FT-857_897 (US)__Pny5p.img /tmp/Yaesu_FT-857_897 (US)_ptDm28.img /tmp/Yaesu_FT-857_897_BIVuCC.img /tmp/Yaesu_FT-857_897_HXGMYT.img /tmp/Yaesu_FT-8800_0PIuPD.img /tmp/Yaesu_FT-8800_AFBEV1.img /tmp/Yaesu_FT-8800_dHCjcy.img /tmp/Yaesu_FT-8800_gipbXv.img /tmp/Yaesu_FT-8800_hhYNXL.img /tmp/Yaesu_FT-8800_nz9gEs.img /tmp/Yaesu_FT-8900_94b_4r.img /tmp/Yaesu_FT-8900_VPRanW.img /tmp/Yaesu_FTM-350_2UUPDt.img /tmp/Yaesu_FTM-350_944YWS.img /tmp/Yaesu_FTM-350_Hr9XxY.img /tmp/Yaesu_FTM-350_PvruRU.img /tmp/Yaesu_FTM-350_eKr69c.img /tmp/Yaesu_FTM-350_raOcKU.img /tmp/Yaesu_VX-2_FFDFxi.img /tmp/Yaesu_VX-2_wZzUcN.img /tmp/Yaesu_VX-3_2hjlAS.img /tmp/Yaesu_VX-3_PaZJfi.img /tmp/Yaesu_VX-5_6l8x5T.img /tmp/Yaesu_VX-5_oalB2Z.img /tmp/Yaesu_VX-6_BKHtON.img /tmp/Yaesu_VX-6_G6Y8Lo.img /tmp/Yaesu_VX-7_24DPvk.img /tmp/Yaesu_VX-7_o19gjF.img /tmp/Yaesu_VX-8_6UvtE2.img /tmp/Yaesu_VX-8_uEwrpk.img
Email was triggered for: Success
Sending email for trigger: Success
1
0