Developers
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- 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
- 3 participants
- 2972 discussions
Since Dan brought up patchbomb, I'll go ahead and ask since my
google-fu has failed. Have folks had success with using patchbomb
against gmail lately? I tried setting it up but got an auth/login
error regardless of which settings I use.
At the moment, the smtp section of my hgrc looks like this:
[smtp]
host=smtp.gmail.com
port=587
username=XX
password=YY
tls = True (also tried = starttls)
Every time, I get an aborted response from mercurial (abort/534), and
a nastygram from google saying they blocked a sign-in attempt.
--
Brian
4
7

05 Sep '16
# HG changeset patch
# User Brian Dickman <brian.maybe(a)gmail.com>
# Date 1473094181 25200
# Mon Sep 05 09:49:41 2016 -0700
# Node ID 889f7413f2e9802394626a7bb50d8ba6aa1dce09
# Parent ff2daca5a662fd2c6661c347e2d7448fd0ab11ed
[TEST PATCH DO NOT APPLY] patchbomb test
1
0
Tested changes:
[Brian Dickman <brian.maybe(a)gmail.com>] [leixen] [patch 2 of 2] Adds new model, Leixen VV-898S (tri-power 25W)
Also adds alias for VV-898E. Resolves #3889, #3327, #3065.
[Brian Dickman <brian.maybe(a)gmail.com>] [leixen] [ 1 of 2 ] Migrate radio paramters into class to prepare for
multiple models
Parameterize the mmap to account for changes between the 898 and 898S
models. Move power levels into the class out of the global module
level. Extend model matching to additional bytes to tell apart
additional models. Related to #3889, #3327, #3065.
[Jim Unroe <rock.unroe(a)gmail.com>] [UV-5X3] Add DTMF Settings (RX and TX) to BTech UV-5X3
This patch exposes the structures and adds DTMF related settings:
- PTT-ID codes
- ANI settings and codes
- Master and Vice control IDs
- Control settings and codes (Inspection, Monitor, Stun, Kill, Revive)
- other DTMF related settings
related to #3931
[Tom Hayward <tom(a)tomh.us>] [id880] Fix typo in charset definition. #281
[Tom Hayward <tom(a)tomh.us>] [thf6a] Support full charset (ASCII). Fixes #141
[Tom Hayward <tom(a)tomh.us>] [id880] Support full charset. Fixes #281
[Tom Hayward <tom(a)tomh.us>] [vx5] Support full charset (ASCII). Fixes #292
[Tom Hayward <tom(a)tomh.us>] [id31a] set used bit when creating new memory, clear when deleting. Fixes #269
[Tom Hayward <tom(a)tomh.us>] Support PyGTK < 2.22 in bank edit. Fixes #231
[Tom Hayward <tom(a)tomh.us>] [d710] [v71] [d72] Fix tone list (not all tones are supported). Fixes #212
[Dan Smith <dsmith(a)danplanet.com>] [vx7] Fix setting memory power levels on 220MHz band
Fixes #214
[Dan Smith <dsmith(a)danplanet.com>] fips: Pennsylvania FIPS code was wrong. #117
[Marco Filippi <iz3gme.marco(a)gmail.com>] Consider lower bound frequency of each valid_band as valid
Fix bug #181
[Tom Hayward <tom(a)tomh.us>] tmd700: allow 8-char names. Fixes #176
[Dan Smith <dsmith(a)danplanet.com>] Fix the "blind deletion" problem, as well as properly direct copy/paste
Fixes #172
[David Griffith <dave(a)661.org>] Bug #155 fix: VX-7 1.25m power levels
[David Griffith <dave(a)661.org>] New INSTALL and README files
Fixes #122
[Tom Hayward <tom(a)tomh.us>] thd72: only use hardware flow on OS X. Fixes #166
[Marco Filippi <iz3gme.marco(a)gmail.com>] [FT817] Tone freq not set correctly
Same as #88 for FT857, to avoid code duplication fix code have been moved from
ft857 to its ancestor class
Fix bug #163
[Tom Hayward <tom(a)tomh.us>] Fix Mac .app so paths with spaces work. Fixes Bug #145
Full log:
Started by an SCM change
Building in workspace /var/lib/jenkins/jobs/chirp-test/workspace
[workspace] $ hg showconfig paths.default
[workspace] $ hg pull --rev default
[workspace] $ hg update --clean --rev default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
[workspace] $ hg log --rev . --template {node}
[workspace] $ hg log --rev . --template {rev}
[workspace] $ hg log --rev ff2daca5a662fd2c6661c347e2d7448fd0ab11ed
[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 ff2daca5a662fd2c6661c347e2d7448fd0ab11ed
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson27590753547719784.sh
[workspace] $ /bin/sh -xe /tmp/hudson7849357314340964124.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/chirp_common.py:33:32: E202 whitespace before ']'
./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/leixen.py:427:80: E501 line too long (82 > 79 characters)
./chirp/drivers/leixen.py:955:80: E501 line too long (87 > 79 characters)
./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.592s
user 0m7.484s
sys 0m0.040s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-09-05 08:17:59,099] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2016-09-05 08:17:59,136] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-09-05 08:17:59,137] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-09-05 08:17:59,138] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-09-05 08:17:59,138] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-09-05 08:17:59,138] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-09-05 08:17:59,138] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-09-05 08:17:59,138] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-09-05 08:17:59,138] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2016-09-05 08:17:59,138] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-09-05 08:17:59,139] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-09-05 08:17:59,139] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-09-05 08:17:59,139] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-09-05 08:17:59,139] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-09-05 08:17:59,139] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-09-05 08:17:59,139] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-09-05 08:17:59,139] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-09-05 08:17:59,140] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-09-05 08:17:59,140] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-09-05 08:17:59,140] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-09-05 08:17:59,140] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-09-05 08:17:59,140] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-09-05 08:17:59,140] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-09-05 08:17:59,140] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-09-05 08:17:59,141] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-09-05 08:17:59,142] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-09-05 08:17:59,142] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-09-05 08:17:59,142] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-09-05 08:17:59,142] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-09-05 08:17:59,143] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-09-05 08:17:59,143] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-09-05 08:17:59,143] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-09-05 08:17:59,143] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-09-05 08:17:59,143] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-09-05 08:17:59,143] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-09-05 08:17:59,143] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-09-05 08:17:59,144] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-09-05 08:17:59,144] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-09-05 08:17:59,144] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-09-05 08:17:59,144] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-09-05 08:17:59,144] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-09-05 08:17:59,144] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-09-05 08:17:59,144] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-09-05 08:17:59,144] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-09-05 08:17:59,144] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-09-05 08:17:59,145] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-09-05 08:17:59,145] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-09-05 08:17:59,145] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-09-05 08:17:59,145] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-09-05 08:17:59,145] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-09-05 08:17:59,145] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-09-05 08:17:59,146] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-09-05 08:17:59,146] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-09-05 08:17:59,147] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-09-05 08:17:59,147] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-09-05 08:17:59,147] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-09-05 08:17:59,148] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-09-05 08:17:59,148] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-09-05 08:17:59,148] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-09-05 08:17:59,148] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-09-05 08:17:59,149] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-09-05 08:17:59,149] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-09-05 08:17:59,149] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-09-05 08:17:59,149] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-09-05 08:17:59,149] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-09-05 08:17:59,150] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-09-05 08:17:59,150] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-09-05 08:17:59,150] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-09-05 08:17:59,151] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-09-05 08:17:59,151] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-09-05 08:17:59,151] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-09-05 08:17:59,158] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-09-05 08:17:59,161] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-09-05 08:17:59,161] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-09-05 08:17:59,162] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-09-05 08:17:59,162] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-09-05 08:17:59,162] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-09-05 08:17:59,162] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-09-05 08:17:59,162] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-09-05 08:17:59,163] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-09-05 08:17:59,163] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-09-05 08:17:59,163] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-09-05 08:17:59,163] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-09-05 08:17:59,164] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-09-05 08:17:59,164] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-09-05 08:17:59,164] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-09-05 08:17:59,164] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-09-05 08:17:59,165] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-09-05 08:17:59,165] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-09-05 08:17:59,165] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-09-05 08:17:59,165] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-09-05 08:17:59,165] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-09-05 08:17:59,165] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-09-05 08:17:59,166] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-09-05 08:17:59,166] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-09-05 08:17:59,166] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-09-05 08:17:59,167] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-09-05 08:17:59,167] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-09-05 08:17:59,167] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-09-05 08:17:59,167] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-09-05 08:17:59,167] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2016-09-05 08:17:59,168] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2016-09-05 08:17:59,168] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-09-05 08:17:59,168] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-09-05 08:17:59,168] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-09-05 08:17:59,168] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-09-05 08:17:59,169] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-09-05 08:17:59,169] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-09-05 08:17:59,169] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-09-05 08:17:59,169] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-09-05 08:17:59,170] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-09-05 08:17:59,170] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-09-05 08:17:59,170] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-09-05 08:17:59,171] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-09-05 08:17:59,171] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-09-05 08:17:59,171] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-09-05 08:17:59,171] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-09-05 08:17:59,171] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-09-05 08:17:59,172] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-09-05 08:17:59,172] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-09-05 08:17:59,172] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-09-05 08:17:59,172] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-09-05 08:17:59,173] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-09-05 08:17:59,173] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-09-05 08:17:59,173] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-09-05 08:17:59,173] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-09-05 08:17:59,173] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-09-05 08:17:59,173] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-09-05 08:17:59,173] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-09-05 08:17:59,173] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-09-05 08:17:59,174] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-09-05 08:17:59,174] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-09-05 08:17:59,174] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-09-05 08:17:59,174] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-09-05 08:17:59,174] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-09-05 08:17:59,174] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-09-05 08:17:59,175] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-09-05 08:17:59,176] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-09-05 08:17:59,176] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-09-05 08:17:59,176] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-09-05 08:17:59,176] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-09-05 08:17:59,176] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-09-05 08:17:59,176] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-09-05 08:17:59,177] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2016-09-05 08:17:59,177] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2016-09-05 08:17:59,178] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-09-05 08:17:59,178] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2016-09-05 08:17:59,178] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-09-05 08:17:59,178] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-09-05 08:17:59,179] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-09-05 08:17:59,179] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-09-05 08:17:59,179] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-09-05 08:17:59,180] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-09-05 08:17:59,180] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-09-05 08:17:59,180] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-09-05 08:17:59,180] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-09-05 08:17:59,181] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
+ rm /tmp/Alinco_DJ175_2o0IyZ.img /tmp/Alinco_DJ175_Y1mo6l.img /tmp/Alinco_DJ596_8AHrTs.img /tmp/Alinco_DJ596_wdeVwB.img /tmp/Alinco_DR235T_8Cj7Pm.img /tmp/Alinco_DR235T__yCWJj.img /tmp/AnyTone_OBLTR-8R_OKsc_v.img /tmp/AnyTone_OBLTR-8R_eMogSm.img /tmp/AnyTone_TERMN-8R_0LHoWi.img /tmp/AnyTone_TERMN-8R_RzqZR8.img /tmp/BTECH_UV-2501+220_S_VOkc.img /tmp/BTECH_UV-2501+220_bGZ5_i.img /tmp/BTECH_UV-5001_8h2QS9.img /tmp/BTECH_UV-5001_V9KMh8.img /tmp/BTECH_UV-50X3_4NsFkh.img /tmp/BTECH_UV-50X3_5IoRhj.img /tmp/BTECH_UV-50X3_9Hb_8Y.img /tmp/BTECH_UV-50X3_YkRjdU.img /tmp/BTECH_UV-50X3_ZAnxBR.img /tmp/BTECH_UV-50X3_kPC8FH.img /tmp/BTECH_UV-5X3_5h3ssf.img /tmp/BTECH_UV-5X3_l0W6k7.img /tmp/Baofeng_BF-888_cgW8UU.img /tmp/Baofeng_BF-888_dhh0re.img /tmp/Baofeng_F-11_0yeMCT.img /tmp/Baofeng_F-11_9IeTHt.img /tmp/Baofeng_UV-3R_Wxy4kv.img /tmp/Baofeng_UV-3R_tkYswd.img /tmp/Baofeng_UV-5R_CteFI6.img /tmp/Baofeng_UV-5R_jipNGA.img /tmp/Baofeng_UV-6R_Wo3YiC.img /tmp/Baofeng_UV-6R_d2nFEd.img /tmp/Baofeng_UV-B5_GYqVUH.img /tmp/Baofeng_UV-B5_UMwYBL.img /tmp/Baojie_BJ-9900_8HHHaT.img /tmp/Baojie_BJ-9900_PZMXFr.img /tmp/Baojie_BJ-9900_QtDaFr.img /tmp/Baojie_BJ-9900_jFigCU.img /tmp/Baojie_BJ-9900_m3ylh7.img /tmp/Baojie_BJ-9900_mRY40W.img /tmp/Feidaxin_FD-268A_gkEApU.img /tmp/Feidaxin_FD-268A_rlxQKn.img /tmp/Feidaxin_FD-268B_2ctu6R.img /tmp/Feidaxin_FD-268B_cDDtPa.img /tmp/Feidaxin_FD-288B__vttXq.img /tmp/Feidaxin_FD-288B_ySarTK.img /tmp/Icom_IC-208H_5BaBiM.img /tmp/Icom_IC-208H_S_PMdJ.img /tmp/Icom_IC-2100H_1HN859.img /tmp/Icom_IC-2100H_HrIrCr.img /tmp/Icom_IC-2200H_jAxtCF.img /tmp/Icom_IC-2200H_jfIy0Q.img /tmp/Icom_IC-2720H_NLVDEA.img /tmp/Icom_IC-2720H_sB9_Zh.img /tmp/Icom_IC-2820H_Nb3QYZ.img /tmp/Icom_IC-2820H_RVkput.img /tmp/Icom_IC-Q7A_0sxTpZ.img /tmp/Icom_IC-Q7A_a8gEUG.img /tmp/Icom_IC-T70__UfdTl.img /tmp/Icom_IC-T70_do96mb.img /tmp/Icom_IC-T7H_FnfYwk.img /tmp/Icom_IC-T7H_bFBGBs.img /tmp/Icom_IC-T8A_WReUoG.img /tmp/Icom_IC-T8A_jdieyP.img /tmp/Icom_IC-V82_U82_IVZc75.img /tmp/Icom_IC-V82_U82_c5hXvP.img /tmp/Icom_IC-W32A_9QWhLi.img /tmp/Icom_IC-W32A_M_VRq2.img /tmp/Icom_IC-W32A_VL2oph.img /tmp/Icom_IC-W32A_YX43wE.img /tmp/Icom_IC-W32A_p1uwIJ.img /tmp/Icom_IC-W32A_wqFA7o.img /tmp/Icom_IC-W32E_1BGvgn.img /tmp/Icom_IC-W32E_6PiXWX.img /tmp/Icom_IC-W32E_8Gb4Xz.img /tmp/Icom_IC-W32E_RCOHvf.img /tmp/Icom_IC-W32E_kD11qz.img /tmp/Icom_IC-W32E_qpO2iG.img /tmp/Icom_ID-31A_VP8A5c.img /tmp/Icom_ID-31A_uWg62U.img /tmp/Icom_ID-51 Plus_6m7Vjq.img /tmp/Icom_ID-51 Plus_yow_Ij.img /tmp/Icom_ID-51_5GvHgd.img /tmp/Icom_ID-51_BI1T8w.img /tmp/Icom_ID-800H_ALzaen.img /tmp/Icom_ID-800H_maPj06.img /tmp/Icom_ID-880H_KumVyx.img /tmp/Icom_ID-880H_lzLU0T.img /tmp/Jetstream_JT220M_coOSpa.img /tmp/Jetstream_JT220M_jVm6ES.img /tmp/Jetstream_JT270M_Wg1RXT.img /tmp/Jetstream_JT270M_bTQi1Y.img /tmp/KYD_IP-620_2SGRna.img /tmp/KYD_IP-620_d2cmXx.img /tmp/Kenwood_TH-D72 (clone mode)_FpMABF.img /tmp/Kenwood_TH-D72 (clone mode)_qs0GO1.img /tmp/Kenwood_TK-272G_4_1mhJ.img /tmp/Kenwood_TK-272G_sQounN.img /tmp/Kenwood_TK-760G_0zcRDa.img /tmp/Kenwood_TK-760G_j7ty0x.img /tmp/Kenwood_TK-8102_gRINxo.img /tmp/Kenwood_TK-8102_uL6oat.img /tmp/LUITON_LT-725UV_8aDtii.img /tmp/LUITON_LT-725UV_CI6XZU.img /tmp/LUITON_LT-725UV_MfgXcz.img /tmp/LUITON_LT-725UV_esXa2l.img /tmp/LUITON_LT-725UV_gVHYSQ.img /tmp/LUITON_LT-725UV_qGhDcc.img /tmp/Leixen_VV-898_xpn2Lx.img /tmp/Leixen_VV-898_y7uRbb.img /tmp/Polmar_DB-50M_Br4gg1.img /tmp/Polmar_DB-50M_HlpEod.img /tmp/Puxing_PX-2R_2JP23O.img /tmp/Puxing_PX-2R_KlDsJX.img /tmp/Puxing_PX-777_GilcF6.img /tmp/Puxing_PX-777_JPHPC7.img /tmp/TYT_TH-7800_XMtcQS.img /tmp/TYT_TH-7800_iWFr7a.img /tmp/TYT_TH-9800_Rm6aBu.img /tmp/TYT_TH-9800_oTQoW3.img /tmp/TYT_TH-UV3R-25_ZPTvnX.img /tmp/TYT_TH-UV3R-25_s7Diup.img /tmp/TYT_TH-UV3R_qYLnjO.img /tmp/TYT_TH-UV3R_v0Xu3o.img /tmp/TYT_TH-UVF1_6yWBev.img /tmp/TYT_TH-UVF1_Xi6Pnw.img /tmp/TYT_TH9000_144_jOz9YB.img /tmp/TYT_TH9000_144_vIab9m.img /tmp/Vertex Standard_VXA-700_FPSJkH.img /tmp/Vertex Standard_VXA-700_blr_US.img /tmp/WACCOM_MINI-8900_SwFMeQ.img /tmp/WACCOM_MINI-8900_fs_a2L.img /tmp/Wouxun_KG-816_368nng.img /tmp/Wouxun_KG-816__1QdI1.img /tmp/Wouxun_KG-818_4UG20K.img /tmp/Wouxun_KG-818_5t3aph.img /tmp/Wouxun_KG-UV6_7Vkg6q.img /tmp/Wouxun_KG-UV6_RdvIHD.img /tmp/Wouxun_KG-UV8D_OIlYdt.img /tmp/Wouxun_KG-UV8D_Wl5SVc.img /tmp/Wouxun_KG-UVD1P_7sZcWI.img /tmp/Wouxun_KG-UVD1P_G9rD4S.img /tmp/Yaesu_FT-1802M_06xyiz.img /tmp/Yaesu_FT-1802M_dF4TpA.img /tmp/Yaesu_FT-1D_j7LKDr.img /tmp/Yaesu_FT-1D_yctA3d.img /tmp/Yaesu_FT-2800M_LMWVqJ.img /tmp/Yaesu_FT-2800M_y_rAWO.img /tmp/Yaesu_FT-2900R_1900R_C786Hq.img /tmp/Yaesu_FT-2900R_1900R_x332bI.img /tmp/Yaesu_FT-50_Tt8yA9.img /tmp/Yaesu_FT-50_toW53S.img /tmp/Yaesu_FT-60_OV9_wm.img /tmp/Yaesu_FT-60_uYRG6R.img /tmp/Yaesu_FT-7800_7900_LQSAnT.img /tmp/Yaesu_FT-7800_7900_qshmTs.img /tmp/Yaesu_FT-817ND (US)_pYjUIK.img /tmp/Yaesu_FT-817ND (US)_plpFhN.img /tmp/Yaesu_FT-817ND_L6E_oJ.img /tmp/Yaesu_FT-817ND_csF_WR.img /tmp/Yaesu_FT-817_EOeikb.img /tmp/Yaesu_FT-817_n0eJB9.img /tmp/Yaesu_FT-857_897 (US)_VXseG4.img /tmp/Yaesu_FT-857_897 (US)_qZCTcN.img /tmp/Yaesu_FT-857_897_JNxx23.img /tmp/Yaesu_FT-857_897_Lsdrvg.img /tmp/Yaesu_FT-8800_2YPhJH.img /tmp/Yaesu_FT-8800_9X1FGR.img /tmp/Yaesu_FT-8800_IwroSu.img /tmp/Yaesu_FT-8800_MVsEH3.img /tmp/Yaesu_FT-8800_PGOlik.img /tmp/Yaesu_FT-8800_UMJva4.img /tmp/Yaesu_FT-8900_Adl59a.img /tmp/Yaesu_FT-8900_OC72VM.img /tmp/Yaesu_FTM-350_DDO4bz.img /tmp/Yaesu_FTM-350_SHaTCE.img /tmp/Yaesu_FTM-350_gpQTrA.img /tmp/Yaesu_FTM-350_kRaIqe.img /tmp/Yaesu_FTM-350_lY2_n_.img /tmp/Yaesu_FTM-350_pzB3wR.img /tmp/Yaesu_VX-2_C0PdJ4.img /tmp/Yaesu_VX-2_tYbMup.img /tmp/Yaesu_VX-3_0hWjND.img /tmp/Yaesu_VX-3_bZibw_.img /tmp/Yaesu_VX-5_XwCuAe.img /tmp/Yaesu_VX-5_aQ4Rkg.img /tmp/Yaesu_VX-6_Odc50w.img /tmp/Yaesu_VX-6_P2ix7L.img /tmp/Yaesu_VX-7_2lG1SB.img /tmp/Yaesu_VX-7_S7Yptl.img /tmp/Yaesu_VX-8_M_YWXn.img /tmp/Yaesu_VX-8_yBM2ED.img
Email was triggered for: Success
Sending email for trigger: Success
1
0

[chirp_devel] [PATCH] [leixen ] [ 1 of 2 ] 2nd try... prepare for multiple models
by Brian Dickman 05 Sep '16
by Brian Dickman 05 Sep '16
05 Sep '16
I've re-created this patch against the current tip, but I don't
*think* there's any difference... it applies and passes tests on my
repo.
#######
# HG changeset patch
# User Brian Dickman <brian.maybe(a)gmail.com>
# Date 1473038384 25200
# Sun Sep 04 18:19:44 2016 -0700
# Node ID 15ed52b0a98e77f51c25e0d161c8d8e376fa2307
# Parent ff2daca5a662fd2c6661c347e2d7448fd0ab11ed
[leixen] [ 1 of 2 ] Migrate radio paramters into class to prepare for
multiple models
Parameterize the mmap to account for changes between the 898 and 898S
models. Move power levels into the class out of the global module
level. Extend model matching to additional bytes to tell apart
additional models. Related to #3889, #3327, #3065.
diff -r ff2daca5a662 -r 15ed52b0a98e chirp/drivers/leixen.py
--- a/chirp/drivers/leixen.py Sun Sep 04 08:37:03 2016 -0700
+++ b/chirp/drivers/leixen.py Sun Sep 04 18:19:44 2016 -0700
@@ -135,14 +135,13 @@
u8 unknown5;
u8 pttidoff:1,
dtmfoff:1,
- unknown6:1,
+ %(unknownormode)s,
tailcut:1,
aliasop:1,
talkaroundoff:1,
voxoff:1,
skip:1;
- u8 power:1,
- mode:1
+ u8 %(modeorpower)s,
reverseoff:1,
blckoff:1,
unknown7:1,
@@ -223,8 +222,6 @@
"Reverse"
]
-POWER_LEVELS = [chirp_common.PowerLevel("Low", watts=4),
- chirp_common.PowerLevel("High", watts=10)]
MODES = ["NFM", "FM"]
WTFTONES = map(float, xrange(56, 64))
TONES = WTFTONES + chirp_common.TONES
@@ -326,7 +323,8 @@
_ranges = [(0x0d00, 0x2000)]
image_ident = _image_ident_from_image(radio)
- if image_ident.startswith(radio._file_ident) and "LX-" in image_ident:
+ if image_ident.startswith(radio._file_ident) and \
+ radio._model_ident in image_ident:
_ranges = radio._ranges
do_ident(radio)
@@ -371,6 +369,8 @@
BAUD_RATE = 9600
_file_ident = "Leixen"
+ _model_ident = 'LX-\x89\x85\x63'
+
_memsize = 0x2000
_ranges = [
(0x0000, 0x013f),
@@ -382,6 +382,11 @@
(0x0d00, 0x2000),
]
+ _mem_formatter = {'unknownormode': 'unknown6:1',
+ 'modeorpower': 'mode:1, power:1'}
+ _power_levels = [chirp_common.PowerLevel("Low", watts=4),
+ chirp_common.PowerLevel("High", watts=10)]
+
def get_features(self):
rf = chirp_common.RadioFeatures()
rf.has_settings = True
@@ -402,7 +407,7 @@
"DTCS->DTCS"]
rf.valid_characters = chirp_common.CHARSET_ASCII
rf.valid_name_length = 7
- rf.valid_power_levels = POWER_LEVELS
+ rf.valid_power_levels = self._power_levels
rf.valid_duplexes = ["", "-", "+", "split", "off"]
rf.valid_skips = ["", "S"]
rf.valid_bands = [(136000000, 174000000),
@@ -419,7 +424,7 @@
self.process_mmap()
def process_mmap(self):
- self._memobj = bitwise.parse(MEM_FORMAT, self._mmap)
+ self._memobj = bitwise.parse(MEM_FORMAT %
self._mem_formatter, self._mmap)
def sync_out(self):
try:
@@ -492,12 +497,8 @@
self._get_tone(mem, _mem)
mem.mode = MODES[_mem.mode]
- mem.power = POWER_LEVELS[_mem.power]
- mem.skip = _mem.skip and "S" or ""
-
- self._get_tone(mem, _mem)
- mem.mode = MODES[_mem.mode]
- mem.power = POWER_LEVELS[_mem.power]
+ powerindex = _mem.power if _mem.power < len(self._power_levels) else -1
+ mem.power = self._power_levels[powerindex]
mem.skip = _mem.skip and "S" or ""
mem.extra = RadioSettingGroup("Extra", "extra")
@@ -595,7 +596,7 @@
self._set_tone(mem, _mem)
- _mem.power = mem.power and POWER_LEVELS.index(mem.power) or 0
+ _mem.power = mem.power and self._power_levels.index(mem.power) or 0
_mem.mode = MODES.index(mem.mode)
_mem.skip = mem.skip == "S"
_name.name = mem.name.ljust(7)
@@ -934,9 +935,7 @@
@classmethod
def match_model(cls, filedata, filename):
if filedata[0x168:0x170].startswith(cls._file_ident) and \
- filedata[0x170:0x178].startswith("LX-\x89\x85"):
- return True
- elif filedata[0x900:0x906] == cls.MODEL:
+
filedata[0x170:0x178].startswith(cls._model_ident):
return True
else:
return False
@@ -949,3 +948,4 @@
MODEL = "JT270M"
_file_ident = "JET"
+ _model_ident = 'LX-\x89\x85\x53'
2
1

05 Sep '16
qpopped directly over the previous patch without an issue, so in
theory this should work too...
###
# HG changeset patch
# User Brian Dickman <brian.maybe(a)gmail.com>
# Date 1473038809 25200
# Sun Sep 04 18:26:49 2016 -0700
# Node ID 7d8c6b96f9866b7bdecf4fd2c2445d8dbe37c2ac
# Parent 15ed52b0a98e77f51c25e0d161c8d8e376fa2307
[leixen] [patch 2 of 2] Adds new model, Leixen VV-898S (tri-power 25W)
Also adds alias for VV-898E. Resolves #3889, #3327, #3065.
diff -r 15ed52b0a98e -r 7d8c6b96f986 chirp/drivers/leixen.py
--- a/chirp/drivers/leixen.py Sun Sep 04 18:19:44 2016 -0700
+++ b/chirp/drivers/leixen.py Sun Sep 04 18:26:49 2016 -0700
@@ -949,3 +949,24 @@
_file_ident = "JET"
_model_ident = 'LX-\x89\x85\x53'
+
+
+class VV898E(chirp_common.Alias):
+ '''Leixen has called this radio both 898E and S historically,
ident is identical'''
+ VENDOR = "Leixen"
+ MODEL = "VV-898E"
+
+
+(a)directory.register
+class LeixenVV898SRadio(LeixenVV898Radio):
+ """Leixen VV-898S, also VV-898E which is identical"""
+ VENDOR = "Leixen"
+ MODEL = "VV-898S"
+ ALIASES = [VV898E, ]
+
+ _model_ident = 'LX-\x89\x85\x75'
+ _mem_formatter = {'unknownormode': 'mode:1',
+ 'modeorpower': 'power:2'}
+ _power_levels = [chirp_common.PowerLevel("Low", watts=5),
+ chirp_common.PowerLevel("Med", watts=10),
+ chirp_common.PowerLevel("High", watts=25)]
1
0
How comprehensive do we want to be with alias models? Leixen sold the
same exact radio (from everything I can see in the images they are a
binary match) as both the VV-898S and VV-898E. Should I bother making
an alias model for the 898E, or do we just markup the web page to note
that we support the model and it matches the S? Aliases make a lot of
sense when the vendor name or model are grossly different, but I'm not
sure it's worth doing in this case.
--
Brian
5
7

[chirp_devel] [PATCH] [UV-5X3] Add DTMF Settings (RX and TX) to BTech UV-5X3
by Jim Unroe 04 Sep '16
by Jim Unroe 04 Sep '16
04 Sep '16
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1473003258 14400
# Node ID 6400db5ca2b420af20aacbeee51ef766d63c3d76
# Parent 75cb01b8fb0d0a0f523db839a1eb876839861050
[UV-5X3] Add DTMF Settings (RX and TX) to BTech UV-5X3
This patch exposes the structures and adds DTMF related settings:
- PTT-ID codes
- ANI settings and codes
- Master and Vice control IDs
- Control settings and codes (Inspection, Monitor, Stun, Kill, Revive)
- other DTMF related settings
related to #3931
diff -r 75cb01b8fb0d -r 6400db5ca2b4 chirp/drivers/uv5x3.py
--- a/chirp/drivers/uv5x3.py Sat Sep 03 19:54:58 2016 -0400
+++ b/chirp/drivers/uv5x3.py Sun Sep 04 11:34:18 2016 -0400
@@ -50,12 +50,14 @@
LIST_ALMOD = ["Site", "Tone", "Code"]
LIST_BANDWIDTH = ["Wide", "Narrow"]
LIST_COLOR = ["Off", "Blue", "Orange", "Purple"]
+LIST_DELAYPROCTIME = ["%s ms" % x for x in range(100, 4100, 100)]
LIST_DTMFSPEED = ["%s ms" % x for x in range(50, 2010, 10)]
LIST_DTMFST = ["Off", "DT-ST", "ANI-ST", "DT+ANI"]
LIST_MODE = ["Channel", "Name", "Frequency"]
LIST_OFF1TO9 = ["Off"] + list("123456789")
LIST_OFF1TO10 = LIST_OFF1TO9 + ["10"]
LIST_OFFAB = ["Off"] + LIST_AB
+LIST_RESETTIME = ["%s ms" % x for x in range(100, 16100, 100)]
LIST_RESUME = ["TO", "CO", "SE"]
LIST_PONMSG = ["Full", "Message"]
LIST_PTTID = ["Off", "BOT", "EOT", "Both"]
@@ -146,6 +148,53 @@
pttid:2;
} memory[128];
+ #seekto 0x0B00;
+ struct {
+ u8 code[16];
+ } pttid[15];
+
+ #seekto 0x0C80;
+ struct {
+ u8 inspection[8];
+ u8 monitor[8];
+ u8 alarmcode[8];
+ u8 stun[8];
+ u8 kill[8];
+ u8 revive[8];
+ u8 code[7];
+ u8 unknown06;
+ u8 dtmfon;
+ u8 dtmfoff;
+ u8 unused00:6,
+ aniid:2;
+ u8 unknown07[5];
+ u8 masterid[5];
+ u8 unknown08[3];
+ u8 viceid[5];
+ u8 unknown09[3];
+ u8 unused01:7,
+ mastervice:1;
+ u8 unused02:3,
+ mrevive:1,
+ mkill:1,
+ mstun:1,
+ mmonitor:1,
+ minspection:1;
+ u8 unused03:3,
+ vrevive:1,
+ vkill:1,
+ vstun:1,
+ vmonitor:1,
+ vinspection:1;
+ u8 unused04:6,
+ txdisable:1,
+ rxdisable:1;
+ u8 groupcode;
+ u8 spacecode;
+ u8 delayproctime;
+ u8 resettime;
+ } ani;
+
#seekto 0x0E20;
struct {
u8 unused00:4,
@@ -368,8 +417,11 @@
other = RadioSettingGroup("other", "Other Settings")
work = RadioSettingGroup("work", "Work Mode Settings")
fm_preset = RadioSettingGroup("fm_preset", "FM Preset")
+ dtmfe = RadioSettingGroup("dtmfe", "DTMF Encode Settings")
+ dtmfd = RadioSettingGroup("dtmfd", "DTMF Decode Settings")
service = RadioSettingGroup("service", "Service Settings")
- top = RadioSettings(basic, advanced, other, work, fm_preset, service)
+ top = RadioSettings(basic, advanced, other, work, fm_preset, dtmfe,
+ dtmfd, service)
# Basic settings
if _mem.settings.squelch > 0x09:
@@ -826,6 +878,259 @@
RadioSettingValueFloat(65, 108.0, preset, 0.1, 1))
fm_preset.append(rs)
+ # DTMF encode settings
+ for i in range(0, 15):
+ _codeobj = self._memobj.pttid[i].code
+ _code = "".join([DTMF_CHARS[x] for x in _codeobj if int(x) < 0x1F])
+ val = RadioSettingValueString(0, 16, _code, False)
+ val.set_charset(DTMF_CHARS)
+ rs = RadioSetting("pttid/%i.code" % i,
+ "Signal Code %i" % (i + 1), val)
+
+ def apply_code(setting, obj):
+ code = []
+ for j in range(0, 16):
+ try:
+ code.append(DTMF_CHARS.index(str(setting.value)[j]))
+ except IndexError:
+ code.append(0xFF)
+ obj.code = code
+ rs.set_apply_callback(apply_code, self._memobj.pttid[i])
+ dtmfe.append(rs)
+
+ if _mem.ani.dtmfon > 0xC3:
+ val = 0x03
+ else:
+ val = _mem.ani.dtmfon
+ rs = RadioSetting("ani.dtmfon", "DTMF Speed (on)",
+ RadioSettingValueList(LIST_DTMFSPEED,
+ LIST_DTMFSPEED[val]))
+ dtmfe.append(rs)
+
+ if _mem.ani.dtmfoff > 0xC3:
+ val = 0x03
+ else:
+ val = _mem.ani.dtmfoff
+ rs = RadioSetting("ani.dtmfoff", "DTMF Speed (off)",
+ RadioSettingValueList(LIST_DTMFSPEED,
+ LIST_DTMFSPEED[val]))
+ dtmfe.append(rs)
+
+ _codeobj = self._memobj.ani.code
+ _code = "".join([DTMF_CHARS[x] for x in _codeobj if int(x) < 0x1F])
+ val = RadioSettingValueString(0, 7, _code, False)
+ val.set_charset(DTMF_CHARS)
+ rs = RadioSetting("ani.code", "ANI Code", val)
+
+ def apply_code(setting, obj):
+ code = []
+ for j in range(0, 7):
+ try:
+ code.append(DTMF_CHARS.index(str(setting.value)[j]))
+ except IndexError:
+ code.append(0xFF)
+ obj.code = code
+ rs.set_apply_callback(apply_code, self._memobj.ani)
+ dtmfe.append(rs)
+
+ rs = RadioSetting("ani.aniid", "When to send ANI ID",
+ RadioSettingValueList(LIST_PTTID,
+ LIST_PTTID[_mem.ani.aniid]))
+ dtmfe.append(rs)
+
+ # DTMF decode settings
+ rs = RadioSetting("ani.mastervice", "Master and Vice ID",
+ RadioSettingValueBoolean(_mem.ani.mastervice))
+ dtmfd.append(rs)
+
+ _codeobj = _mem.ani.masterid
+ _code = "".join([DTMF_CHARS[x] for x in _codeobj if int(x) < 0x1F])
+ val = RadioSettingValueString(0, 5, _code, False)
+ val.set_charset(DTMF_CHARS)
+ rs = RadioSetting("ani.masterid", "Master Control ID", val)
+
+ def apply_code(setting, obj):
+ code = []
+ for j in range(0, 5):
+ try:
+ code.append(DTMF_CHARS.index(str(setting.value)[j]))
+ except IndexError:
+ code.append(0xFF)
+ obj.masterid = code
+ rs.set_apply_callback(apply_code, self._memobj.ani)
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.minspection", "Master Inspection",
+ RadioSettingValueBoolean(_mem.ani.minspection))
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.mmonitor", "Master Monitor",
+ RadioSettingValueBoolean(_mem.ani.mmonitor))
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.mstun", "Master Stun",
+ RadioSettingValueBoolean(_mem.ani.mstun))
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.mkill", "Master Kill",
+ RadioSettingValueBoolean(_mem.ani.mkill))
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.mrevive", "Master Revive",
+ RadioSettingValueBoolean(_mem.ani.mrevive))
+ dtmfd.append(rs)
+
+ _codeobj = _mem.ani.viceid
+ _code = "".join([DTMF_CHARS[x] for x in _codeobj if int(x) < 0x1F])
+ val = RadioSettingValueString(0, 5, _code, False)
+ val.set_charset(DTMF_CHARS)
+ rs = RadioSetting("ani.viceid", "Vice Control ID", val)
+
+ def apply_code(setting, obj):
+ code = []
+ for j in range(0, 5):
+ try:
+ code.append(DTMF_CHARS.index(str(setting.value)[j]))
+ except IndexError:
+ code.append(0xFF)
+ obj.viceid = code
+ rs.set_apply_callback(apply_code, self._memobj.ani)
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.vinspection", "Vice Inspection",
+ RadioSettingValueBoolean(_mem.ani.vinspection))
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.vmonitor", "Vice Monitor",
+ RadioSettingValueBoolean(_mem.ani.vmonitor))
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.vstun", "Vice Stun",
+ RadioSettingValueBoolean(_mem.ani.vstun))
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.vkill", "Vice Kill",
+ RadioSettingValueBoolean(_mem.ani.vkill))
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.vrevive", "Vice Revive",
+ RadioSettingValueBoolean(_mem.ani.vrevive))
+ dtmfd.append(rs)
+
+ _codeobj = _mem.ani.inspection
+ _code = "".join([DTMF_CHARS[x] for x in _codeobj if int(x) < 0x1F])
+ val = RadioSettingValueString(0, 8, _code, False)
+ val.set_charset(DTMF_CHARS)
+ rs = RadioSetting("ani.inspection", "Inspection Code", val)
+
+ def apply_code(setting, obj):
+ code = []
+ for j in range(0, 8):
+ try:
+ code.append(DTMF_CHARS.index(str(setting.value)[j]))
+ except IndexError:
+ code.append(0xFF)
+ obj.inspection = code
+ rs.set_apply_callback(apply_code, self._memobj.ani)
+ dtmfd.append(rs)
+
+ _codeobj = _mem.ani.monitor
+ _code = "".join([DTMF_CHARS[x] for x in _codeobj if int(x) < 0x1F])
+ val = RadioSettingValueString(0, 8, _code, False)
+ val.set_charset(DTMF_CHARS)
+ rs = RadioSetting("ani.monitor", "Monitor Code", val)
+
+ def apply_code(setting, obj):
+ code = []
+ for j in range(0, 8):
+ try:
+ code.append(DTMF_CHARS.index(str(setting.value)[j]))
+ except IndexError:
+ code.append(0xFF)
+ obj.monitor = code
+ rs.set_apply_callback(apply_code, self._memobj.ani)
+ dtmfd.append(rs)
+
+ _codeobj = _mem.ani.alarmcode
+ _code = "".join([DTMF_CHARS[x] for x in _codeobj if int(x) < 0x1F])
+ val = RadioSettingValueString(0, 8, _code, False)
+ val.set_charset(DTMF_CHARS)
+ rs = RadioSetting("ani.alarm", "Alarm Code", val)
+
+ def apply_code(setting, obj):
+ code = []
+ for j in range(0, 8):
+ try:
+ code.append(DTMF_CHARS.index(str(setting.value)[j]))
+ except IndexError:
+ code.append(0xFF)
+ obj.alarmcode = code
+ rs.set_apply_callback(apply_code, self._memobj.ani)
+ dtmfd.append(rs)
+
+ _codeobj = _mem.ani.stun
+ _code = "".join([DTMF_CHARS[x] for x in _codeobj if int(x) < 0x1F])
+ val = RadioSettingValueString(0, 8, _code, False)
+ val.set_charset(DTMF_CHARS)
+ rs = RadioSetting("ani.stun", "Stun Code", val)
+
+ def apply_code(setting, obj):
+ code = []
+ for j in range(0, 8):
+ try:
+ code.append(DTMF_CHARS.index(str(setting.value)[j]))
+ except IndexError:
+ code.append(0xFF)
+ obj.stun = code
+ rs.set_apply_callback(apply_code, self._memobj.ani)
+ dtmfd.append(rs)
+
+ _codeobj = _mem.ani.kill
+ _code = "".join([DTMF_CHARS[x] for x in _codeobj if int(x) < 0x1F])
+ val = RadioSettingValueString(0, 8, _code, False)
+ val.set_charset(DTMF_CHARS)
+ rs = RadioSetting("ani.kill", "Kill Code", val)
+
+ def apply_code(setting, obj):
+ code = []
+ for j in range(0, 8):
+ try:
+ code.append(DTMF_CHARS.index(str(setting.value)[j]))
+ except IndexError:
+ code.append(0xFF)
+ obj.kill = code
+ rs.set_apply_callback(apply_code, self._memobj.ani)
+ dtmfd.append(rs)
+
+ _codeobj = _mem.ani.revive
+ _code = "".join([DTMF_CHARS[x] for x in _codeobj if int(x) < 0x1F])
+ val = RadioSettingValueString(0, 8, _code, False)
+ val.set_charset(DTMF_CHARS)
+ rs = RadioSetting("ani.revive", "Revive Code", val)
+
+ def apply_code(setting, obj):
+ code = []
+ for j in range(0, 8):
+ try:
+ code.append(DTMF_CHARS.index(str(setting.value)[j]))
+ except IndexError:
+ code.append(0xFF)
+ obj.revive = code
+ rs.set_apply_callback(apply_code, self._memobj.ani)
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.resettime", "Reset Time",
+ RadioSettingValueList(LIST_RESETTIME,
+ LIST_RESETTIME[
+ _mem.ani.resettime]))
+ dtmfd.append(rs)
+
+ rs = RadioSetting("ani.delayproctime", "Delay Processing Time",
+ RadioSettingValueList(LIST_DELAYPROCTIME,
+ LIST_DELAYPROCTIME[
+ _mem.ani.delayproctime]))
+ dtmfd.append(rs)
+
# Service settings
for band in ["vhf", "uhf"]:
for index in range(0, 10):
1
0
Tested changes:
[Dan Smith <dsmith(a)danplanet.com>] [LT-725UV] Add Test image
#3745
[Jim Unroe <rock.unroe(a)gmail.com>] [LT-725UV] Add Support for LUITON LT-725UV
This patch adds basic support for the LUITON LT-725UV mobile radio.
#3745
[Tom Hayward <tom(a)tomh.us>] [id880] Fix typo in charset definition. #281
[Tom Hayward <tom(a)tomh.us>] [thf6a] Support full charset (ASCII). Fixes #141
[Tom Hayward <tom(a)tomh.us>] [id880] Support full charset. Fixes #281
[Tom Hayward <tom(a)tomh.us>] [vx5] Support full charset (ASCII). Fixes #292
[Tom Hayward <tom(a)tomh.us>] [id31a] set used bit when creating new memory, clear when deleting. Fixes #269
[Tom Hayward <tom(a)tomh.us>] Support PyGTK < 2.22 in bank edit. Fixes #231
[Tom Hayward <tom(a)tomh.us>] [d710] [v71] [d72] Fix tone list (not all tones are supported). Fixes #212
[Dan Smith <dsmith(a)danplanet.com>] [vx7] Fix setting memory power levels on 220MHz band
Fixes #214
[Dan Smith <dsmith(a)danplanet.com>] fips: Pennsylvania FIPS code was wrong. #117
[Marco Filippi <iz3gme.marco(a)gmail.com>] Consider lower bound frequency of each valid_band as valid
Fix bug #181
[Tom Hayward <tom(a)tomh.us>] tmd700: allow 8-char names. Fixes #176
[Dan Smith <dsmith(a)danplanet.com>] Fix the "blind deletion" problem, as well as properly direct copy/paste
Fixes #172
[David Griffith <dave(a)661.org>] Bug #155 fix: VX-7 1.25m power levels
[David Griffith <dave(a)661.org>] New INSTALL and README files
Fixes #122
[Tom Hayward <tom(a)tomh.us>] thd72: only use hardware flow on OS X. Fixes #166
[Marco Filippi <iz3gme.marco(a)gmail.com>] [FT817] Tone freq not set correctly
Same as #88 for FT857, to avoid code duplication fix code have been moved from
ft857 to its ancestor class
Fix bug #163
[Tom Hayward <tom(a)tomh.us>] Fix Mac .app so paths with spaces work. Fixes Bug #145
Full log:
Started by an SCM change
Building in workspace /var/lib/jenkins/jobs/chirp-test/workspace
[workspace] $ hg showconfig paths.default
[workspace] $ hg pull --rev default
[workspace] $ hg update --clean --rev default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
[workspace] $ hg log --rev . --template {node}
[workspace] $ hg log --rev . --template {rev}
[workspace] $ hg log --rev 161256cc3a33c31b8c1664d133c3b97f378a8f43
[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 161256cc3a33c31b8c1664d133c3b97f378a8f43
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson2037923225659446783.sh
[workspace] $ /bin/sh -xe /tmp/hudson6595993680464644417.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/chirp_common.py:33:32: E202 whitespace before ']'
./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.205s
user 0m7.176s
sys 0m0.016s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-09-04 08:42:53,899] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2016-09-04 08:42:53,941] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-09-04 08:42:53,941] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-09-04 08:42:53,941] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-09-04 08:42:53,942] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-09-04 08:42:53,943] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-09-04 08:42:53,943] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-09-04 08:42:53,943] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-09-04 08:42:53,943] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2016-09-04 08:42:53,943] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-09-04 08:42:53,944] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-09-04 08:42:53,944] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-09-04 08:42:53,944] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-09-04 08:42:53,944] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-09-04 08:42:53,944] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-09-04 08:42:53,944] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-09-04 08:42:53,944] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-09-04 08:42:53,944] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-09-04 08:42:53,945] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-09-04 08:42:53,945] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-09-04 08:42:53,945] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-09-04 08:42:53,945] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-09-04 08:42:53,945] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-09-04 08:42:53,945] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-09-04 08:42:53,946] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-09-04 08:42:53,946] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-09-04 08:42:53,947] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-09-04 08:42:53,947] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-09-04 08:42:53,947] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-09-04 08:42:53,947] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-09-04 08:42:53,948] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-09-04 08:42:53,948] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-09-04 08:42:53,948] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-09-04 08:42:53,948] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-09-04 08:42:53,948] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-09-04 08:42:53,948] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-09-04 08:42:53,948] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-09-04 08:42:53,949] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-09-04 08:42:53,949] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-09-04 08:42:53,949] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-09-04 08:42:53,949] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-09-04 08:42:53,949] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-09-04 08:42:53,949] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-09-04 08:42:53,949] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-09-04 08:42:53,949] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-09-04 08:42:53,950] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-09-04 08:42:53,950] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-09-04 08:42:53,950] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-09-04 08:42:53,950] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-09-04 08:42:53,950] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-09-04 08:42:53,950] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-09-04 08:42:53,951] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-09-04 08:42:53,951] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-09-04 08:42:53,952] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-09-04 08:42:53,952] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-09-04 08:42:53,952] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-09-04 08:42:53,953] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-09-04 08:42:53,953] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-09-04 08:42:53,953] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-09-04 08:42:53,953] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-09-04 08:42:53,954] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-09-04 08:42:53,954] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-09-04 08:42:53,954] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-09-04 08:42:53,954] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-09-04 08:42:53,954] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-09-04 08:42:53,955] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-09-04 08:42:53,955] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-09-04 08:42:53,955] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-09-04 08:42:53,956] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-09-04 08:42:53,956] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-09-04 08:42:53,956] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-09-04 08:42:53,963] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-09-04 08:42:53,966] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-09-04 08:42:53,967] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-09-04 08:42:53,967] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-09-04 08:42:53,967] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-09-04 08:42:53,967] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-09-04 08:42:53,967] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-09-04 08:42:53,967] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-09-04 08:42:53,968] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-09-04 08:42:53,968] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-09-04 08:42:53,968] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-09-04 08:42:53,969] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-09-04 08:42:53,969] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-09-04 08:42:53,969] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-09-04 08:42:53,969] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-09-04 08:42:53,970] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-09-04 08:42:53,970] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-09-04 08:42:53,970] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-09-04 08:42:53,970] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-09-04 08:42:53,970] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-09-04 08:42:53,971] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-09-04 08:42:53,971] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-09-04 08:42:53,971] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-09-04 08:42:53,971] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-09-04 08:42:53,972] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-09-04 08:42:53,972] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-09-04 08:42:53,972] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-09-04 08:42:53,972] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-09-04 08:42:53,973] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-09-04 08:42:53,973] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2016-09-04 08:42:53,973] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-09-04 08:42:53,973] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-09-04 08:42:53,974] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-09-04 08:42:53,974] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-09-04 08:42:53,974] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-09-04 08:42:53,974] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-09-04 08:42:53,974] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-09-04 08:42:53,974] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-09-04 08:42:53,976] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-09-04 08:42:53,976] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-09-04 08:42:53,976] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-09-04 08:42:53,976] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-09-04 08:42:53,976] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-09-04 08:42:53,976] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-09-04 08:42:53,977] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-09-04 08:42:53,977] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-09-04 08:42:53,977] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-09-04 08:42:53,977] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-09-04 08:42:53,978] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-09-04 08:42:53,978] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-09-04 08:42:53,978] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-09-04 08:42:53,978] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-09-04 08:42:53,978] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-09-04 08:42:53,978] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-09-04 08:42:53,978] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-09-04 08:42:53,979] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-09-04 08:42:53,979] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-09-04 08:42:53,979] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-09-04 08:42:53,979] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-09-04 08:42:53,979] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-09-04 08:42:53,979] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-09-04 08:42:53,979] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-09-04 08:42:53,980] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-09-04 08:42:53,980] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-09-04 08:42:53,980] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-09-04 08:42:53,980] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-09-04 08:42:53,980] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-09-04 08:42:53,980] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-09-04 08:42:53,980] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2016-09-04 08:42:53,980] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2016-09-04 08:42:53,981] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2016-09-04 08:42:53,981] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2016-09-04 08:42:53,981] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2016-09-04 08:42:53,981] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-09-04 08:42:53,981] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-09-04 08:42:53,981] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-09-04 08:42:53,981] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-09-04 08:42:53,981] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-09-04 08:42:53,981] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-09-04 08:42:53,982] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-09-04 08:42:53,982] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-09-04 08:42:53,982] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-09-04 08:42:53,982] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2016-09-04 08:42:53,983] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2016-09-04 08:42:53,983] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-09-04 08:42:53,983] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2016-09-04 08:42:53,984] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-09-04 08:42:53,984] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-09-04 08:42:53,984] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-09-04 08:42:53,985] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-09-04 08:42:53,985] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-09-04 08:42:53,985] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-09-04 08:42:53,986] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-09-04 08:42:53,986] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-09-04 08:42:53,986] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-09-04 08:42:53,986] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
+ rm /tmp/Alinco_DJ175_zmydct.img /tmp/Alinco_DJ596_XuBT_U.img /tmp/Alinco_DR235T_TTt72J.img /tmp/AnyTone_OBLTR-8R_xsfs7e.img /tmp/AnyTone_TERMN-8R_09eMOQ.img /tmp/BTECH_UV-2501+220_fKpNZw.img /tmp/BTECH_UV-5001_k4tuqZ.img /tmp/BTECH_UV-50X3_CQ8K_o.img /tmp/BTECH_UV-50X3_Cco6io.img /tmp/BTECH_UV-50X3_fVQ8Pd.img /tmp/BTECH_UV-5X3_ktqnJI.img /tmp/Baofeng_BF-888_EfMfZd.img /tmp/Baofeng_F-11_lXnP99.img /tmp/Baofeng_UV-3R_zh0Otm.img /tmp/Baofeng_UV-5R_KP_XCB.img /tmp/Baofeng_UV-6R_20Xjda.img /tmp/Baofeng_UV-B5_o_IQW_.img /tmp/Baojie_BJ-9900_9btIB0.img /tmp/Baojie_BJ-9900_UI96gA.img /tmp/Baojie_BJ-9900_lE17c3.img /tmp/Feidaxin_FD-268A_jyJwcd.img /tmp/Feidaxin_FD-268B_OyqOaY.img /tmp/Feidaxin_FD-288B_Hcz24V.img /tmp/Icom_IC-208H_OPzZOU.img /tmp/Icom_IC-2100H_lUll_h.img /tmp/Icom_IC-2200H_EHJJjP.img /tmp/Icom_IC-2720H_aYZNxW.img /tmp/Icom_IC-2820H_oS3PJb.img /tmp/Icom_IC-Q7A_65zIvo.img /tmp/Icom_IC-T70_v4HGha.img /tmp/Icom_IC-T7H_L8RvHa.img /tmp/Icom_IC-T8A_UBN8R1.img /tmp/Icom_IC-V82_U82_IjYm2q.img /tmp/Icom_IC-W32A_41wOYB.img /tmp/Icom_IC-W32A_4sKB3r.img /tmp/Icom_IC-W32A_MWjeEy.img /tmp/Icom_IC-W32E_FTBeBM.img /tmp/Icom_IC-W32E_M5k5Y9.img /tmp/Icom_IC-W32E_sKg8vT.img /tmp/Icom_ID-31A_dVsmzK.img /tmp/Icom_ID-51 Plus_U2jmjO.img /tmp/Icom_ID-51_9aWKPT.img /tmp/Icom_ID-800H_9bBiZp.img /tmp/Icom_ID-880H_UA5xkk.img /tmp/Jetstream_JT220M_c9YkLz.img /tmp/Jetstream_JT270M_TEDkU_.img /tmp/KYD_IP-620_kGujS9.img /tmp/Kenwood_TH-D72 (clone mode)_fChn7P.img /tmp/Kenwood_TK-272G_MotfJU.img /tmp/Kenwood_TK-760G_AFhBk4.img /tmp/Kenwood_TK-8102_Nc9tPM.img /tmp/LUITON_LT-725UV_G1_E8J.img /tmp/LUITON_LT-725UV_W6P_Uc.img /tmp/LUITON_LT-725UV_ziruky.img /tmp/Leixen_VV-898_4TIExb.img /tmp/Polmar_DB-50M_Ismjbi.img /tmp/Puxing_PX-2R_SC7CAz.img /tmp/Puxing_PX-777_KMSuML.img /tmp/TYT_TH-7800_vyankQ.img /tmp/TYT_TH-9800_pXMvhz.img /tmp/TYT_TH-UV3R-25_nMOmiD.img /tmp/TYT_TH-UV3R_ARgFVf.img /tmp/TYT_TH-UVF1_exC4Rh.img /tmp/TYT_TH9000_144_CyVfeF.img /tmp/Vertex Standard_VXA-700_IaClqz.img /tmp/WACCOM_MINI-8900_8jH3bD.img /tmp/Wouxun_KG-816_avkoDH.img /tmp/Wouxun_KG-818_U7ruSQ.img /tmp/Wouxun_KG-UV6_5HGwKr.img /tmp/Wouxun_KG-UV8D_B0E6iQ.img /tmp/Wouxun_KG-UVD1P_TSE5C6.img /tmp/Yaesu_FT-1802M_6gWMLq.img /tmp/Yaesu_FT-1D_0kITy6.img /tmp/Yaesu_FT-2800M_N487Yv.img /tmp/Yaesu_FT-2900R_1900R_WaVCsw.img /tmp/Yaesu_FT-50_dLhSeB.img /tmp/Yaesu_FT-60_4ZDRfP.img /tmp/Yaesu_FT-7800_7900_ZyQTNR.img /tmp/Yaesu_FT-817ND (US)_FGO0nA.img /tmp/Yaesu_FT-817ND_IXEjEE.img /tmp/Yaesu_FT-817_hm517X.img /tmp/Yaesu_FT-857_897 (US)_sRU5sz.img /tmp/Yaesu_FT-857_897_izOqne.img /tmp/Yaesu_FT-8800_0BJAv4.img /tmp/Yaesu_FT-8800_70QO5h.img /tmp/Yaesu_FT-8800_jWpdNx.img /tmp/Yaesu_FT-8900_bFt5pH.img /tmp/Yaesu_FTM-350_8dCac_.img /tmp/Yaesu_FTM-350_9wuVI1.img /tmp/Yaesu_FTM-350_FWAgzv.img /tmp/Yaesu_VX-2_NUVJtP.img /tmp/Yaesu_VX-3_LdZKwB.img /tmp/Yaesu_VX-5_tyWPmQ.img /tmp/Yaesu_VX-6_G9PIeT.img /tmp/Yaesu_VX-7_iE5QnQ.img /tmp/Yaesu_VX-8_n7JskV.img
Email was triggered for: Success
Sending email for trigger: Success
1
0
Tested changes:
[Brian Dickman <brian.maybe(a)gmail.com>] [leixen] Revert 94db968fce11, unneeded patch that was refactored
Related to #3899
[Tom Hayward <tom(a)tomh.us>] [id880] Fix typo in charset definition. #281
[Tom Hayward <tom(a)tomh.us>] [thf6a] Support full charset (ASCII). Fixes #141
[Tom Hayward <tom(a)tomh.us>] [id880] Support full charset. Fixes #281
[Tom Hayward <tom(a)tomh.us>] [vx5] Support full charset (ASCII). Fixes #292
[Tom Hayward <tom(a)tomh.us>] [id31a] set used bit when creating new memory, clear when deleting. Fixes #269
[Tom Hayward <tom(a)tomh.us>] Support PyGTK < 2.22 in bank edit. Fixes #231
[Tom Hayward <tom(a)tomh.us>] [d710] [v71] [d72] Fix tone list (not all tones are supported). Fixes #212
[Dan Smith <dsmith(a)danplanet.com>] [vx7] Fix setting memory power levels on 220MHz band
Fixes #214
[Dan Smith <dsmith(a)danplanet.com>] fips: Pennsylvania FIPS code was wrong. #117
[Marco Filippi <iz3gme.marco(a)gmail.com>] Consider lower bound frequency of each valid_band as valid
Fix bug #181
[Tom Hayward <tom(a)tomh.us>] tmd700: allow 8-char names. Fixes #176
[Dan Smith <dsmith(a)danplanet.com>] Fix the "blind deletion" problem, as well as properly direct copy/paste
Fixes #172
[David Griffith <dave(a)661.org>] Bug #155 fix: VX-7 1.25m power levels
[David Griffith <dave(a)661.org>] New INSTALL and README files
Fixes #122
[Tom Hayward <tom(a)tomh.us>] thd72: only use hardware flow on OS X. Fixes #166
[Marco Filippi <iz3gme.marco(a)gmail.com>] [FT817] Tone freq not set correctly
Same as #88 for FT857, to avoid code duplication fix code have been moved from
ft857 to its ancestor class
Fix bug #163
[Tom Hayward <tom(a)tomh.us>] Fix Mac .app so paths with spaces work. Fixes Bug #145
Full log:
Started by an SCM change
Building in workspace /var/lib/jenkins/jobs/chirp-test/workspace
[workspace] $ hg showconfig paths.default
[workspace] $ hg pull --rev default
[workspace] $ hg update --clean --rev default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
[workspace] $ hg log --rev . --template {node}
[workspace] $ hg log --rev . --template {rev}
[workspace] $ hg log --rev 617ef175811dcf0d49b8dba8769e845972ebf672
[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 617ef175811dcf0d49b8dba8769e845972ebf672
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson6323529516009017340.sh
[workspace] $ /bin/sh -xe /tmp/hudson7501124288616746732.sh
+ PATH=/usr/bin:/bin:/usr/local/bin ./run_all_tests.sh
test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok
test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok
test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok
test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok
test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok
test_init (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok
test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok
test_changed (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok
test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok
test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
----------------------------------------------------------------------
Ran 151 tests in 0.054s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/chirp_common.py:33:32: E202 whitespace before ']'
./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.561s
user 0m7.460s
sys 0m0.036s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-09-04 08:37:54,679] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2016-09-04 08:37:54,718] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-09-04 08:37:54,719] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-09-04 08:37:54,719] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-09-04 08:37:54,719] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-09-04 08:37:54,719] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-09-04 08:37:54,719] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-09-04 08:37:54,719] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-09-04 08:37:54,719] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-09-04 08:37:54,719] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-09-04 08:37:54,719] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-09-04 08:37:54,719] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-09-04 08:37:54,719] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-09-04 08:37:54,720] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-09-04 08:37:54,720] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-09-04 08:37:54,720] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-09-04 08:37:54,720] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-09-04 08:37:54,720] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-09-04 08:37:54,720] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-09-04 08:37:54,720] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2016-09-04 08:37:54,720] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-09-04 08:37:54,721] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-09-04 08:37:54,721] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-09-04 08:37:54,721] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-09-04 08:37:54,722] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-09-04 08:37:54,722] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-09-04 08:37:54,722] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-09-04 08:37:54,722] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-09-04 08:37:54,722] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-09-04 08:37:54,723] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-09-04 08:37:54,723] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-09-04 08:37:54,723] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-09-04 08:37:54,723] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-09-04 08:37:54,724] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-09-04 08:37:54,724] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-09-04 08:37:54,726] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-09-04 08:37:54,726] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-09-04 08:37:54,728] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-09-04 08:37:54,728] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-09-04 08:37:54,728] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-09-04 08:37:54,728] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-09-04 08:37:54,729] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-09-04 08:37:54,729] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-09-04 08:37:54,729] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-09-04 08:37:54,729] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-09-04 08:37:54,730] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-09-04 08:37:54,730] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-09-04 08:37:54,730] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-09-04 08:37:54,730] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-09-04 08:37:54,730] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-09-04 08:37:54,730] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-09-04 08:37:54,730] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-09-04 08:37:54,730] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-09-04 08:37:54,731] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-09-04 08:37:54,731] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-09-04 08:37:54,731] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-09-04 08:37:54,731] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-09-04 08:37:54,731] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-09-04 08:37:54,731] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-09-04 08:37:54,731] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-09-04 08:37:54,731] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-09-04 08:37:54,732] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-09-04 08:37:54,732] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-09-04 08:37:54,733] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-09-04 08:37:54,733] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-09-04 08:37:54,733] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-09-04 08:37:54,734] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-09-04 08:37:54,734] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-09-04 08:37:54,734] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-09-04 08:37:54,734] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-09-04 08:37:54,734] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-09-04 08:37:54,735] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-09-04 08:37:54,735] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-09-04 08:37:54,735] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-09-04 08:37:54,735] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-09-04 08:37:54,736] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-09-04 08:37:54,736] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-09-04 08:37:54,736] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-09-04 08:37:54,737] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-09-04 08:37:54,737] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-09-04 08:37:54,737] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-09-04 08:37:54,737] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-09-04 08:37:54,744] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-09-04 08:37:54,747] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-09-04 08:37:54,748] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-09-04 08:37:54,748] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-09-04 08:37:54,748] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-09-04 08:37:54,748] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-09-04 08:37:54,748] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-09-04 08:37:54,749] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-09-04 08:37:54,749] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-09-04 08:37:54,749] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-09-04 08:37:54,750] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-09-04 08:37:54,750] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-09-04 08:37:54,750] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-09-04 08:37:54,750] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-09-04 08:37:54,750] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-09-04 08:37:54,751] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-09-04 08:37:54,751] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-09-04 08:37:54,751] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-09-04 08:37:54,751] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-09-04 08:37:54,751] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-09-04 08:37:54,752] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-09-04 08:37:54,752] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-09-04 08:37:54,752] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-09-04 08:37:54,752] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-09-04 08:37:54,753] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-09-04 08:37:54,753] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-09-04 08:37:54,753] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-09-04 08:37:54,753] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-09-04 08:37:54,754] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-09-04 08:37:54,754] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-09-04 08:37:54,754] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-09-04 08:37:54,754] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-09-04 08:37:54,754] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-09-04 08:37:54,754] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-09-04 08:37:54,755] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-09-04 08:37:54,755] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-09-04 08:37:54,755] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-09-04 08:37:54,755] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-09-04 08:37:54,755] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-09-04 08:37:54,756] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-09-04 08:37:54,757] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-09-04 08:37:54,757] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-09-04 08:37:54,757] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-09-04 08:37:54,757] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-09-04 08:37:54,757] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-09-04 08:37:54,758] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-09-04 08:37:54,758] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-09-04 08:37:54,758] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-09-04 08:37:54,758] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-09-04 08:37:54,758] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-09-04 08:37:54,759] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-09-04 08:37:54,759] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-09-04 08:37:54,759] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-09-04 08:37:54,759] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-09-04 08:37:54,759] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-09-04 08:37:54,759] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-09-04 08:37:54,759] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-09-04 08:37:54,759] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-09-04 08:37:54,759] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-09-04 08:37:54,760] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-09-04 08:37:54,760] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-09-04 08:37:54,760] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-09-04 08:37:54,760] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-09-04 08:37:54,760] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-09-04 08:37:54,760] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-09-04 08:37:54,760] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-09-04 08:37:54,761] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-09-04 08:37:54,761] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2016-09-04 08:37:54,761] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2016-09-04 08:37:54,761] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2016-09-04 08:37:54,761] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2016-09-04 08:37:54,761] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2016-09-04 08:37:54,761] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-09-04 08:37:54,761] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-09-04 08:37:54,761] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-09-04 08:37:54,761] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-09-04 08:37:54,762] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-09-04 08:37:54,762] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-09-04 08:37:54,762] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-09-04 08:37:54,762] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-09-04 08:37:54,762] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-09-04 08:37:54,763] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2016-09-04 08:37:54,763] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2016-09-04 08:37:54,763] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-09-04 08:37:54,764] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2016-09-04 08:37:54,764] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-09-04 08:37:54,764] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-09-04 08:37:54,765] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-09-04 08:37:54,765] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-09-04 08:37:54,765] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-09-04 08:37:54,766] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-09-04 08:37:54,766] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-09-04 08:37:54,766] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-09-04 08:37:54,766] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-09-04 08:37:54,766] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
+ rm /tmp/Alinco_DJ175_87GLr6.img /tmp/Alinco_DJ175_WDbQlB.img /tmp/Alinco_DJ596_ACtvB6.img /tmp/Alinco_DJ596_rAIlde.img /tmp/Alinco_DR235T_YFuius.img /tmp/Alinco_DR235T_jDs0Vc.img /tmp/AnyTone_OBLTR-8R_0mvDCI.img /tmp/AnyTone_OBLTR-8R_T5d2xs.img /tmp/AnyTone_TERMN-8R__98LnZ.img /tmp/AnyTone_TERMN-8R_hjaW8C.img /tmp/BTECH_UV-2501+220_XlbMkA.img /tmp/BTECH_UV-2501+220_Y1ZpuU.img /tmp/BTECH_UV-5001_Wp6W4x.img /tmp/BTECH_UV-5001_iRIaRG.img /tmp/BTECH_UV-50X3_31xWNf.img /tmp/BTECH_UV-50X3_4aWot5.img /tmp/BTECH_UV-50X3_GMpdKQ.img /tmp/BTECH_UV-50X3_LGHgj4.img /tmp/BTECH_UV-50X3_LGKvDy.img /tmp/BTECH_UV-50X3_PM4pWQ.img /tmp/BTECH_UV-5X3_eFS4fZ.img /tmp/BTECH_UV-5X3_pZM8V2.img /tmp/Baofeng_BF-888_5FyW24.img /tmp/Baofeng_BF-888__nWNd_.img /tmp/Baofeng_F-11_CGogD9.img /tmp/Baofeng_F-11_xTu0WO.img /tmp/Baofeng_UV-3R_X50TV7.img /tmp/Baofeng_UV-3R_dlcy4P.img /tmp/Baofeng_UV-5R_9Z8e93.img /tmp/Baofeng_UV-5R_JtJiYT.img /tmp/Baofeng_UV-6R_WBBSw_.img /tmp/Baofeng_UV-6R_loxEkB.img /tmp/Baofeng_UV-B5_UMZsyG.img /tmp/Baofeng_UV-B5_a8uMBW.img /tmp/Baojie_BJ-9900_TlScq4.img /tmp/Baojie_BJ-9900_TzWFXg.img /tmp/Baojie_BJ-9900_UYSk3D.img /tmp/Baojie_BJ-9900_bYtP47.img /tmp/Baojie_BJ-9900_chdYOg.img /tmp/Baojie_BJ-9900_fRKevV.img /tmp/Feidaxin_FD-268A__sm0xl.img /tmp/Feidaxin_FD-268A_hgfuh6.img /tmp/Feidaxin_FD-268B_BNCnvJ.img /tmp/Feidaxin_FD-268B_XGHQyS.img /tmp/Feidaxin_FD-288B_6jBYLv.img /tmp/Feidaxin_FD-288B_8x8X9p.img /tmp/Icom_IC-208H_IaxQWi.img /tmp/Icom_IC-208H_jRBlsQ.img /tmp/Icom_IC-2100H_58Angp.img /tmp/Icom_IC-2100H_Qzxmiq.img /tmp/Icom_IC-2200H_Cm0kFP.img /tmp/Icom_IC-2200H_gKqvMb.img /tmp/Icom_IC-2720H_Al4CFM.img /tmp/Icom_IC-2720H_sQfSaD.img /tmp/Icom_IC-2820H_DKkzC8.img /tmp/Icom_IC-2820H_T_Zuep.img /tmp/Icom_IC-Q7A_2OeS8H.img /tmp/Icom_IC-Q7A_cs40vr.img /tmp/Icom_IC-T70_EvZrCX.img /tmp/Icom_IC-T70_KrfQXV.img /tmp/Icom_IC-T7H_JdhWax.img /tmp/Icom_IC-T7H_m6mBJW.img /tmp/Icom_IC-T8A_7jo9Ur.img /tmp/Icom_IC-T8A_Namw6Z.img /tmp/Icom_IC-V82_U82_hgvG6Q.img /tmp/Icom_IC-V82_U82_s4WkJK.img /tmp/Icom_IC-W32A_Npb1Ef.img /tmp/Icom_IC-W32A_SeKJpG.img /tmp/Icom_IC-W32A_Siotio.img /tmp/Icom_IC-W32A_mt4Bx7.img /tmp/Icom_IC-W32A_nETWqX.img /tmp/Icom_IC-W32A_vsqVOZ.img /tmp/Icom_IC-W32E_723YhC.img /tmp/Icom_IC-W32E_7AXGS1.img /tmp/Icom_IC-W32E_9Ds2wC.img /tmp/Icom_IC-W32E_ilw06b.img /tmp/Icom_IC-W32E_lhC8mz.img /tmp/Icom_IC-W32E_nLJz9t.img /tmp/Icom_ID-31A_Ibb_DE.img /tmp/Icom_ID-31A_tO2oG5.img /tmp/Icom_ID-51 Plus_d_wxDo.img /tmp/Icom_ID-51 Plus_jBBNln.img /tmp/Icom_ID-51_SO0Hdu.img /tmp/Icom_ID-51_TQoQP_.img /tmp/Icom_ID-800H_4ACxO2.img /tmp/Icom_ID-800H_S_DbL1.img /tmp/Icom_ID-880H_fsByHE.img /tmp/Icom_ID-880H_shTipW.img /tmp/Jetstream_JT220M_4BUSwQ.img /tmp/Jetstream_JT220M_tnu7sE.img /tmp/Jetstream_JT270M_ixQ0t7.img /tmp/Jetstream_JT270M_ymyBXe.img /tmp/KYD_IP-620_OGNfgl.img /tmp/KYD_IP-620_eJmvJ7.img /tmp/Kenwood_TH-D72 (clone mode)_AdJS7F.img /tmp/Kenwood_TH-D72 (clone mode)_ihMroE.img /tmp/Kenwood_TK-272G_Zo_WJG.img /tmp/Kenwood_TK-272G_jF04sq.img /tmp/Kenwood_TK-760G_8hXyRG.img /tmp/Kenwood_TK-760G_yp_Wn3.img /tmp/Kenwood_TK-8102_k8h29i.img /tmp/Kenwood_TK-8102_s9z3il.img /tmp/Leixen_VV-898_4TeWel.img /tmp/Leixen_VV-898_pZHsue.img /tmp/Polmar_DB-50M_MCYelQ.img /tmp/Polmar_DB-50M_bI0L97.img /tmp/Puxing_PX-2R_oDA9ip.img /tmp/Puxing_PX-2R_wmTmBf.img /tmp/Puxing_PX-777_NiW4gI.img /tmp/Puxing_PX-777_gmjxz_.img /tmp/TYT_TH-7800_TOTCSN.img /tmp/TYT_TH-7800_TbZHS3.img /tmp/TYT_TH-9800_n0z0OB.img /tmp/TYT_TH-9800_vGRXd9.img /tmp/TYT_TH-UV3R-25_K9Z8PX.img /tmp/TYT_TH-UV3R-25_ocF4Os.img /tmp/TYT_TH-UV3R_Rio1JR.img /tmp/TYT_TH-UV3R_tpTUXQ.img /tmp/TYT_TH-UVF1_02hN64.img /tmp/TYT_TH-UVF1_Q354d2.img /tmp/TYT_TH9000_144_1Oc0pM.img /tmp/TYT_TH9000_144_aom_04.img /tmp/Vertex Standard_VXA-700_d_t5YI.img /tmp/Vertex Standard_VXA-700_epVqjg.img /tmp/WACCOM_MINI-8900_eFLIJO.img /tmp/WACCOM_MINI-8900_fvurCW.img /tmp/Wouxun_KG-816_Krl2ks.img /tmp/Wouxun_KG-816_a7LJc3.img /tmp/Wouxun_KG-818_AmKbYj.img /tmp/Wouxun_KG-818_zCPOea.img /tmp/Wouxun_KG-UV6_iC8DeP.img /tmp/Wouxun_KG-UV6_lVPrHB.img /tmp/Wouxun_KG-UV8D_KPUP1f.img /tmp/Wouxun_KG-UV8D_Yc_ONF.img /tmp/Wouxun_KG-UVD1P_FAzDQz.img /tmp/Wouxun_KG-UVD1P_YYonQk.img /tmp/Yaesu_FT-1802M_I8EEeT.img /tmp/Yaesu_FT-1802M_d7tG16.img /tmp/Yaesu_FT-1D_191PTJ.img /tmp/Yaesu_FT-1D_tbeROy.img /tmp/Yaesu_FT-2800M_szNCDE.img /tmp/Yaesu_FT-2800M_utrqKn.img /tmp/Yaesu_FT-2900R_1900R_6CFqVJ.img /tmp/Yaesu_FT-2900R_1900R_NweHdU.img /tmp/Yaesu_FT-50_ICWHGy.img /tmp/Yaesu_FT-50_WmRGyU.img /tmp/Yaesu_FT-60_EI696W.img /tmp/Yaesu_FT-60_dL3skF.img /tmp/Yaesu_FT-7800_7900_1gyDkO.img /tmp/Yaesu_FT-7800_7900_CXM0jW.img /tmp/Yaesu_FT-817ND (US)_OgPwoF.img /tmp/Yaesu_FT-817ND (US)_Otge0d.img /tmp/Yaesu_FT-817ND_HE0pBr.img /tmp/Yaesu_FT-817ND_VG89uW.img /tmp/Yaesu_FT-817_Fi1qo8.img /tmp/Yaesu_FT-817_OPQEe4.img /tmp/Yaesu_FT-857_897 (US)_Nuv3Mh.img /tmp/Yaesu_FT-857_897 (US)_SKOdO0.img /tmp/Yaesu_FT-857_897_4lfREL.img /tmp/Yaesu_FT-857_897_GZxjsB.img /tmp/Yaesu_FT-8800_K5CDXG.img /tmp/Yaesu_FT-8800_NtPzBN.img /tmp/Yaesu_FT-8800_QFMze3.img /tmp/Yaesu_FT-8800_fzkyWQ.img /tmp/Yaesu_FT-8800_l6f1yP.img /tmp/Yaesu_FT-8800_sdehPX.img /tmp/Yaesu_FT-8900_gL7ELS.img /tmp/Yaesu_FT-8900_jLuxZ6.img /tmp/Yaesu_FTM-350_0p7Cxc.img /tmp/Yaesu_FTM-350_5TBPgU.img /tmp/Yaesu_FTM-350_eoR4yP.img /tmp/Yaesu_FTM-350_k3eocs.img /tmp/Yaesu_FTM-350_pwqh8t.img /tmp/Yaesu_FTM-350_xIw4WA.img /tmp/Yaesu_VX-2_X3mRKl.img /tmp/Yaesu_VX-2_h5V9z_.img /tmp/Yaesu_VX-3_C_pXDR.img /tmp/Yaesu_VX-3_h4V60H.img /tmp/Yaesu_VX-5_RkRYPK.img /tmp/Yaesu_VX-5_s13ixf.img /tmp/Yaesu_VX-6_DvpNC4.img /tmp/Yaesu_VX-6_r5Cw_Q.img /tmp/Yaesu_VX-7_MpNFkT.img /tmp/Yaesu_VX-7_ckNVnj.img /tmp/Yaesu_VX-8_Xbyq8P.img /tmp/Yaesu_VX-8_vwTXX8.img
Email was triggered for: Success
Sending email for trigger: Success
1
0

04 Sep '16
# HG changeset patch
# User Brian Dickman <brian.maybe(a)gmail.com>
# Date 1472935944 25200
# Sat Sep 03 13:52:24 2016 -0700
# Node ID d9eda786d470f7845f96d3ada98e3de65f5213a6
# Parent 3d8359621d43d5713869497d17182d6a43aebd67
[leixen] [ 1 of 2 ] Migrate radio paramters into class to prepare for
multiple models
Parameterize the mmap to account for changes between the 898 and 898S
models. Move power levels into the class out of the global module
level. Extend model matching to additional bytes to tell apart
additional models. Related to #3889, #3327, #3065.
diff -r 3d8359621d43 -r d9eda786d470 chirp/drivers/leixen.py
--- a/chirp/drivers/leixen.py Sat Sep 03 08:37:00 2016 -0700
+++ b/chirp/drivers/leixen.py Sat Sep 03 13:52:24 2016 -0700
@@ -135,14 +135,13 @@
u8 unknown5;
u8 pttidoff:1,
dtmfoff:1,
- unknown6:1,
+ %(unknownormode)s,
tailcut:1,
aliasop:1,
talkaroundoff:1,
voxoff:1,
skip:1;
- u8 power:1,
- mode:1
+ u8 %(modeorpower)s,
reverseoff:1,
blckoff:1,
unknown7:1,
@@ -223,8 +222,6 @@
"Reverse"
]
-POWER_LEVELS = [chirp_common.PowerLevel("Low", watts=4),
- chirp_common.PowerLevel("High", watts=10)]
MODES = ["NFM", "FM"]
WTFTONES = map(float, xrange(56, 64))
TONES = WTFTONES + chirp_common.TONES
@@ -326,7 +323,8 @@
_ranges = [(0x0d00, 0x2000)]
image_ident = _image_ident_from_image(radio)
- if image_ident.startswith(radio._file_ident) and "LX-" in image_ident:
+ if image_ident.startswith(radio._file_ident) and \
+ radio._model_ident in image_ident:
_ranges = radio._ranges
do_ident(radio)
@@ -371,6 +369,8 @@
BAUD_RATE = 9600
_file_ident = "Leixen"
+ _model_ident = 'LX-\x89\x85\x63'
+
_memsize = 0x2000
_ranges = [
(0x0000, 0x013f),
@@ -382,6 +382,11 @@
(0x0d00, 0x2000),
]
+ _mem_formatter = {'unknownormode': 'unknown6:1',
+ 'modeorpower': 'mode:1, power:1'}
+ _power_levels = [chirp_common.PowerLevel("Low", watts=4),
+ chirp_common.PowerLevel("High", watts=10)]
+
def get_features(self):
rf = chirp_common.RadioFeatures()
rf.has_settings = True
@@ -402,7 +407,7 @@
"DTCS->DTCS"]
rf.valid_characters = chirp_common.CHARSET_ASCII
rf.valid_name_length = 7
- rf.valid_power_levels = POWER_LEVELS
+ rf.valid_power_levels = self._power_levels
rf.valid_duplexes = ["", "-", "+", "split", "off"]
rf.valid_skips = ["", "S"]
rf.valid_bands = [(136000000, 174000000),
@@ -419,7 +424,7 @@
self.process_mmap()
def process_mmap(self):
- self._memobj = bitwise.parse(MEM_FORMAT, self._mmap)
+ self._memobj = bitwise.parse(MEM_FORMAT %
self._mem_formatter, self._mmap)
def sync_out(self):
try:
@@ -492,12 +497,8 @@
self._get_tone(mem, _mem)
mem.mode = MODES[_mem.mode]
- mem.power = POWER_LEVELS[_mem.power]
- mem.skip = _mem.skip and "S" or ""
-
- self._get_tone(mem, _mem)
- mem.mode = MODES[_mem.mode]
- mem.power = POWER_LEVELS[_mem.power]
+ powerindex = _mem.power if _mem.power < len(self._power_levels) else -1
+ mem.power = self._power_levels[powerindex]
mem.skip = _mem.skip and "S" or ""
mem.extra = RadioSettingGroup("Extra", "extra")
@@ -595,7 +596,7 @@
self._set_tone(mem, _mem)
- _mem.power = mem.power and POWER_LEVELS.index(mem.power) or 0
+ _mem.power = mem.power and self._power_levels.index(mem.power) or 0
_mem.mode = MODES.index(mem.mode)
_mem.skip = mem.skip == "S"
_name.name = mem.name.ljust(7)
@@ -934,9 +935,7 @@
@classmethod
def match_model(cls, filedata, filename):
if filedata[0x168:0x170].startswith(cls._file_ident) and \
- filedata[0x170:0x178].startswith("LX-\x89\x85"):
- return True
- elif filedata[0x900:0x906] == cls.MODEL:
+
filedata[0x170:0x178].startswith(cls._model_ident):
return True
else:
return False
@@ -949,3 +948,4 @@
MODEL = "JT270M"
_file_ident = "JET"
+ _model_ident = 'LX-\x89\x85\x53'
2
1