Developers
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
November 2016
- 8 participants
- 31 discussions
Tested changes:
[Dan Smith <dsmith(a)danplanet.com>] Add RT22 image from Jim
Related to #4145
[Jim Unroe <rock.unroe(a)gmail.com>] [NEW MODEL] Add Support for Retevis RT22 and Others
This patch adds support for the following radio models:
Retevis RT22
WLN KD-C1
Zastone ZT-X6
related to #4145
[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 4e4771ee91278ab3b3a3594cb074fede97e782fb
[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 4e4771ee91278ab3b3a3594cb074fede97e782fb
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson8757447550643749949.sh
[workspace] $ /bin/sh -xe /tmp/hudson7771595913304760514.sh
+ PATH=/usr/bin:/bin:/usr/local/bin ./run_all_tests.sh
test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok
test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok
test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok
test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok
test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok
test_init (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok
test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok
test_changed (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok
test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok
test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
----------------------------------------------------------------------
Ran 151 tests in 0.053s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/drivers/alinco.py:595:1: E302 expected 2 blank lines, found 1
./chirp/drivers/alinco.py:603:80: E501 line too long (114 > 79 characters)
./chirp/drivers/alinco.py:608:26: E261 at least two spaces before inline comment
./chirp/drivers/alinco.py:608:80: E501 line too long (84 > 79 characters)
./chirp/drivers/alinco.py:616:26: E222 multiple spaces after operator
./chirp/drivers/alinco.py:718:80: E501 line too long (89 > 79 characters)
./chirp/drivers/alinco.py:736:32: E261 at least two spaces before inline comment
./chirp/drivers/alinco.py:749:80: E501 line too long (86 > 79 characters)
./chirp/drivers/alinco.py:750:47: E128 continuation line under-indented for visual indent
./chirp/drivers/alinco.py:754:80: E501 line too long (86 > 79 characters)
./chirp/drivers/alinco.py:755:47: E128 continuation line under-indented for visual indent
./chirp/drivers/alinco.py:758:80: E501 line too long (81 > 79 characters)
./chirp/drivers/alinco.py:763:80: E501 line too long (86 > 79 characters)
./chirp/drivers/alinco.py:764:47: E128 continuation line under-indented for visual indent
./chirp/drivers/alinco.py:770:80: E501 line too long (86 > 79 characters)
./chirp/drivers/alinco.py:771:47: E128 continuation line under-indented for visual indent
./chirp/drivers/alinco.py:775:80: E501 line too long (86 > 79 characters)
./chirp/drivers/alinco.py:776:47: E128 continuation line under-indented for visual indent
./chirp/drivers/alinco.py:779:55: E231 missing whitespace after ','
real 0m7.608s
user 0m7.512s
sys 0m0.036s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-11-16 20:28:05,635] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2016-11-16 20:28:05,671] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-11-16 20:28:05,671] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-11-16 20:28:05,671] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-11-16 20:28:05,672] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-11-16 20:28:05,672] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-11-16 20:28:05,672] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-11-16 20:28:05,672] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-11-16 20:28:05,672] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-11-16 20:28:05,672] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-11-16 20:28:05,672] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-11-16 20:28:05,672] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-11-16 20:28:05,672] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-11-16 20:28:05,672] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-11-16 20:28:05,672] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-11-16 20:28:05,673] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-11-16 20:28:05,673] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-11-16 20:28:05,673] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-11-16 20:28:05,673] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-11-16 20:28:05,673] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2016-11-16 20:28:05,673] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-11-16 20:28:05,674] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-11-16 20:28:05,674] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-11-16 20:28:05,674] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-11-16 20:28:05,674] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-11-16 20:28:05,674] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-11-16 20:28:05,674] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-11-16 20:28:05,674] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-11-16 20:28:05,674] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-11-16 20:28:05,675] chirp.directory - INFO: Registered Alinco_DJ-G7EG = AlincoDJG7EG
[2016-11-16 20:28:05,675] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-11-16 20:28:05,675] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-11-16 20:28:05,675] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-11-16 20:28:05,675] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-11-16 20:28:05,675] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-11-16 20:28:05,675] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-11-16 20:28:05,676] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-11-16 20:28:05,677] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2016-11-16 20:28:05,677] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2016-11-16 20:28:05,677] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2016-11-16 20:28:05,677] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2016-11-16 20:28:05,677] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-11-16 20:28:05,678] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-11-16 20:28:05,678] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-11-16 20:28:05,678] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-11-16 20:28:05,678] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-11-16 20:28:05,678] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-11-16 20:28:05,678] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-11-16 20:28:05,678] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-11-16 20:28:05,679] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-11-16 20:28:05,679] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-11-16 20:28:05,679] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-11-16 20:28:05,679] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-11-16 20:28:05,679] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-11-16 20:28:05,679] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-11-16 20:28:05,680] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-11-16 20:28:05,680] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-11-16 20:28:05,680] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-11-16 20:28:05,680] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-11-16 20:28:05,680] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-11-16 20:28:05,680] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-11-16 20:28:05,680] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-11-16 20:28:05,680] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-11-16 20:28:05,681] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-11-16 20:28:05,681] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-11-16 20:28:05,681] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-11-16 20:28:05,681] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-11-16 20:28:05,682] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-11-16 20:28:05,682] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-11-16 20:28:05,683] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-11-16 20:28:05,683] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-11-16 20:28:05,683] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-11-16 20:28:05,684] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-11-16 20:28:05,684] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-11-16 20:28:05,684] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-11-16 20:28:05,684] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-11-16 20:28:05,684] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-11-16 20:28:05,685] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-11-16 20:28:05,685] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-11-16 20:28:05,685] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-11-16 20:28:05,685] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-11-16 20:28:05,685] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-11-16 20:28:05,686] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-11-16 20:28:05,686] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-11-16 20:28:05,686] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-11-16 20:28:05,687] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-11-16 20:28:05,687] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-11-16 20:28:05,694] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-11-16 20:28:05,694] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2016-11-16 20:28:05,698] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-11-16 20:28:05,698] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-11-16 20:28:05,698] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-11-16 20:28:05,698] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-11-16 20:28:05,698] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-11-16 20:28:05,699] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-11-16 20:28:05,699] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-11-16 20:28:05,699] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-11-16 20:28:05,699] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-11-16 20:28:05,700] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-11-16 20:28:05,700] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-11-16 20:28:05,700] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-11-16 20:28:05,700] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-11-16 20:28:05,700] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-11-16 20:28:05,701] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-11-16 20:28:05,701] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-11-16 20:28:05,701] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-11-16 20:28:05,701] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-11-16 20:28:05,701] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-11-16 20:28:05,702] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-11-16 20:28:05,702] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-11-16 20:28:05,702] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-11-16 20:28:05,702] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-11-16 20:28:05,703] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-11-16 20:28:05,703] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-11-16 20:28:05,703] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-11-16 20:28:05,704] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-11-16 20:28:05,704] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-11-16 20:28:05,704] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2016-11-16 20:28:05,704] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2016-11-16 20:28:05,705] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-11-16 20:28:05,705] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-11-16 20:28:05,705] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-11-16 20:28:05,705] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-11-16 20:28:05,705] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-11-16 20:28:05,705] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-11-16 20:28:05,707] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2016-11-16 20:28:05,707] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2016-11-16 20:28:05,707] chirp.directory - INFO: Registered Retevis_RT22 = RT22Radio
[2016-11-16 20:28:05,707] chirp.directory - INFO: Registered WLN_KD-C1 = KDC1
[2016-11-16 20:28:05,707] chirp.directory - INFO: Registered Zastone_ZT-X6 = ZTX6
[2016-11-16 20:28:05,708] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-11-16 20:28:05,708] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-11-16 20:28:05,708] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-11-16 20:28:05,708] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-11-16 20:28:05,708] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-11-16 20:28:05,709] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-11-16 20:28:05,709] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-11-16 20:28:05,709] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-11-16 20:28:05,709] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-11-16 20:28:05,710] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-11-16 20:28:05,710] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-11-16 20:28:05,710] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-11-16 20:28:05,711] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-11-16 20:28:05,711] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-11-16 20:28:05,711] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-11-16 20:28:05,711] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-11-16 20:28:05,711] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-11-16 20:28:05,711] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-11-16 20:28:05,711] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-11-16 20:28:05,711] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-11-16 20:28:05,712] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-11-16 20:28:05,712] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-11-16 20:28:05,712] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-11-16 20:28:05,712] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-11-16 20:28:05,712] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-11-16 20:28:05,712] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-11-16 20:28:05,712] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-11-16 20:28:05,713] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-11-16 20:28:05,714] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-11-16 20:28:05,714] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-11-16 20:28:05,714] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-11-16 20:28:05,714] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-11-16 20:28:05,714] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-11-16 20:28:05,714] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-11-16 20:28:05,715] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-11-16 20:28:05,715] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2016-11-16 20:28:05,715] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2016-11-16 20:28:05,716] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-11-16 20:28:05,716] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2016-11-16 20:28:05,716] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-11-16 20:28:05,717] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-11-16 20:28:05,717] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-11-16 20:28:05,717] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-11-16 20:28:05,718] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-11-16 20:28:05,718] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-11-16 20:28:05,718] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-11-16 20:28:05,719] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-11-16 20:28:05,719] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-11-16 20:28:05,719] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0
16 Nov '16
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1479346453 18000
# Node ID ac13d09dc5746d655d1a48d0e0e3f6bebf6ff7c6
# Parent 4e4771ee91278ab3b3a3594cb074fede97e782fb
[NEW MODEL] Add Support for Retevis RT22 and Others
This patch adds support for the following radio models:
Retevis RT22
WLN KD-C1
Zastone ZT-X6
related to #4145
diff -r 4e4771ee9127 -r ac13d09dc574 chirp/drivers/retevis_rt22.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/chirp/drivers/retevis_rt22.py Wed Nov 16 20:34:13 2016 -0500
@@ -0,0 +1,601 @@
+# Copyright 2016 Jim Unroe <rock.unroe(a)gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import time
+import os
+import struct
+import logging
+
+from chirp import chirp_common, directory, memmap
+from chirp import bitwise, errors, util
+from chirp.settings import RadioSetting, RadioSettingGroup, \
+ RadioSettingValueInteger, RadioSettingValueList, \
+ RadioSettingValueBoolean, RadioSettings, \
+ RadioSettingValueString
+
+LOG = logging.getLogger(__name__)
+
+MEM_FORMAT = """
+#seekto 0x0010;
+struct {
+ lbcd rxfreq[4];
+ lbcd txfreq[4];
+ ul16 rx_tone;
+ ul16 tx_tone;
+ u8 unknown1;
+ u8 unknown3:2,
+ highpower:1, // Power Level
+ wide:1, // Bandwidth
+ unknown4:4;
+ u8 unknown5[2];
+} memory[16];
+
+#seekto 0x012F;
+struct {
+ u8 voice; // Voice Annunciation
+ u8 tot; // Time-out Timer
+ u8 unknown1[3];
+ u8 squelch; // Squelch Level
+ u8 save; // Battery Saver
+ u8 beep; // Beep
+ u8 unknown2[2];
+ u8 vox; // VOX
+ u8 voxgain; // VOX Gain
+ u8 voxdelay; // VOX Delay
+ u8 unknown3[2];
+ u8 pf2key; // PF2 Key
+} settings;
+
+#seekto 0x017E;
+u8 skipflags[2]; // SCAN_ADD
+
+#seekto 0x0300;
+struct {
+ char line1[32];
+ char line2[32];
+} embedded_msg;
+"""
+
+CMD_ACK = "\x06"
+
+RT22_POWER_LEVELS = [chirp_common.PowerLevel("Low", watts=2.00),
+ chirp_common.PowerLevel("High", watts=5.00)]
+
+RT22_DTCS = sorted(chirp_common.DTCS_CODES + [645])
+
+PF2KEY_LIST = ["Scan", "Local Alarm", "Remote Alarm"]
+TIMEOUTTIMER_LIST = [""] + ["%s seconds" % x for x in range(15, 615, 15)]
+VOICE_LIST = ["Off", "Chinese", "English"]
+VOX_LIST = ["OFF"] + ["%s" % x for x in range(1, 17)]
+VOXDELAY_LIST = ["0.5", "1.0", "1.5", "2.0", "2.5", "3.0"]
+
+SETTING_LISTS = {
+ "pf2key": PF2KEY_LIST,
+ "tot": TIMEOUTTIMER_LIST,
+ "voice": VOICE_LIST,
+ "vox": VOX_LIST,
+ "voxdelay": VOXDELAY_LIST,
+ }
+
+VALID_CHARS = chirp_common.CHARSET_ALPHANUMERIC + \
+ "`{|}!\"#$%&'()*+,-./:;<=>?@[]^_"
+
+
+def _rt22_enter_programming_mode(radio):
+ serial = radio.pipe
+
+ magic = "PROGRGS"
+ try:
+ for j in range(0, len(magic)):
+ time.sleep(0.005)
+ serial.write(magic[j])
+ ack = serial.read(1)
+ except:
+ _rt22_exit_programming_mode(radio)
+ raise errors.RadioError("Error communicating with radio")
+
+ if not ack:
+ _rt22_exit_programming_mode(radio)
+ raise errors.RadioError("No response from radio")
+ elif ack != CMD_ACK:
+ _rt22_exit_programming_mode(radio)
+ raise errors.RadioError("Radio refused to enter programming mode")
+
+ try:
+ serial.write("\x02")
+ ident = serial.read(8)
+ except:
+ _rt22_exit_programming_mode(radio)
+ raise errors.RadioError("Error communicating with radio")
+
+ if not ident.startswith("P32073"):
+ _rt22_exit_programming_mode(radio)
+ LOG.debug(util.hexprint(ident))
+ raise errors.RadioError("Radio returned unknown identification string")
+
+ try:
+ serial.write(CMD_ACK)
+ ack = serial.read(1)
+ except:
+ _rt22_exit_programming_mode(radio)
+ raise errors.RadioError("Error communicating with radio")
+
+ if ack != CMD_ACK:
+ _rt22_exit_programming_mode(radio)
+ raise errors.RadioError("Radio refused to enter programming mode")
+
+ try:
+ serial.write("\x07")
+ ack = serial.read(1)
+ except:
+ _rt22_exit_programming_mode(radio)
+ raise errors.RadioError("Error communicating with radio")
+
+ if ack != "\x4E":
+ _rt22_exit_programming_mode(radio)
+ raise errors.RadioError("Radio refused to enter programming mode")
+
+
+def _rt22_exit_programming_mode(radio):
+ serial = radio.pipe
+ try:
+ serial.write("E")
+ except:
+ raise errors.RadioError("Radio refused to exit programming mode")
+
+
+def _rt22_read_block(radio, block_addr, block_size):
+ serial = radio.pipe
+
+ cmd = struct.pack(">cHb", 'R', block_addr, block_size)
+ expectedresponse = "W" + cmd[1:]
+ LOG.debug("Reading block %04x..." % (block_addr))
+
+ try:
+ for j in range(0, len(cmd)):
+ time.sleep(0.005)
+ serial.write(cmd[j])
+
+ response = serial.read(4 + block_size)
+ if response[:4] != expectedresponse:
+ _rt22_exit_programming_mode(radio)
+ raise Exception("Error reading block %04x." % (block_addr))
+
+ block_data = response[4:]
+
+ serial.write(CMD_ACK)
+ ack = serial.read(1)
+ except:
+ _rt22_exit_programming_mode(radio)
+ raise errors.RadioError("Failed to read block at %04x" % block_addr)
+
+ if ack != CMD_ACK:
+ _rt22_exit_programming_mode(radio)
+ raise Exception("No ACK reading block %04x." % (block_addr))
+
+ return block_data
+
+
+def _rt22_write_block(radio, block_addr, block_size):
+ serial = radio.pipe
+
+ cmd = struct.pack(">cHb", 'W', block_addr, block_size)
+ data = radio.get_mmap()[block_addr:block_addr + block_size]
+
+ LOG.debug("Writing Data:")
+ LOG.debug(util.hexprint(cmd + data))
+
+ try:
+ for j in range(0, len(cmd)):
+ time.sleep(0.005)
+ serial.write(cmd[j])
+ for j in range(0, len(data)):
+ time.sleep(0.005)
+ serial.write(data[j])
+ if serial.read(1) != CMD_ACK:
+ raise Exception("No ACK")
+ except:
+ _rt22_exit_programming_mode(radio)
+ raise errors.RadioError("Failed to send block "
+ "to radio at %04x" % block_addr)
+
+
+def do_download(radio):
+ LOG.debug("download")
+ _rt22_enter_programming_mode(radio)
+
+ data = ""
+
+ status = chirp_common.Status()
+ status.msg = "Cloning from radio"
+
+ status.cur = 0
+ status.max = radio._memsize
+
+ for addr in range(0, radio._memsize, radio._block_size):
+ status.cur = addr + radio._block_size
+ radio.status_fn(status)
+
+ block = _rt22_read_block(radio, addr, radio._block_size)
+ data += block
+
+ LOG.debug("Address: %04x" % addr)
+ LOG.debug(util.hexprint(block))
+
+ data += radio.MODEL.ljust(8)
+
+ _rt22_exit_programming_mode(radio)
+
+ return memmap.MemoryMap(data)
+
+
+def do_upload(radio):
+ status = chirp_common.Status()
+ status.msg = "Uploading to radio"
+
+ _rt22_enter_programming_mode(radio)
+
+ status.cur = 0
+ status.max = radio._memsize
+
+ for start_addr, end_addr, block_size in radio._ranges:
+ for addr in range(start_addr, end_addr, block_size):
+ status.cur = addr + block_size
+ radio.status_fn(status)
+ _rt22_write_block(radio, addr, block_size)
+
+ _rt22_exit_programming_mode(radio)
+
+
+def model_match(cls, data):
+ """Match the opened/downloaded image to the correct version"""
+
+ if len(data) == 0x0408:
+ rid = data[0x0400:0x0408]
+ return rid.startswith(cls.MODEL)
+ else:
+ return False
+
+
+(a)directory.register
+class RT22Radio(chirp_common.CloneModeRadio):
+ """Retevis RT22"""
+ VENDOR = "Retevis"
+ MODEL = "RT22"
+ BAUD_RATE = 9600
+
+ _ranges = [
+ (0x0000, 0x0180, 0x10),
+ (0x01B8, 0x01F8, 0x10),
+ (0x01F8, 0x0200, 0x08),
+ (0x0200, 0x0340, 0x10),
+ ]
+ _memsize = 0x0400
+ _block_size = 0x40
+
+ def get_features(self):
+ rf = chirp_common.RadioFeatures()
+ rf.has_settings = True
+ rf.has_bank = False
+ rf.has_ctone = True
+ rf.has_cross = True
+ rf.has_rx_dtcs = True
+ rf.has_tuning_step = False
+ rf.can_odd_split = True
+ rf.has_name = False
+ rf.valid_skips = ["", "S"]
+ rf.valid_tmodes = ["", "Tone", "TSQL", "DTCS", "Cross"]
+ rf.valid_cross_modes = ["Tone->Tone", "Tone->DTCS", "DTCS->Tone",
+ "->Tone", "->DTCS", "DTCS->", "DTCS->DTCS"]
+ rf.valid_power_levels = RT22_POWER_LEVELS
+ rf.valid_duplexes = ["", "-", "+", "split", "off"]
+ rf.valid_modes = ["NFM", "FM"] # 12.5 KHz, 25 kHz.
+ rf.memory_bounds = (1, 16)
+ rf.valid_bands = [(400000000, 520000000)]
+
+ return rf
+
+ def process_mmap(self):
+ self._memobj = bitwise.parse(MEM_FORMAT, self._mmap)
+
+ def sync_in(self):
+ self._mmap = do_download(self)
+ self.process_mmap()
+
+ def sync_out(self):
+ do_upload(self)
+
+ def get_raw_memory(self, number):
+ return repr(self._memobj.memory[number - 1])
+
+ def _get_tone(self, _mem, mem):
+ def _get_dcs(val):
+ code = int("%03o" % (val & 0x07FF))
+ pol = (val & 0x8000) and "R" or "N"
+ return code, pol
+
+ if _mem.tx_tone != 0xFFFF and _mem.tx_tone > 0x2800:
+ tcode, tpol = _get_dcs(_mem.tx_tone)
+ mem.dtcs = tcode
+ txmode = "DTCS"
+ elif _mem.tx_tone != 0xFFFF:
+ mem.rtone = _mem.tx_tone / 10.0
+ txmode = "Tone"
+ else:
+ txmode = ""
+
+ if _mem.rx_tone != 0xFFFF and _mem.rx_tone > 0x2800:
+ rcode, rpol = _get_dcs(_mem.rx_tone)
+ mem.rx_dtcs = rcode
+ rxmode = "DTCS"
+ elif _mem.rx_tone != 0xFFFF:
+ mem.ctone = _mem.rx_tone / 10.0
+ rxmode = "Tone"
+ else:
+ rxmode = ""
+
+ if txmode == "Tone" and not rxmode:
+ mem.tmode = "Tone"
+ elif txmode == rxmode and txmode == "Tone" and mem.rtone == mem.ctone:
+ mem.tmode = "TSQL"
+ elif txmode == rxmode and txmode == "DTCS" and mem.dtcs == mem.rx_dtcs:
+ mem.tmode = "DTCS"
+ elif rxmode or txmode:
+ mem.tmode = "Cross"
+ mem.cross_mode = "%s->%s" % (txmode, rxmode)
+
+ if mem.tmode == "DTCS":
+ mem.dtcs_polarity = "%s%s" % (tpol, rpol)
+
+ LOG.debug("Got TX %s (%i) RX %s (%i)" %
+ (txmode, _mem.tx_tone, rxmode, _mem.rx_tone))
+
+ def get_memory(self, number):
+ bitpos = (1 << ((number - 1) % 8))
+ bytepos = ((number - 1) / 8)
+ LOG.debug("bitpos %s" % bitpos)
+ LOG.debug("bytepos %s" % bytepos)
+
+ _mem = self._memobj.memory[number - 1]
+ _skp = self._memobj.skipflags[bytepos]
+
+ mem = chirp_common.Memory()
+
+ mem.number = number
+ mem.freq = int(_mem.rxfreq) * 10
+
+ # We'll consider any blank (i.e. 0MHz frequency) to be empty
+ if mem.freq == 0:
+ mem.empty = True
+ return mem
+
+ if _mem.rxfreq.get_raw() == "\xFF\xFF\xFF\xFF":
+ mem.freq = 0
+ mem.empty = True
+ return mem
+
+ if int(_mem.rxfreq) == int(_mem.txfreq):
+ mem.duplex = ""
+ mem.offset = 0
+ else:
+ mem.duplex = int(_mem.rxfreq) > int(_mem.txfreq) and "-" or "+"
+ mem.offset = abs(int(_mem.rxfreq) - int(_mem.txfreq)) * 10
+
+ mem.mode = _mem.wide and "FM" or "NFM"
+
+ self._get_tone(_mem, mem)
+
+ mem.power = RT22_POWER_LEVELS[_mem.highpower]
+
+ mem.skip = "" if (_skp & bitpos) else "S"
+ LOG.debug("mem.skip %s" % mem.skip)
+
+ return mem
+
+ def _set_tone(self, mem, _mem):
+ def _set_dcs(code, pol):
+ val = int("%i" % code, 8) + 0x2800
+ if pol == "R":
+ val += 0x8000
+ return val
+
+ if mem.tmode == "Cross":
+ tx_mode, rx_mode = mem.cross_mode.split("->")
+ elif mem.tmode == "Tone":
+ tx_mode = mem.tmode
+ rx_mode = None
+ else:
+ tx_mode = rx_mode = mem.tmode
+
+ if tx_mode == "DTCS":
+ _mem.tx_tone = mem.tmode != "DTCS" and \
+ _set_dcs(mem.dtcs, mem.dtcs_polarity[0]) or \
+ _set_dcs(mem.rx_dtcs, mem.dtcs_polarity[0])
+ elif tx_mode:
+ _mem.tx_tone = tx_mode == "Tone" and \
+ int(mem.rtone * 10) or int(mem.ctone * 10)
+ else:
+ _mem.tx_tone = 0xFFFF
+
+ if rx_mode == "DTCS":
+ _mem.rx_tone = _set_dcs(mem.rx_dtcs, mem.dtcs_polarity[1])
+ elif rx_mode:
+ _mem.rx_tone = int(mem.ctone * 10)
+ else:
+ _mem.rx_tone = 0xFFFF
+
+ LOG.debug("Set TX %s (%i) RX %s (%i)" %
+ (tx_mode, _mem.tx_tone, rx_mode, _mem.rx_tone))
+
+ def set_memory(self, mem):
+ bitpos = (1 << ((mem.number - 1) % 8))
+ bytepos = ((mem.number - 1) / 8)
+ LOG.debug("bitpos %s" % bitpos)
+ LOG.debug("bytepos %s" % bytepos)
+
+ _mem = self._memobj.memory[mem.number - 1]
+ _skp = self._memobj.skipflags[bytepos]
+
+ if mem.empty:
+ _mem.set_raw("\xFF" * (_mem.size() / 8))
+ return
+
+ _mem.rxfreq = mem.freq / 10
+
+ if mem.duplex == "off":
+ for i in range(0, 4):
+ _mem.txfreq[i].set_raw("\xFF")
+ elif mem.duplex == "split":
+ _mem.txfreq = mem.offset / 10
+ elif mem.duplex == "+":
+ _mem.txfreq = (mem.freq + mem.offset) / 10
+ elif mem.duplex == "-":
+ _mem.txfreq = (mem.freq - mem.offset) / 10
+ else:
+ _mem.txfreq = mem.freq / 10
+
+ _mem.wide = mem.mode == "FM"
+
+ self._set_tone(mem, _mem)
+
+ _mem.highpower = mem.power == RT22_POWER_LEVELS[1]
+
+ if mem.skip != "S":
+ _skp |= bitpos
+ else:
+ _skp &= ~bitpos
+ LOG.debug("_skp %s" % _skp)
+
+ def get_settings(self):
+ _settings = self._memobj.settings
+ _message = self._memobj.embedded_msg
+ basic = RadioSettingGroup("basic", "Basic Settings")
+ top = RadioSettings(basic)
+
+ rs = RadioSetting("squelch", "Squelch Level",
+ RadioSettingValueInteger(0, 9, _settings.squelch))
+ basic.append(rs)
+
+ rs = RadioSetting("tot", "Time-out timer",
+ RadioSettingValueList(
+ TIMEOUTTIMER_LIST,
+ TIMEOUTTIMER_LIST[_settings.tot]))
+ basic.append(rs)
+
+ rs = RadioSetting("voice", "Voice Prompts",
+ RadioSettingValueList(
+ VOICE_LIST, VOICE_LIST[_settings.voice]))
+ basic.append(rs)
+
+ rs = RadioSetting("pf2key", "PF2 Key",
+ RadioSettingValueList(
+ PF2KEY_LIST, PF2KEY_LIST[_settings.pf2key]))
+ basic.append(rs)
+
+ rs = RadioSetting("vox", "Vox",
+ RadioSettingValueBoolean(_settings.vox))
+ basic.append(rs)
+
+ rs = RadioSetting("voxgain", "VOX Level",
+ RadioSettingValueList(
+ VOX_LIST, VOX_LIST[_settings.voxgain]))
+ basic.append(rs)
+
+ rs = RadioSetting("voxdelay", "VOX Delay Time",
+ RadioSettingValueList(
+ VOXDELAY_LIST,
+ VOXDELAY_LIST[_settings.voxdelay]))
+ basic.append(rs)
+
+ rs = RadioSetting("save", "Battery Save",
+ RadioSettingValueBoolean(_settings.save))
+ basic.append(rs)
+
+ rs = RadioSetting("beep", "Beep",
+ RadioSettingValueBoolean(_settings.beep))
+ basic.append(rs)
+
+ def _filter(name):
+ filtered = ""
+ for char in str(name):
+ if char in VALID_CHARS:
+ filtered += char
+ else:
+ filtered += " "
+ return filtered
+
+ rs = RadioSetting("embedded_msg.line1", "Embedded Message 1",
+ RadioSettingValueString(0, 32, _filter(
+ _message.line1)))
+ basic.append(rs)
+
+ rs = RadioSetting("embedded_msg.line2", "Embedded Message 2",
+ RadioSettingValueString(0, 32, _filter(
+ _message.line2)))
+ basic.append(rs)
+
+ return top
+
+ def set_settings(self, settings):
+ for element in settings:
+ if not isinstance(element, RadioSetting):
+ self.set_settings(element)
+ continue
+ else:
+ try:
+ if "." in element.get_name():
+ bits = element.get_name().split(".")
+ obj = self._memobj
+ for bit in bits[:-1]:
+ obj = getattr(obj, bit)
+ setting = bits[-1]
+ else:
+ obj = self._memobj.settings
+ setting = element.get_name()
+
+ LOG.debug("Setting %s = %s" % (setting, element.value))
+ setattr(obj, setting, element.value)
+ except Exception, e:
+ LOG.debug(element.get_name())
+ raise
+
+ @classmethod
+ def match_model(cls, filedata, filename):
+ match_size = False
+ match_model = False
+
+ # testing the file data size
+ if len(filedata) in [0x0408, ]:
+ match_size = True
+
+ # testing the model fingerprint
+ match_model = model_match(cls, filedata)
+
+ if match_size and match_model:
+ return True
+ else:
+ return False
+
+(a)directory.register
+class KDC1(RT22Radio):
+ """WLN KD-C1"""
+ VENDOR = "WLN"
+ MODEL = "KD-C1"
+
+(a)directory.register
+class ZTX6(RT22Radio):
+ """Zastone ZT-X6"""
+ VENDOR = "Zastone"
+ MODEL = "ZT-X6"
1
0
Tested changes:
[Dan Smith <dsmith(a)danplanet.com>] Add test image for Alinco DJ-G7
Related to #699
[Mathias Weyland <lt-betrieb(a)hb9uf.ch>] Add support for Alinco DJ-G7EG. Partially addresses #699
This patch adds basic support for the DJ-G7EG. The patch was tested on
Linux and Windows 7 and can reliably download memories from, and upload
memories to the radio. Other flavours of the DJ-G7 are not supported
yet because I don't know whether they use the same memory map or not.
The patch introduces a new class to the alinco.py driver. This is some-
what unfortunate because the radios supported by alinco.py so far are
all quite similar. The DJ-G7EG is considerably more different from the
others, yet still sufficiently similar to re-use some of the methods
implemented in AlincoStyleRadio. I'll leave it up to the reviewers to
comment on that. Code that might be of particular interest to reviewers
is marked with "FIXME" comments.
The patch does not support changing bank assignments, groups, and/or
radio settings. I am planning to add dynamic bank assignements as soon
as I have figured out how to do this best with Chirp.
[Tyler Tidman <tyler.tidman(a)draak.ca>] Minor PEP8 cleanup for some drivers. Fixes #4161.
[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
12 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 dbf1814476cd964c4042689205064df7a9b72a26
[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 dbf1814476cd964c4042689205064df7a9b72a26
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson1004350116725297011.sh
[workspace] $ /bin/sh -xe /tmp/hudson3456170407611306121.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/drivers/alinco.py:595:1: E302 expected 2 blank lines, found 1
./chirp/drivers/alinco.py:603:80: E501 line too long (114 > 79 characters)
./chirp/drivers/alinco.py:608:26: E261 at least two spaces before inline comment
./chirp/drivers/alinco.py:608:80: E501 line too long (84 > 79 characters)
./chirp/drivers/alinco.py:616:26: E222 multiple spaces after operator
./chirp/drivers/alinco.py:718:80: E501 line too long (89 > 79 characters)
./chirp/drivers/alinco.py:736:32: E261 at least two spaces before inline comment
./chirp/drivers/alinco.py:749:80: E501 line too long (86 > 79 characters)
./chirp/drivers/alinco.py:750:47: E128 continuation line under-indented for visual indent
./chirp/drivers/alinco.py:754:80: E501 line too long (86 > 79 characters)
./chirp/drivers/alinco.py:755:47: E128 continuation line under-indented for visual indent
./chirp/drivers/alinco.py:758:80: E501 line too long (81 > 79 characters)
./chirp/drivers/alinco.py:763:80: E501 line too long (86 > 79 characters)
./chirp/drivers/alinco.py:764:47: E128 continuation line under-indented for visual indent
./chirp/drivers/alinco.py:770:80: E501 line too long (86 > 79 characters)
./chirp/drivers/alinco.py:771:47: E128 continuation line under-indented for visual indent
./chirp/drivers/alinco.py:775:80: E501 line too long (86 > 79 characters)
./chirp/drivers/alinco.py:776:47: E128 continuation line under-indented for visual indent
./chirp/drivers/alinco.py:779:55: E231 missing whitespace after ','
real 0m7.761s
user 0m7.612s
sys 0m0.072s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-11-15 14:33:19,388] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2016-11-15 14:33:21,106] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-11-15 14:33:21,106] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-11-15 14:33:21,106] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-11-15 14:33:21,106] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-11-15 14:33:21,106] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-11-15 14:33:21,106] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-11-15 14:33:21,106] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-11-15 14:33:21,107] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-11-15 14:33:21,107] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-11-15 14:33:21,107] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-11-15 14:33:21,107] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-11-15 14:33:21,107] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-11-15 14:33:21,107] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-11-15 14:33:21,107] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-11-15 14:33:21,107] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-11-15 14:33:21,107] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-11-15 14:33:21,108] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-11-15 14:33:21,108] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-11-15 14:33:21,108] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2016-11-15 14:33:21,108] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-11-15 14:33:21,109] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-11-15 14:33:21,109] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-11-15 14:33:21,109] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-11-15 14:33:21,109] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-11-15 14:33:21,110] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-11-15 14:33:21,110] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-11-15 14:33:21,110] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-11-15 14:33:21,110] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-11-15 14:33:21,110] chirp.directory - INFO: Registered Alinco_DJ-G7EG = AlincoDJG7EG
[2016-11-15 14:33:21,110] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-11-15 14:33:21,111] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-11-15 14:33:21,111] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-11-15 14:33:21,111] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-11-15 14:33:21,111] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-11-15 14:33:21,111] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-11-15 14:33:21,113] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-11-15 14:33:21,113] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2016-11-15 14:33:21,113] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2016-11-15 14:33:21,113] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2016-11-15 14:33:21,113] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2016-11-15 14:33:21,114] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-11-15 14:33:21,114] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-11-15 14:33:21,114] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-11-15 14:33:21,115] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-11-15 14:33:21,115] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-11-15 14:33:21,115] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-11-15 14:33:21,115] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-11-15 14:33:21,115] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-11-15 14:33:21,115] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-11-15 14:33:21,116] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-11-15 14:33:21,116] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-11-15 14:33:21,116] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-11-15 14:33:21,116] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-11-15 14:33:21,116] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-11-15 14:33:21,116] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-11-15 14:33:21,116] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-11-15 14:33:21,116] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-11-15 14:33:21,117] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-11-15 14:33:21,117] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-11-15 14:33:21,117] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-11-15 14:33:21,117] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-11-15 14:33:21,117] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-11-15 14:33:21,117] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-11-15 14:33:21,117] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-11-15 14:33:21,117] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-11-15 14:33:21,118] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-11-15 14:33:21,118] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-11-15 14:33:21,119] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-11-15 14:33:21,119] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-11-15 14:33:21,119] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-11-15 14:33:21,120] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-11-15 14:33:21,120] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-11-15 14:33:21,120] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-11-15 14:33:21,120] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-11-15 14:33:21,121] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-11-15 14:33:21,121] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-11-15 14:33:21,121] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-11-15 14:33:21,121] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-11-15 14:33:21,122] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-11-15 14:33:21,122] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-11-15 14:33:21,122] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-11-15 14:33:21,122] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-11-15 14:33:21,125] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-11-15 14:33:21,125] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-11-15 14:33:21,125] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-11-15 14:33:21,125] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-11-15 14:33:21,149] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-11-15 14:33:21,150] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2016-11-15 14:33:21,176] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-11-15 14:33:21,176] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-11-15 14:33:21,177] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-11-15 14:33:21,177] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-11-15 14:33:21,177] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-11-15 14:33:21,178] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-11-15 14:33:21,178] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-11-15 14:33:21,178] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-11-15 14:33:21,179] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-11-15 14:33:21,179] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-11-15 14:33:21,180] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-11-15 14:33:21,180] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-11-15 14:33:21,180] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-11-15 14:33:21,180] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-11-15 14:33:21,181] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-11-15 14:33:21,181] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-11-15 14:33:21,181] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-11-15 14:33:21,182] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-11-15 14:33:21,182] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-11-15 14:33:21,182] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-11-15 14:33:21,183] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-11-15 14:33:21,183] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-11-15 14:33:21,183] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-11-15 14:33:21,184] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-11-15 14:33:21,184] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-11-15 14:33:21,185] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-11-15 14:33:21,185] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-11-15 14:33:21,185] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-11-15 14:33:21,186] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2016-11-15 14:33:21,186] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2016-11-15 14:33:21,186] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-11-15 14:33:21,186] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-11-15 14:33:21,187] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-11-15 14:33:21,187] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-11-15 14:33:21,187] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-11-15 14:33:21,187] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-11-15 14:33:21,188] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2016-11-15 14:33:21,188] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2016-11-15 14:33:21,189] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-11-15 14:33:21,189] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-11-15 14:33:21,189] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-11-15 14:33:21,189] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-11-15 14:33:21,190] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-11-15 14:33:21,190] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-11-15 14:33:21,190] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-11-15 14:33:21,190] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-11-15 14:33:21,190] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-11-15 14:33:21,191] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-11-15 14:33:21,191] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-11-15 14:33:21,191] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-11-15 14:33:21,192] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-11-15 14:33:21,192] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-11-15 14:33:21,192] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-11-15 14:33:21,192] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-11-15 14:33:21,192] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-11-15 14:33:21,192] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-11-15 14:33:21,192] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-11-15 14:33:21,192] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-11-15 14:33:21,193] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-11-15 14:33:21,193] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-11-15 14:33:21,193] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-11-15 14:33:21,193] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-11-15 14:33:21,193] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-11-15 14:33:21,193] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2016-11-15 14:33:21,194] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-11-15 14:33:21,195] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-11-15 14:33:21,195] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-11-15 14:33:21,195] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-11-15 14:33:21,195] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-11-15 14:33:21,195] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-11-15 14:33:21,195] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-11-15 14:33:21,195] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-11-15 14:33:21,196] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-11-15 14:33:21,196] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2016-11-15 14:33:21,196] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2016-11-15 14:33:21,197] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-11-15 14:33:21,197] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2016-11-15 14:33:21,197] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-11-15 14:33:21,198] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-11-15 14:33:21,198] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-11-15 14:33:21,198] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-11-15 14:33:21,199] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-11-15 14:33:21,199] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-11-15 14:33:21,200] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-11-15 14:33:21,200] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-11-15 14:33:21,200] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-11-15 14:33:21,200] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0
15 Nov '16
Hello guys
I didn't get much feedback on my question about the banks (so sorry
for the bad line wrapping), hence it's probably best to submit the
patch without bank support for review and go from there. I hope it's
OK to amend the copyright line, otherwise that can just be scrapped.
The FIXME comments are where things might have to be straightened
out. This will probably require a few iterations but I'm happy to
follow whatever advice you have.
Best regards and thanks.
Matt
1
2
15 Nov '16
1
0
Tested changes:
[Jim Unroe <rock.unroe(a)gmail.com>] [UV-5X3] Fix for Out-of-Range Values
The UV-5X3 apparently ships from the factory with invalid values for
the Group Code and Space Code settings. This patch intercepts
these invalid settings and changes them to the same default values
that the OEM software sets them to.
Related to #4215
[Michael Wagner <michael.wagner(a)gmx.at>] [btech] Add 5Tone and DTMF to all models of btech-driver. #4051
Thanks to Jim's clarifications and tests with several Models (http://intrepid.danplanet.com/pipermail/chirp_devel/2016-November/004356.ht…), this patch now adds 5-tone and DTMF without restrictions to a few models, and without crashing when editind a "fresh" memory-image.
[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 37474c501a92467c5122a6ec080e81da2526ea48
[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 37474c501a92467c5122a6ec080e81da2526ea48
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson6282738494181819843.sh
[workspace] $ /bin/sh -xe /tmp/hudson8744757217333016343.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.057s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/drivers/ft2900.py:781:80: E501 line too long (85 > 79 characters)
./chirp/drivers/ft2900.py:805:80: E501 line too long (85 > 79 characters)
./chirp/drivers/ft2900.py:835:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft2900.py:842:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft2900.py:923:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft2900.py:1106:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft2900.py:1111:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft2900.py:1118:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft2900.py:1123:80: E501 line too long (88 > 79 characters)
./chirp/drivers/ft2900.py:1169:80: E501 line too long (88 > 79 characters)
./chirp/drivers/ft2900.py:1174:80: E501 line too long (90 > 79 characters)
./chirp/drivers/ft2900.py:1238:1: E265 block comment should start with '# '
./chirp/drivers/ft60.py:490:80: E501 line too long (85 > 79 characters)
./chirp/drivers/ft60.py:495:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:500:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:505:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:510:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:538:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:556:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:567:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft60.py:584:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:589:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft60.py:594:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft60.py:599:80: E501 line too long (88 > 79 characters)
./chirp/drivers/ft60.py:605:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft60.py:610:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:621:80: E501 line too long (85 > 79 characters)
./chirp/drivers/ft60.py:632:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:637:80: E501 line too long (83 > 79 characters)
./chirp/drivers/ft60.py:642:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft60.py:647:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:652:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:657:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft817.py:1010:80: E501 line too long (85 > 79 characters)
./chirp/drivers/ft817.py:1087:80: E501 line too long (94 > 79 characters)
./chirp/drivers/kguv8d.py:698:80: E501 line too long (83 > 79 characters)
./chirp/drivers/kguv8d.py:727:80: E501 line too long (85 > 79 characters)
./chirp/drivers/kguv8d.py:731:80: E501 line too long (80 > 79 characters)
./chirp/drivers/kguv8d.py:746:80: E501 line too long (83 > 79 characters)
./chirp/drivers/kguv8d.py:760:80: E501 line too long (82 > 79 characters)
./chirp/drivers/kguv8d.py:764:80: E501 line too long (80 > 79 characters)
./chirp/drivers/kguv8d.py:774:80: E501 line too long (84 > 79 characters)
./chirp/drivers/kguv8d.py:778:80: E501 line too long (85 > 79 characters)
./chirp/drivers/kguv8d.py:789:80: E501 line too long (80 > 79 characters)
./chirp/drivers/kguv8d.py:800:80: E501 line too long (83 > 79 characters)
./chirp/drivers/kguv8d.py:817:80: E501 line too long (85 > 79 characters)
./chirp/drivers/leixen.py:956:80: E501 line too long (87 > 79 characters)
./chirp/drivers/thd72.py:205:80: E501 line too long (89 > 79 characters)
./chirp/drivers/thd72.py:206:80: E501 line too long (101 > 79 characters)
./chirp/drivers/uv5r.py:864:52: W291 trailing whitespace
./chirp/drivers/uv5r.py:947:13: E265 block comment should start with '# '
./chirp/settings.py:256:80: E501 line too long (81 > 79 characters)
./chirp/ui/mainapp.py:1379:80: E501 line too long (80 > 79 characters)
./chirp/ui/settingsedit.py:60:9: E303 too many blank lines (2)
real 0m7.611s
user 0m7.492s
sys 0m0.036s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-11-13 17:53:03,183] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2016-11-13 17:53:03,220] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-11-13 17:53:03,220] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-11-13 17:53:03,220] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-11-13 17:53:03,221] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-11-13 17:53:03,221] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-11-13 17:53:03,221] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-11-13 17:53:03,221] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-11-13 17:53:03,221] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-11-13 17:53:03,221] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-11-13 17:53:03,221] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-11-13 17:53:03,221] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-11-13 17:53:03,221] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-11-13 17:53:03,221] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-11-13 17:53:03,221] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-11-13 17:53:03,222] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-11-13 17:53:03,222] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-11-13 17:53:03,222] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-11-13 17:53:03,222] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-11-13 17:53:03,222] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2016-11-13 17:53:03,222] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-11-13 17:53:03,223] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-11-13 17:53:03,223] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-11-13 17:53:03,223] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-11-13 17:53:03,223] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-11-13 17:53:03,223] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-11-13 17:53:03,223] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-11-13 17:53:03,223] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-11-13 17:53:03,223] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-11-13 17:53:03,224] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-11-13 17:53:03,224] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-11-13 17:53:03,224] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-11-13 17:53:03,224] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-11-13 17:53:03,224] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-11-13 17:53:03,224] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-11-13 17:53:03,225] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-11-13 17:53:03,226] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2016-11-13 17:53:03,226] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2016-11-13 17:53:03,226] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2016-11-13 17:53:03,226] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2016-11-13 17:53:03,226] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-11-13 17:53:03,227] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-11-13 17:53:03,227] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-11-13 17:53:03,227] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-11-13 17:53:03,227] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-11-13 17:53:03,227] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-11-13 17:53:03,227] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-11-13 17:53:03,227] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-11-13 17:53:03,227] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-11-13 17:53:03,228] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-11-13 17:53:03,228] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-11-13 17:53:03,228] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-11-13 17:53:03,228] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-11-13 17:53:03,228] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-11-13 17:53:03,229] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-11-13 17:53:03,229] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-11-13 17:53:03,229] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-11-13 17:53:03,229] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-11-13 17:53:03,229] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-11-13 17:53:03,229] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-11-13 17:53:03,229] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-11-13 17:53:03,229] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-11-13 17:53:03,230] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-11-13 17:53:03,230] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-11-13 17:53:03,230] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-11-13 17:53:03,230] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-11-13 17:53:03,231] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-11-13 17:53:03,231] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-11-13 17:53:03,231] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-11-13 17:53:03,232] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-11-13 17:53:03,232] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-11-13 17:53:03,233] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-11-13 17:53:03,233] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-11-13 17:53:03,233] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-11-13 17:53:03,233] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-11-13 17:53:03,233] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-11-13 17:53:03,234] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-11-13 17:53:03,234] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-11-13 17:53:03,234] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-11-13 17:53:03,234] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-11-13 17:53:03,234] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-11-13 17:53:03,235] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-11-13 17:53:03,235] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-11-13 17:53:03,235] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-11-13 17:53:03,236] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-11-13 17:53:03,236] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-11-13 17:53:03,246] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-11-13 17:53:03,246] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2016-11-13 17:53:03,250] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-11-13 17:53:03,250] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-11-13 17:53:03,250] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-11-13 17:53:03,250] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-11-13 17:53:03,250] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-11-13 17:53:03,251] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-11-13 17:53:03,251] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-11-13 17:53:03,251] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-11-13 17:53:03,252] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-11-13 17:53:03,252] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-11-13 17:53:03,252] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-11-13 17:53:03,252] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-11-13 17:53:03,252] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-11-13 17:53:03,253] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-11-13 17:53:03,253] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-11-13 17:53:03,253] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-11-13 17:53:03,253] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-11-13 17:53:03,253] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-11-13 17:53:03,254] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-11-13 17:53:03,254] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-11-13 17:53:03,254] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-11-13 17:53:03,254] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-11-13 17:53:03,255] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-11-13 17:53:03,255] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-11-13 17:53:03,255] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-11-13 17:53:03,255] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-11-13 17:53:03,256] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-11-13 17:53:03,256] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-11-13 17:53:03,256] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2016-11-13 17:53:03,256] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2016-11-13 17:53:03,257] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-11-13 17:53:03,257] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-11-13 17:53:03,257] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-11-13 17:53:03,257] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-11-13 17:53:03,257] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-11-13 17:53:03,257] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-11-13 17:53:03,259] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2016-11-13 17:53:03,259] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2016-11-13 17:53:03,260] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-11-13 17:53:03,260] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-11-13 17:53:03,260] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-11-13 17:53:03,260] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-11-13 17:53:03,260] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-11-13 17:53:03,260] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-11-13 17:53:03,261] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-11-13 17:53:03,261] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-11-13 17:53:03,261] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-11-13 17:53:03,261] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-11-13 17:53:03,262] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-11-13 17:53:03,262] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-11-13 17:53:03,262] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-11-13 17:53:03,262] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-11-13 17:53:03,262] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-11-13 17:53:03,263] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-11-13 17:53:03,263] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-11-13 17:53:03,263] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-11-13 17:53:03,263] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-11-13 17:53:03,263] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-11-13 17:53:03,263] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-11-13 17:53:03,263] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-11-13 17:53:03,263] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-11-13 17:53:03,263] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-11-13 17:53:03,264] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-11-13 17:53:03,264] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-11-13 17:53:03,264] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-11-13 17:53:03,264] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-11-13 17:53:03,264] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-11-13 17:53:03,264] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-11-13 17:53:03,265] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-11-13 17:53:03,265] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-11-13 17:53:03,265] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2016-11-13 17:53:03,265] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2016-11-13 17:53:03,265] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2016-11-13 17:53:03,265] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2016-11-13 17:53:03,265] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2016-11-13 17:53:03,265] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-11-13 17:53:03,265] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-11-13 17:53:03,265] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-11-13 17:53:03,265] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-11-13 17:53:03,266] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-11-13 17:53:03,266] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-11-13 17:53:03,266] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-11-13 17:53:03,266] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-11-13 17:53:03,266] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-11-13 17:53:03,267] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2016-11-13 17:53:03,267] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2016-11-13 17:53:03,267] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-11-13 17:53:03,268] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2016-11-13 17:53:03,268] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-11-13 17:53:03,268] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-11-13 17:53:03,269] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-11-13 17:53:03,269] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-11-13 17:53:03,269] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-11-13 17:53:03,270] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-11-13 17:53:03,270] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-11-13 17:53:03,270] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-11-13 17:53:03,270] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-11-13 17:53:03,271] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1478985715 18000
# Node ID 6042d1b0b34d47d0fc78de71db7d24014c860603
# Parent 37474c501a92467c5122a6ec080e81da2526ea48
[UV-5X3] Fix for Out-of-Range Values
The UV-5X3 apparently ships from the factory with invalid values for
the Group Code and Space Code settings. This patch intercepts
these invalid settings and changes them to the same default values
that the OEM software sets them to.
Related to #4215
diff -r 37474c501a92 -r 6042d1b0b34d chirp/drivers/uv5x3.py
--- a/chirp/drivers/uv5x3.py Fri Nov 11 17:58:33 2016 -0500
+++ b/chirp/drivers/uv5x3.py Sat Nov 12 16:21:55 2016 -0500
@@ -1128,14 +1128,20 @@
val = LIST_DTMF_SPECIAL_VALUES[index]
obj.set_value(val)
- idx = LIST_DTMF_SPECIAL_VALUES.index(_mem.ani.groupcode)
+ if _mem.ani.groupcode in LIST_DTMF_SPECIAL_VALUES:
+ idx = LIST_DTMF_SPECIAL_VALUES.index(_mem.ani.groupcode)
+ else:
+ idx = LIST_DTMF_SPECIAL_VALUES.index(0x0B)
rs = RadioSetting("ani.groupcode", "Group Code",
RadioSettingValueList(LIST_DTMF_SPECIAL_DIGITS,
LIST_DTMF_SPECIAL_DIGITS[idx]))
rs.set_apply_callback(apply_dmtf_listvalue, _mem.ani.groupcode)
dtmfd.append(rs)
- idx = LIST_DTMF_SPECIAL_VALUES.index(_mem.ani.spacecode)
+ if _mem.ani.spacecode in LIST_DTMF_SPECIAL_VALUES:
+ idx = LIST_DTMF_SPECIAL_VALUES.index(_mem.ani.spacecode)
+ else:
+ idx = LIST_DTMF_SPECIAL_VALUES.index(0x0C)
rs = RadioSetting("ani.spacecode", "Space Code",
RadioSettingValueList(LIST_DTMF_SPECIAL_DIGITS,
LIST_DTMF_SPECIAL_DIGITS[idx]))
1
0
[chirp_devel] [PATCH] [btech] Add 5Tone and DTMF to all models of btech-driver. #4051
by Michael Wagner (OE4AMW) 12 Nov '16
by Michael Wagner (OE4AMW) 12 Nov '16
12 Nov '16
# HG changeset patch
# User Michael Wagner <michael.wagner(a)gmx.at>
# Date 1478957786 -3600
# Sat Nov 12 14:36:26 2016 +0100
# Node ID 9d3de34ab51e7c7b3583e0da98287452e7ada457
# Parent 37474c501a92467c5122a6ec080e81da2526ea48
[btech] Add 5Tone and DTMF to all models of btech-driver. #4051
Thanks to Jim's clarifications and tests with several Models (http://intrepid.danplanet.com/pipermail/chirp_devel/2016-November/004356.ht…), this patch now adds 5-tone and DTMF without restrictions to a few models, and without crashing when editind a "fresh" memory-image.
diff -r 37474c501a92 -r 9d3de34ab51e chirp/drivers/btech.py
--- a/chirp/drivers/btech.py Fri Nov 11 17:58:33 2016 -0500
+++ b/chirp/drivers/btech.py Sat Nov 12 14:36:26 2016 +0100
@@ -155,6 +155,92 @@
u8 unknown1[10];
} names[200];
+#seekto 0x2400;
+struct {
+ u8 period; // one out of LIST_5TONE_STANDARD_PERIODS
+ u8 group_tone;
+ u8 repeat_tone;
+ u8 unused[13];
+} _5tone_std_settings[15];
+
+#seekto 0x2500;
+struct {
+ u8 frame1[5];
+ u8 frame2[5];
+ u8 frame3[5];
+ u8 standard; // one out of LIST_5TONE_STANDARDS
+} _5tone_codes[15];
+
+#seekto 0x25F0;
+struct {
+ u8 _5tone_delay1; // * 10ms
+ u8 _5tone_delay2; // * 10ms
+ u8 _5tone_delay3; // * 10ms
+ u8 _5tone_first_digit_ext_length;
+ u8 unknown1;
+ u8 unknown2;
+ u8 unknown3;
+ u8 unknown4;
+ u8 decode_standard;
+ u8 unknown5:5,
+ _5tone_decode_call_frame3:1,
+ _5tone_decode_call_frame2:1,
+ _5tone_decode_call_frame1:1;
+ u8 unknown6:5,
+ _5tone_decode_disp_frame3:1,
+ _5tone_decode_disp_frame2:1,
+ _5tone_decode_disp_frame1:1;
+ u8 decode_reset_time; // * 100 + 100ms
+} _5tone_settings;
+
+#seekto 0x2900;
+struct {
+ u8 code[16]; // 0=x0A, A=0x0D, B=0x0E, C=0x0F, D=0x00, #=0x0C *=0x0B
+} dtmf_codes[15];
+
+#seekto 0x29F0;
+struct {
+ u8 dtmfspeed_on; //list with 50..2000ms in steps of 10
+ u8 dtmfspeed_off; //list with 50..2000ms in steps of 10
+ u8 unknown0[14];
+ u8 inspection[16];
+ u8 monitor[16];
+ u8 alarmcode[16];
+ u8 stun[16];
+ u8 kill[16];
+ u8 revive[16];
+ u8 unknown1[16];
+ u8 unknown2[16];
+ u8 unknown3[16];
+ u8 unknown4[16];
+ u8 unknown5[16];
+ u8 unknown6[16];
+ u8 unknown7[16];
+ u8 masterid[16];
+ u8 viceid[16];
+ 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; // * 100 + 100ms
+ u8 resettime; // * 100 + 100ms
+} dtmf_settings;
+
#seekto 0x3000;
struct {
u8 freq[8];
@@ -237,6 +323,30 @@
LIST_WIDE = ["Wide", "Narrow"]
STEPS = [2.5, 5.0, 6.25, 10.0, 12.5, 25.0]
LIST_STEP = [str(x) for x in STEPS]
+LIST_5TONE_STANDARDS = ["CCIR1", "CCIR2", "PCCIR", "ZVEI1", "ZVEI2", "ZVEI3",
+ "PZVEI", "DZVEI", "PDZVEI", "EEA", "EIA", "EURO",
+ "CCITT", "NATEL", "MODAT", "none"]
+LIST_5TONE_STANDARDS_without_none = ["CCIR1", "CCIR2", "PCCIR", "ZVEI1",
+ "ZVEI2", "ZVEI3",
+ "PZVEI", "DZVEI", "PDZVEI", "EEA", "EIA",
+ "EURO", "CCITT", "NATEL", "MODAT"]
+LIST_5TONE_STANDARD_PERIODS = ["20", "30", "40", "50", "60", "70", "80", "90",
+ "100", "110", "120", "130", "140", "150", "160",
+ "170", "180", "190", "200"]
+LIST_5TONE_DIGITS = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A",
+ "B", "C", "D", "E", "F"]
+LIST_5TONE_DELAY = ["%s ms" % x for x in range(0, 1010, 10)]
+LIST_5TONE_RESET = ["%s ms" % x for x in range(100, 8100, 100)]
+LIST_DTMF_SPEED = ["%s ms" % x for x in range(50, 2010, 10)]
+LIST_DTMF_DIGITS = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B",
+ "C", "D", "#", "*"]
+LIST_DTMF_VALUES = [0x0A, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
+ 0x0D, 0x0E, 0x0F, 0x00, 0x0C, 0x0B ]
+LIST_DTMF_SPECIAL_DIGITS = [ "*", "#", "A", "B", "C", "D"]
+LIST_DTMF_SPECIAL_VALUES = [ 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x00]
+LIST_DTMF_DELAY = ["%s ms" % x for x in range(100, 4100, 100)]
+CHARSET_DTMF_DIGITS = "0123456789AaBbCcDd#*"
+
# This is a general serial timeout for all serial read functions.
# Practice has show that about 0.7 sec will be enough to cover all radios.
@@ -1613,7 +1723,562 @@
fm_presets.append(fmfreq)
i = i + 1
+
+ # DTMF-Setting
+ dtmf_enc_settings = RadioSettingGroup ("dtmf_enc_settings",
+ "DTMF Encoding Settings")
+ dtmf_dec_settings = RadioSettingGroup ("dtmf_dec_settings",
+ "DTMF Decoding Settings")
+ top.append(dtmf_enc_settings)
+ top.append(dtmf_dec_settings)
+ txdisable = RadioSetting("dtmf_settings.txdisable",
+ "TX-Disable",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.txdisable))
+ dtmf_enc_settings.append(txdisable)
+
+ rxdisable = RadioSetting("dtmf_settings.rxdisable",
+ "RX-Disable",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.rxdisable))
+ dtmf_enc_settings.append(rxdisable)
+
+ dtmfspeed_on = RadioSetting(
+ "dtmf_settings.dtmfspeed_on",
+ "DTMF Speed (On Time)",
+ RadioSettingValueList(LIST_DTMF_SPEED,
+ LIST_DTMF_SPEED[
+ _mem.dtmf_settings.dtmfspeed_on]))
+ dtmf_enc_settings.append(dtmfspeed_on)
+
+ dtmfspeed_off = RadioSetting(
+ "dtmf_settings.dtmfspeed_off",
+ "DTMF Speed (Off Time)",
+ RadioSettingValueList(LIST_DTMF_SPEED,
+ LIST_DTMF_SPEED[
+ _mem.dtmf_settings.dtmfspeed_off]))
+ dtmf_enc_settings.append(dtmfspeed_off)
+
+ def memory2string(dmtf_mem):
+ dtmf_string = ""
+ for digit in dmtf_mem:
+ if digit != 255:
+ index = LIST_DTMF_VALUES.index(digit)
+ dtmf_string = dtmf_string + LIST_DTMF_DIGITS[index]
+ return dtmf_string
+
+ def apply_dmtf_frame(setting, obj):
+ LOG.debug("Setting DTMF-Code: " + str(setting.value) )
+ val_string = str(setting.value)
+ for i in range(0,16):
+ obj[i] = 255
+ i = 0
+ for current_char in val_string:
+ current_char = current_char.upper()
+ index = LIST_DTMF_DIGITS.index(current_char)
+ obj[i] = LIST_DTMF_VALUES[ index ]
+ i = i + 1
+
+ codes = self._memobj.dtmf_codes
+ i = 1
+ for dtmfcode in codes:
+ val = RadioSettingValueString(0, 16,
+ memory2string(dtmfcode.code),
+ False, CHARSET_DTMF_DIGITS)
+ line = RadioSetting("dtmf_code_" + str(i) + "_code",
+ "DMTF Code " + str(i), val)
+ line.set_apply_callback(apply_dmtf_frame, dtmfcode.code)
+ dtmf_enc_settings.append(line)
+ i = i + 1
+
+ line = RadioSetting("dtmf_settings.mastervice",
+ "Master and Vice ID",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.mastervice))
+ dtmf_dec_settings.append(line)
+
+ val = RadioSettingValueString(0, 16,
+ memory2string(
+ _mem.dtmf_settings.masterid),
+ False, CHARSET_DTMF_DIGITS)
+ line = RadioSetting("dtmf_settings.masterid",
+ "Master Control ID ", val)
+ line.set_apply_callback(apply_dmtf_frame,
+ _mem.dtmf_settings.masterid)
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting("dtmf_settings.minspection",
+ "Master Inspection",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.minspection))
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting("dtmf_settings.mmonitor",
+ "Master Monitor",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.mmonitor))
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting("dtmf_settings.mstun",
+ "Master Stun",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.mstun))
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting("dtmf_settings.mkill",
+ "Master Kill",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.mkill))
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting("dtmf_settings.mrevive",
+ "Master Revive",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.mrevive))
+ dtmf_dec_settings.append(line)
+
+ val = RadioSettingValueString(0, 16,
+ memory2string(
+ _mem.dtmf_settings.viceid),
+ False, CHARSET_DTMF_DIGITS)
+ line = RadioSetting("dtmf_settings.viceid",
+ "Vice Control ID ", val)
+ line.set_apply_callback(apply_dmtf_frame,
+ _mem.dtmf_settings.viceid)
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting("dtmf_settings.vinspection",
+ "Vice Inspection",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.vinspection))
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting("dtmf_settings.vmonitor",
+ "Vice Monitor",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.vmonitor))
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting("dtmf_settings.vstun",
+ "Vice Stun",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.vstun))
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting("dtmf_settings.vkill",
+ "Vice Kill",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.vkill))
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting("dtmf_settings.vrevive",
+ "Vice Revive",
+ RadioSettingValueBoolean(
+ _mem.dtmf_settings.vrevive))
+ dtmf_dec_settings.append(line)
+
+ val = RadioSettingValueString(0, 16,
+ memory2string(
+ _mem.dtmf_settings.inspection),
+ False, CHARSET_DTMF_DIGITS)
+ line = RadioSetting("dtmf_settings.inspection",
+ "Inspection", val)
+ line.set_apply_callback(apply_dmtf_frame,
+ _mem.dtmf_settings.inspection)
+ dtmf_dec_settings.append(line)
+
+ val = RadioSettingValueString(0, 16,
+ memory2string(
+ _mem.dtmf_settings.alarmcode),
+ False, CHARSET_DTMF_DIGITS)
+ line = RadioSetting("dtmf_settings.alarmcode",
+ "Alarm", val)
+ line.set_apply_callback(apply_dmtf_frame,
+ _mem.dtmf_settings.alarmcode)
+ dtmf_dec_settings.append(line)
+
+ val = RadioSettingValueString(0, 16,
+ memory2string(
+ _mem.dtmf_settings.kill),
+ False, CHARSET_DTMF_DIGITS)
+ line = RadioSetting("dtmf_settings.kill",
+ "Kill", val)
+ line.set_apply_callback(apply_dmtf_frame,
+ _mem.dtmf_settings.kill)
+ dtmf_dec_settings.append(line)
+
+ val = RadioSettingValueString(0, 16,
+ memory2string(
+ _mem.dtmf_settings.monitor),
+ False, CHARSET_DTMF_DIGITS)
+ line = RadioSetting("dtmf_settings.monitor",
+ "Monitor", val)
+ line.set_apply_callback(apply_dmtf_frame,
+ _mem.dtmf_settings.monitor)
+ dtmf_dec_settings.append(line)
+
+ val = RadioSettingValueString(0, 16,
+ memory2string(
+ _mem.dtmf_settings.stun),
+ False, CHARSET_DTMF_DIGITS)
+ line = RadioSetting("dtmf_settings.stun",
+ "Stun", val)
+ line.set_apply_callback(apply_dmtf_frame,
+ _mem.dtmf_settings.stun)
+ dtmf_dec_settings.append(line)
+
+ val = RadioSettingValueString(0, 16,
+ memory2string(
+ _mem.dtmf_settings.revive),
+ False, CHARSET_DTMF_DIGITS)
+ line = RadioSetting("dtmf_settings.revive",
+ "Revive", val)
+ line.set_apply_callback(apply_dmtf_frame,
+ _mem.dtmf_settings.revive)
+ dtmf_dec_settings.append(line)
+
+ def apply_dmtf_listvalue(setting, obj):
+ LOG.debug("Setting value: "+ str(setting.value) + " from list")
+ val = str(setting.value)
+ index = LIST_DTMF_SPECIAL_DIGITS.index(val)
+ val = LIST_DTMF_SPECIAL_VALUES[index]
+ obj.set_value(val)
+
+ idx = LIST_DTMF_SPECIAL_VALUES.index(_mem.dtmf_settings.groupcode)
+ line = RadioSetting(
+ "dtmf_settings.groupcode",
+ "Group Code",
+ RadioSettingValueList(LIST_DTMF_SPECIAL_DIGITS,
+ LIST_DTMF_SPECIAL_DIGITS[idx]))
+ line.set_apply_callback(apply_dmtf_listvalue,
+ _mem.dtmf_settings.groupcode)
+ dtmf_dec_settings.append(line)
+
+ idx = LIST_DTMF_SPECIAL_VALUES.index(_mem.dtmf_settings.spacecode)
+ line = RadioSetting(
+ "dtmf_settings.spacecode",
+ "Space Code",
+ RadioSettingValueList(LIST_DTMF_SPECIAL_DIGITS,
+ LIST_DTMF_SPECIAL_DIGITS[idx]))
+ line.set_apply_callback(apply_dmtf_listvalue,
+ _mem.dtmf_settings.spacecode)
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting(
+ "dtmf_settings.resettime",
+ "Reset time",
+ RadioSettingValueList(LIST_5TONE_RESET,
+ LIST_5TONE_RESET[
+ _mem.dtmf_settings.resettime]))
+ dtmf_dec_settings.append(line)
+
+ line = RadioSetting(
+ "dtmf_settings.delayproctime",
+ "Delay processing time",
+ RadioSettingValueList(LIST_DTMF_DELAY,
+ LIST_DTMF_DELAY[
+ _mem.dtmf_settings.delayproctime]))
+ dtmf_dec_settings.append(line)
+
+
+ # 5 Tone Settings
+ stds_5tone = RadioSettingGroup ("stds_5tone", "Standards")
+ codes_5tone = RadioSettingGroup ("codes_5tone", "Codes")
+
+ group_5tone = RadioSettingGroup ("group_5tone", "5 Tone Settings")
+ group_5tone.append(stds_5tone)
+ group_5tone.append(codes_5tone)
+
+ top.append(group_5tone)
+
+ def apply_list_value(setting, obj):
+ options = setting.value.get_options()
+ obj.set_value ( options.index(str(setting.value)) )
+
+ _5tone_standards = self._memobj._5tone_std_settings
+ i = 0
+ for standard in _5tone_standards:
+ std_5tone = RadioSettingGroup ("std_5tone_" + str(i),
+ LIST_5TONE_STANDARDS[i])
+ stds_5tone.append(std_5tone)
+
+ period = standard.period
+ if period == 255:
+ LOG.debug("Period for " + LIST_5TONE_STANDARDS[i] +
+ " is not yet configured. Setting to 70ms.")
+ period = 5
+
+ if period <= len( LIST_5TONE_STANDARD_PERIODS ):
+ line = RadioSetting(
+ "_5tone_std_settings_" + str(i) + "_period",
+ "Period (ms)", RadioSettingValueList
+ (LIST_5TONE_STANDARD_PERIODS,
+ LIST_5TONE_STANDARD_PERIODS[period]))
+ line.set_apply_callback(apply_list_value, standard.period)
+ std_5tone.append(line)
+ else:
+ LOG.debug("Invalid value for 5tone period! Disabling.")
+
+ group_tone = standard.group_tone
+ if group_tone == 255:
+ LOG.debug("Group-Tone for " + LIST_5TONE_STANDARDS[i] +
+ " is not yet configured. Setting to A.")
+ group_tone = 10
+
+ if group_tone <= len( LIST_5TONE_DIGITS ):
+ line = RadioSetting(
+ "_5tone_std_settings_" + str(i) + "_grouptone",
+ "Group Tone",
+ RadioSettingValueList(LIST_5TONE_DIGITS,
+ LIST_5TONE_DIGITS[
+ group_tone]))
+ line.set_apply_callback(apply_list_value,
+ standard.group_tone)
+ std_5tone.append(line)
+ else:
+ LOG.debug("Invalid value for 5tone digit! Disabling.")
+
+ repeat_tone = standard.repeat_tone
+ if repeat_tone == 255:
+ LOG.debug("Repeat-Tone for " + LIST_5TONE_STANDARDS[i] +
+ " is not yet configured. Setting to E.")
+ repeat_tone = 14
+
+ if repeat_tone <= len( LIST_5TONE_DIGITS ):
+ line = RadioSetting(
+ "_5tone_std_settings_" + str(i) + "_repttone",
+ "Repeat Tone",
+ RadioSettingValueList(LIST_5TONE_DIGITS,
+ LIST_5TONE_DIGITS[
+ repeat_tone]))
+ line.set_apply_callback(apply_list_value,
+ standard.repeat_tone)
+ std_5tone.append(line)
+ else:
+ LOG.debug("Invalid value for 5tone digit! Disabling.")
+ i = i + 1
+
+ def my_apply_5tonestdlist_value(setting, obj):
+ if LIST_5TONE_STANDARDS.index(str(setting.value)) == 15:
+ obj.set_value(0xFF)
+ else:
+ obj.set_value( LIST_5TONE_STANDARDS.
+ index(str(setting.value)) )
+
+ def apply_5tone_frame(setting, obj):
+ LOG.debug("Setting 5 Tone: " + str(setting.value) )
+ valstring = str(setting.value)
+ if len(valstring) == 0:
+ for i in range(0,5):
+ obj[i] = 255
+ else:
+ validFrame = True
+ for i in range(0,5):
+ currentChar = valstring[i].upper()
+ if currentChar in LIST_5TONE_DIGITS:
+ obj[i] = LIST_5TONE_DIGITS.index(currentChar)
+ else:
+ validFrame = False
+ LOG.debug("invalid char: " + str(currentChar))
+ if not validFrame:
+ LOG.debug("setting whole frame to FF" )
+ for i in range(0,5):
+ obj[i] = 255
+
+ def validate_5tone_frame(value):
+ if (len(str(value)) != 5) and (len(str(value)) != 0) :
+ msg = ("5 Tone must have 5 digits or 0 digits")
+ raise InvalidValueError(msg)
+ for digit in str(value):
+ if digit.upper() not in LIST_5TONE_DIGITS:
+ msg = (str(digit) + " is not a valid digit for 5tones")
+ raise InvalidValueError(msg)
+ return value
+
+ def frame2string(frame):
+ frameString = ""
+ for digit in frame:
+ if digit != 255:
+ frameString = frameString + LIST_5TONE_DIGITS[digit]
+ return frameString
+
+ _5tone_codes = self._memobj._5tone_codes
+ i = 1
+ for code in _5tone_codes:
+ code_5tone = RadioSettingGroup ("code_5tone_" + str(i),
+ "5 Tone code " + str(i))
+ codes_5tone.append(code_5tone)
+ if (code.standard == 255 ):
+ currentVal = 15
+ else:
+ currentVal = code.standard
+ line = RadioSetting("_5tone_code_" + str(i) + "_std",
+ " Standard",
+ RadioSettingValueList(LIST_5TONE_STANDARDS,
+ LIST_5TONE_STANDARDS[
+ currentVal]) )
+ line.set_apply_callback(my_apply_5tonestdlist_value,
+ code.standard)
+ code_5tone.append(line)
+
+ val = RadioSettingValueString(0, 6,
+ frame2string(code.frame1), False)
+ line = RadioSetting("_5tone_code_" + str(i) + "_frame1",
+ " Frame 1", val)
+ val.set_validate_callback(validate_5tone_frame)
+ line.set_apply_callback(apply_5tone_frame, code.frame1)
+ code_5tone.append(line)
+
+ val = RadioSettingValueString(0, 6,
+ frame2string(code.frame2), False)
+ line = RadioSetting("_5tone_code_" + str(i) + "_frame2",
+ " Frame 2", val)
+ val.set_validate_callback(validate_5tone_frame)
+ line.set_apply_callback(apply_5tone_frame, code.frame2)
+ code_5tone.append(line)
+
+ val = RadioSettingValueString(0, 6,
+ frame2string(code.frame3), False)
+ line = RadioSetting("_5tone_code_" + str(i) + "_frame3",
+ " Frame 3", val)
+ val.set_validate_callback(validate_5tone_frame)
+ line.set_apply_callback(apply_5tone_frame, code.frame3)
+ code_5tone.append(line)
+ i = i + 1
+
+ _5_tone_decode1 = RadioSetting(
+ "_5tone_settings._5tone_decode_call_frame1",
+ "5 Tone decode call Frame 1",
+ RadioSettingValueBoolean(
+ _mem._5tone_settings._5tone_decode_call_frame1))
+ group_5tone.append(_5_tone_decode1)
+
+ _5_tone_decode2 = RadioSetting(
+ "_5tone_settings._5tone_decode_call_frame2",
+ "5 Tone decode call Frame 2",
+ RadioSettingValueBoolean(
+ _mem._5tone_settings._5tone_decode_call_frame2))
+ group_5tone.append(_5_tone_decode2)
+
+ _5_tone_decode3 = RadioSetting(
+ "_5tone_settings._5tone_decode_call_frame3",
+ "5 Tone decode call Frame 3",
+ RadioSettingValueBoolean(
+ _mem._5tone_settings._5tone_decode_call_frame3))
+ group_5tone.append(_5_tone_decode3)
+
+ _5_tone_decode_disp1 = RadioSetting(
+ "_5tone_settings._5tone_decode_disp_frame1",
+ "5 Tone decode disp Frame 1",
+ RadioSettingValueBoolean(
+ _mem._5tone_settings._5tone_decode_disp_frame1))
+ group_5tone.append(_5_tone_decode_disp1)
+
+ _5_tone_decode_disp2 = RadioSetting(
+ "_5tone_settings._5tone_decode_disp_frame2",
+ "5 Tone decode disp Frame 2",
+ RadioSettingValueBoolean(
+ _mem._5tone_settings._5tone_decode_disp_frame2))
+ group_5tone.append(_5_tone_decode_disp2)
+
+ _5_tone_decode_disp3 = RadioSetting(
+ "_5tone_settings._5tone_decode_disp_frame3",
+ "5 Tone decode disp Frame 3",
+ RadioSettingValueBoolean(
+ _mem._5tone_settings._5tone_decode_disp_frame3))
+ group_5tone.append(_5_tone_decode_disp3)
+
+ decode_standard = _mem._5tone_settings.decode_standard
+ if decode_standard == 255:
+ decode_standard = 0
+ if decode_standard <= len (LIST_5TONE_STANDARDS_without_none) :
+ line = RadioSetting("_5tone_settings.decode_standard",
+ "5 Tone-decode Standard",
+ RadioSettingValueList(
+ LIST_5TONE_STANDARDS_without_none,
+ LIST_5TONE_STANDARDS_without_none[
+ decode_standard]))
+ group_5tone.append(line)
+ else:
+ LOG.debug("Invalid decode std...")
+ _5tone_delay1 = _mem._5tone_settings._5tone_delay1
+ if _5tone_delay1 == 255:
+ _5tone_delay1 = 20
+
+ if _5tone_delay1 <= len( LIST_5TONE_DELAY ):
+ list = RadioSettingValueList(LIST_5TONE_DELAY,
+ LIST_5TONE_DELAY[
+ _5tone_delay1])
+ line = RadioSetting("_5tone_settings._5tone_delay1",
+ "5 Tone Delay Frame 1", list)
+ group_5tone.append(line)
+ else:
+ LOG.debug("Invalid value for 5tone delay (frame1) ! Disabling.")
+
+ _5tone_delay2 = _mem._5tone_settings._5tone_delay2
+ if _5tone_delay2 == 255:
+ _5tone_delay2 = 20
+ LOG.debug("5 Tone delay unconfigured! Resetting to 200ms.")
+
+ if _5tone_delay2 <= len( LIST_5TONE_DELAY ):
+ list = RadioSettingValueList(LIST_5TONE_DELAY,
+ LIST_5TONE_DELAY[
+ _5tone_delay2])
+ line = RadioSetting("_5tone_settings._5tone_delay2",
+ "5 Tone Delay Frame 2", list)
+ group_5tone.append(line)
+ else:
+ LOG.debug("Invalid value for 5tone delay (frame2)! Disabling.")
+
+ _5tone_delay3 = _mem._5tone_settings._5tone_delay3
+ if _5tone_delay3 == 255:
+ _5tone_delay3 = 20
+ LOG.debug("5 Tone delay unconfigured! Resetting to 200ms.")
+
+ if _5tone_delay3 <= len( LIST_5TONE_DELAY ):
+ list = RadioSettingValueList(LIST_5TONE_DELAY,
+ LIST_5TONE_DELAY[
+ _5tone_delay3])
+ line = RadioSetting("_5tone_settings._5tone_delay3",
+ "5 Tone Delay Frame 3", list )
+ group_5tone.append(line)
+ else:
+ LOG.debug("Invalid value for 5tone delay (frame3)! Disabling.")
+
+ ext_length = _mem._5tone_settings._5tone_first_digit_ext_length
+ if ext_length == 255:
+ ext_length = 0
+ LOG.debug("1st Tone ext lenght unconfigured! Resetting to 0")
+
+ if ext_length <= len(
+ LIST_5TONE_DELAY ):
+ list = RadioSettingValueList(
+ LIST_5TONE_DELAY,
+ LIST_5TONE_DELAY[
+ ext_length])
+ line = RadioSetting(
+ "_5tone_settings._5tone_first_digit_ext_length",
+ "First digit extend length", list)
+ group_5tone.append(line)
+ else:
+ LOG.debug("Invalid value for 5tone ext length! Disabling.")
+
+ decode_reset_time = _mem._5tone_settings.decode_reset_time
+ if decode_reset_time == 255:
+ decode_reset_time = 59
+ LOG.debug("Decode reset time unconfigured. resetting.")
+ if decode_reset_time <= len(LIST_5TONE_RESET):
+ list = RadioSettingValueList(
+ LIST_5TONE_RESET,
+ LIST_5TONE_RESET[
+ decode_reset_time])
+ line = RadioSetting("_5tone_settings.decode_reset_time",
+ "Decode reset time", list)
+ group_5tone.append(line)
+ else:
+ LOG.debug("Invalid value decode reset time! Disabling.")
+
return top
def set_settings(self, settings):
1
0
Hi,
the attached version of the btech-driver has support for DTMF and 5-Tone signalling.
However, I could only test it on the KT8900R, and unfortunately my last patch caused crashes for other models.
So I'd like to enable the new features only for models that have been successfully tested.
Therefore I'm searching for owners of following models:
JT2705M
JT-6188 Mini
JT-6188 Plus
GT-890
MP-300
UV-2501
UV-2501+220
UV-5001
MINI-8900
KT-UV980
KT8900
LT-588UV
Could you please add your models in line 1728 (for DTMF) and 1991 (for 5-Tone) of the attached module, load it in chirp, test whether chirp displays the DTMF and 5-Tone-Settings as configured in the OEM-software - and report the result?
Thanks in advance!
73,
Michael
2
5
Tested changes:
[Jim Unroe <rock.unroe(a)gmail.com>] [UV-5X3] Add remaining DTMF Decode settings
This patch adds the following settings to the BTech UV-5X3:
- Group Code
- Space Code
related to #3931
[Michael Wagner <michael.wagner(a)gmx.at>] Add TreeView into ScrolledWindow to prevent resize of window. #4209
[Michael Wagner <michael.wagner(a)gmx.at>] [uv5r] Memorize extra-settings before erasing memory. Fix for UV-5R of issue #4121
Try two, with consistent naming of variables.
[Jim Unroe <rock.unroe(a)gmail.com>] [KG-UV8D] Add TX Inhibited Channel Support
The Wouxun KG-UV8D supports the ability to program channels with
TX disabled. This patch adds support for this feature.
Related to #4175
[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
4 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 c386ef4dc431e5065266de2b163260e6f5637b27
[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 c386ef4dc431e5065266de2b163260e6f5637b27
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson268147186702195759.sh
[workspace] $ /bin/sh -xe /tmp/hudson7606836058231878804.sh
+ PATH=/usr/bin:/bin:/usr/local/bin ./run_all_tests.sh
test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok
test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok
test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok
test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok
test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok
test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok
test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok
test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok
test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok
test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok
split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok
test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok
test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok
test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok
test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok
test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok
test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok
test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok
test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok
test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok
test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok
test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok
test_init (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok
test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok
test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok
test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok
test_changed (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok
test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok
test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok
test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
----------------------------------------------------------------------
Ran 151 tests in 0.055s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
./chirp/drivers/ft2900.py:781:80: E501 line too long (85 > 79 characters)
./chirp/drivers/ft2900.py:805:80: E501 line too long (85 > 79 characters)
./chirp/drivers/ft2900.py:835:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft2900.py:842:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft2900.py:923:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft2900.py:1106:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft2900.py:1111:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft2900.py:1118:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft2900.py:1123:80: E501 line too long (88 > 79 characters)
./chirp/drivers/ft2900.py:1169:80: E501 line too long (88 > 79 characters)
./chirp/drivers/ft2900.py:1174:80: E501 line too long (90 > 79 characters)
./chirp/drivers/ft2900.py:1238:1: E265 block comment should start with '# '
./chirp/drivers/ft60.py:490:80: E501 line too long (85 > 79 characters)
./chirp/drivers/ft60.py:495:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:500:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:505:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:510:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:538:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:556:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:567:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft60.py:584:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:589:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft60.py:594:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft60.py:599:80: E501 line too long (88 > 79 characters)
./chirp/drivers/ft60.py:605:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft60.py:610:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:621:80: E501 line too long (85 > 79 characters)
./chirp/drivers/ft60.py:632:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:637:80: E501 line too long (83 > 79 characters)
./chirp/drivers/ft60.py:642:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft60.py:647:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:652:80: E501 line too long (87 > 79 characters)
./chirp/drivers/ft60.py:657:80: E501 line too long (86 > 79 characters)
./chirp/drivers/ft817.py:1010:80: E501 line too long (85 > 79 characters)
./chirp/drivers/ft817.py:1087:80: E501 line too long (94 > 79 characters)
./chirp/drivers/kguv8d.py:698:80: E501 line too long (83 > 79 characters)
./chirp/drivers/kguv8d.py:727:80: E501 line too long (85 > 79 characters)
./chirp/drivers/kguv8d.py:731:80: E501 line too long (80 > 79 characters)
./chirp/drivers/kguv8d.py:746:80: E501 line too long (83 > 79 characters)
./chirp/drivers/kguv8d.py:760:80: E501 line too long (82 > 79 characters)
./chirp/drivers/kguv8d.py:764:80: E501 line too long (80 > 79 characters)
./chirp/drivers/kguv8d.py:774:80: E501 line too long (84 > 79 characters)
./chirp/drivers/kguv8d.py:778:80: E501 line too long (85 > 79 characters)
./chirp/drivers/kguv8d.py:789:80: E501 line too long (80 > 79 characters)
./chirp/drivers/kguv8d.py:800:80: E501 line too long (83 > 79 characters)
./chirp/drivers/kguv8d.py:817:80: E501 line too long (85 > 79 characters)
./chirp/drivers/leixen.py:956:80: E501 line too long (87 > 79 characters)
./chirp/drivers/thd72.py:205:80: E501 line too long (89 > 79 characters)
./chirp/drivers/thd72.py:206:80: E501 line too long (101 > 79 characters)
./chirp/drivers/uv5r.py:864:52: W291 trailing whitespace
./chirp/drivers/uv5r.py:947:13: E265 block comment should start with '# '
./chirp/settings.py:256:80: E501 line too long (81 > 79 characters)
./chirp/ui/mainapp.py:1379:80: E501 line too long (80 > 79 characters)
./chirp/ui/settingsedit.py:60:9: E303 too many blank lines (2)
real 0m7.568s
user 0m7.432s
sys 0m0.044s
================================================
Tests OK
+ cat /var/lib/jenkins/.chirp/debug.log
[2016-11-11 15:13:00,586] chirp.logger - DEBUG: CHIRP 0.3.0dev on Linux - Ubuntu 16.04.1 LTS (Python 2.7.12)
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TH-D7 = THD7Radio
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TH-D7G = THD7GRadio
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TM-D700 = TMD700Radio
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TM-V7 = TMV7Radio
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TM-G707 = TMG707Radio
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TH-G71 = THG71Radio
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TH-F6 = THF6ARadio
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TH-F7 = THF7ERadio
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TM-D710 = TMD710Radio
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TH-D72_live_mode = THD72Radio
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TM-V71 = TMV71Radio
[2016-11-11 15:13:00,624] chirp.directory - INFO: Registered Kenwood_TM-D710G = TMD710GRadio
[2016-11-11 15:13:00,625] chirp.directory - INFO: Registered Kenwood_TH-K2 = THK2Radio
[2016-11-11 15:13:00,625] chirp.directory - INFO: Registered Kenwood_TM-271 = TM271Radio
[2016-11-11 15:13:00,625] chirp.directory - INFO: Registered Kenwood_TM-281 = TM281Radio
[2016-11-11 15:13:00,625] chirp.directory - INFO: Registered Kenwood_TM-471 = TM471Radio
[2016-11-11 15:13:00,625] chirp.directory - INFO: Registered Icom_7200 = Icom7200Radio
[2016-11-11 15:13:00,625] chirp.directory - INFO: Registered Icom_IC-7000 = Icom7000Radio
[2016-11-11 15:13:00,625] chirp.directory - INFO: Registered Icom_IC-7100 = Icom7100Radio
[2016-11-11 15:13:00,625] chirp.directory - INFO: Registered Icom_746 = Icom746Radio
[2016-11-11 15:13:00,626] chirp.directory - INFO: Registered Alinco_DR03T = DR03Radio
[2016-11-11 15:13:00,626] chirp.directory - INFO: Registered Alinco_DR06T = DR06Radio
[2016-11-11 15:13:00,626] chirp.directory - INFO: Registered Alinco_DR135T = DR135Radio
[2016-11-11 15:13:00,626] chirp.directory - INFO: Registered Alinco_DR235T = DR235Radio
[2016-11-11 15:13:00,626] chirp.directory - INFO: Registered Alinco_DR435T = DR435Radio
[2016-11-11 15:13:00,626] chirp.directory - INFO: Registered Alinco_DJ596 = DJ596Radio
[2016-11-11 15:13:00,627] chirp.directory - INFO: Registered Jetstream_JT220M = JT220MRadio
[2016-11-11 15:13:00,627] chirp.directory - INFO: Registered Alinco_DJ175 = DJ175Radio
[2016-11-11 15:13:00,627] chirp.directory - INFO: Registered AnyTone_5888UV = AnyTone5888UVRadio
[2016-11-11 15:13:00,627] chirp.directory - INFO: Registered Intek_HR-2040 = IntekHR2040Radio
[2016-11-11 15:13:00,627] chirp.directory - INFO: Registered Polmar_DB-50M = PolmarDB50MRadio
[2016-11-11 15:13:00,627] chirp.directory - INFO: Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
[2016-11-11 15:13:00,627] chirp.directory - INFO: Registered AnyTone_TERMN-8R = AnyToneTERMN8RRadio
[2016-11-11 15:13:00,628] chirp.directory - INFO: Registered AnyTone_OBLTR-8R = AnyToneOBLTR8RRadio
[2016-11-11 15:13:00,628] chirp.directory - INFO: Registered Baofeng_UV-3R = UV3RRadio
[2016-11-11 15:13:00,629] chirp.directory - INFO: Registered Baofeng_BF-A58 = BFA58
[2016-11-11 15:13:00,629] chirp.directory - INFO: Registered Baofeng_UV-82WP = UV82WP
[2016-11-11 15:13:00,629] chirp.directory - INFO: Registered Baofeng_GT-3WP = GT3WP
[2016-11-11 15:13:00,629] chirp.directory - INFO: Registered Retevis_RT6 = RT6
[2016-11-11 15:13:00,629] chirp.directory - INFO: Registered Baojie_BJ-9900 = BJ9900Radio
[2016-11-11 15:13:00,630] chirp.directory - INFO: Registered Baofeng_UV-5R = BaofengUV5RGeneric
[2016-11-11 15:13:00,630] chirp.directory - INFO: Registered Baofeng_F-11 = BaofengF11Radio
[2016-11-11 15:13:00,630] chirp.directory - INFO: Registered Baofeng_UV-82 = BaofengUV82Radio
[2016-11-11 15:13:00,630] chirp.directory - INFO: Registered Baofeng_UV-6 = BaofengUV6Radio
[2016-11-11 15:13:00,630] chirp.directory - INFO: Registered Intek_KT-980HP = IntekKT980Radio
[2016-11-11 15:13:00,630] chirp.directory - INFO: Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
[2016-11-11 15:13:00,631] chirp.directory - INFO: Registered Baofeng_UV-82HP = BaofengUV82HPRadio
[2016-11-11 15:13:00,631] chirp.directory - INFO: Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
[2016-11-11 15:13:00,631] chirp.directory - INFO: Registered BTECH_UV-2501 = UV2501
[2016-11-11 15:13:00,631] chirp.directory - INFO: Registered BTECH_UV-2501+220 = UV2501_220
[2016-11-11 15:13:00,631] chirp.directory - INFO: Registered BTECH_UV-5001 = UV5001
[2016-11-11 15:13:00,631] chirp.directory - INFO: Registered WACCOM_MINI-8900 = MINI8900
[2016-11-11 15:13:00,631] chirp.directory - INFO: Registered QYT_KT-UV980 = KTUV980
[2016-11-11 15:13:00,632] chirp.directory - INFO: Registered QYT_KT8900 = KT9800
[2016-11-11 15:13:00,632] chirp.directory - INFO: Registered QYT_KT8900R = KT9800R
[2016-11-11 15:13:00,632] chirp.directory - INFO: Registered LUITON_LT-588UV = LT588UV
[2016-11-11 15:13:00,632] chirp.directory - INFO: Registered Feidaxin_FD-268A = FD268ARadio
[2016-11-11 15:13:00,632] chirp.directory - INFO: Registered Feidaxin_FD-268B = FD268BRadio
[2016-11-11 15:13:00,632] chirp.directory - INFO: Registered Feidaxin_FD-288A = FD288ARadio
[2016-11-11 15:13:00,632] chirp.directory - INFO: Registered Feidaxin_FD-288B = FD288BRadio
[2016-11-11 15:13:00,632] chirp.directory - INFO: Registered Feidaxin_FD-150A = FD150ARadio
[2016-11-11 15:13:00,633] chirp.directory - INFO: Registered Feidaxin_FD-160A = FD160ARadio
[2016-11-11 15:13:00,633] chirp.directory - INFO: Registered Feidaxin_FD-450A = FD450ARadio
[2016-11-11 15:13:00,633] chirp.directory - INFO: Registered Feidaxin_FD-460A = FD460ARadio
[2016-11-11 15:13:00,633] chirp.directory - INFO: Registered Yaesu_FT-1802M = FT1802Radio
[2016-11-11 15:13:00,634] chirp.directory - INFO: Registered Yaesu_FT-1D_R = FT1Radio
[2016-11-11 15:13:00,634] chirp.directory - INFO: Registered Yaesu_FT-2800M = FT2800Radio
[2016-11-11 15:13:00,634] chirp.directory - INFO: Registered Yaesu_FT-2900R_1900R = FT2900Radio
[2016-11-11 15:13:00,635] chirp.directory - INFO: Registered Yaesu_FT-50 = FT50Radio
[2016-11-11 15:13:00,635] chirp.directory - INFO: Registered Yaesu_FT-60 = FT60Radio
[2016-11-11 15:13:00,636] chirp.directory - INFO: Registered Yaesu_FT-7800_7900 = FT7800Radio
[2016-11-11 15:13:00,636] chirp.directory - INFO: Registered Yaesu_FT-8800 = FT8800Radio
[2016-11-11 15:13:00,636] chirp.directory - INFO: Registered Yaesu_FT-8900 = FT8900Radio
[2016-11-11 15:13:00,636] chirp.directory - INFO: Registered Yaesu_FT-8100 = FT8100Radio
[2016-11-11 15:13:00,636] chirp.directory - INFO: Registered Yaesu_FT-817 = FT817Radio
[2016-11-11 15:13:00,637] chirp.directory - INFO: Registered Yaesu_FT-817ND = FT817NDRadio
[2016-11-11 15:13:00,637] chirp.directory - INFO: Registered Yaesu_FT-817ND_US = FT817NDUSRadio
[2016-11-11 15:13:00,637] chirp.directory - INFO: Registered Yaesu_FT-857_897 = FT857Radio
[2016-11-11 15:13:00,637] chirp.directory - INFO: Registered Yaesu_FT-857_897_US = FT857USRadio
[2016-11-11 15:13:00,637] chirp.directory - INFO: Registered Yaesu_FT-90 = FT90Radio
[2016-11-11 15:13:00,638] chirp.directory - INFO: Registered Yaesu_FTM-350 = FTM350Radio
[2016-11-11 15:13:00,638] chirp.directory - INFO: Registered Generic_CSV = CSVRadio
[2016-11-11 15:13:00,639] chirp.directory - INFO: Registered Commander_KG-UV = CommanderCSVRadio
[2016-11-11 15:13:00,639] chirp.directory - INFO: Registered RT_Systems_CSV = RTCSVRadio
[2016-11-11 15:13:00,639] chirp.directory - INFO: Registered ARRL_Travel_Plus = TpeRadio
[2016-11-11 15:13:00,647] chirp.directory - INFO: Registered Generic_XML = XMLRadio
[2016-11-11 15:13:00,648] chirp.directory - INFO: Registered BTECH_GMRS-V1 = GMRSV1
[2016-11-11 15:13:00,651] chirp.directory - INFO: Registered Baofeng_BF-888 = H777Radio
[2016-11-11 15:13:00,652] chirp.directory - INFO: Registered HobbyPCB_RS-UV3 = HobbyPCBRSUV3Radio
[2016-11-11 15:13:00,652] chirp.directory - INFO: Registered Icom_IC-208H = IC208Radio
[2016-11-11 15:13:00,652] chirp.directory - INFO: Registered Icom_IC-2100H = IC2100Radio
[2016-11-11 15:13:00,652] chirp.directory - INFO: Registered Icom_IC-2200H = IC2200Radio
[2016-11-11 15:13:00,652] chirp.directory - INFO: Registered Icom_IC-2720H = IC2720Radio
[2016-11-11 15:13:00,653] chirp.directory - INFO: Registered Icom_IC-2820H = IC2820Radio
[2016-11-11 15:13:00,653] chirp.directory - INFO: Registered Icom_IC-91_92AD = IC9xRadio
[2016-11-11 15:13:00,653] chirp.directory - INFO: Registered Icom_IC-Q7A = ICQ7Radio
[2016-11-11 15:13:00,654] chirp.directory - INFO: Registered Icom_IC-T70 = ICT70Radio
[2016-11-11 15:13:00,654] chirp.directory - INFO: Registered Icom_IC-T7H = ICT7HRadio
[2016-11-11 15:13:00,654] chirp.directory - INFO: Registered Icom_IC-T8A = ICT8ARadio
[2016-11-11 15:13:00,654] chirp.directory - INFO: Registered Icom_IC-W32A = ICW32ARadio
[2016-11-11 15:13:00,654] chirp.directory - INFO: Registered Icom_IC-W32E = ICW32ERadio
[2016-11-11 15:13:00,655] chirp.directory - INFO: Registered Icom_IC-V82_U82 = ICx8xRadio
[2016-11-11 15:13:00,655] chirp.directory - INFO: Registered Icom_ID-31A = ID31Radio
[2016-11-11 15:13:00,655] chirp.directory - INFO: Registered Icom_ID-51 = ID51Radio
[2016-11-11 15:13:00,655] chirp.directory - INFO: Registered Icom_ID-51_Plus = ID51PLUSRadio
[2016-11-11 15:13:00,655] chirp.directory - INFO: Registered Icom_ID-800H_v2 = ID800v2Radio
[2016-11-11 15:13:00,656] chirp.directory - INFO: Registered Icom_ID-880H = ID880Radio
[2016-11-11 15:13:00,656] chirp.directory - INFO: Registered Icom_ID-80H = ID80Radio
[2016-11-11 15:13:00,656] chirp.directory - INFO: Registered Kenwood_HMK = HMKRadio
[2016-11-11 15:13:00,656] chirp.directory - INFO: Registered Kenwood_ITM = ITMRadio
[2016-11-11 15:13:00,657] chirp.directory - INFO: Registered Wouxun_KG-UV8D = KGUV8DRadio
[2016-11-11 15:13:00,657] chirp.directory - INFO: Registered KYD_NC-630A = NC630aRadio
[2016-11-11 15:13:00,657] chirp.directory - INFO: Registered KYD_IP-620 = IP620Radio
[2016-11-11 15:13:00,657] chirp.directory - INFO: Registered Leixen_VV-898 = LeixenVV898Radio
[2016-11-11 15:13:00,658] chirp.directory - INFO: Registered Jetstream_JT270M = JetstreamJT270MRadio
[2016-11-11 15:13:00,658] chirp.directory - INFO: Registered Leixen_VV-898S = LeixenVV898SRadio
[2016-11-11 15:13:00,658] chirp.directory - INFO: Registered LUITON_LT-725UV = LT725UV
[2016-11-11 15:13:00,659] chirp.directory - INFO: Registered Wouxun_KG-UVD1P = KGUVD1PRadio
[2016-11-11 15:13:00,659] chirp.directory - INFO: Registered Wouxun_KG-UV6 = KGUV6DRadio
[2016-11-11 15:13:00,659] chirp.directory - INFO: Registered Wouxun_KG-816 = KG816Radio
[2016-11-11 15:13:00,659] chirp.directory - INFO: Registered Wouxun_KG-818 = KG818Radio
[2016-11-11 15:13:00,659] chirp.directory - INFO: Registered Puxing_PX-777 = Puxing777Radio
[2016-11-11 15:13:00,659] chirp.directory - INFO: Registered Puxing_PX-2R = Puxing2RRadio
[2016-11-11 15:13:00,661] chirp.directory - INFO: Registered Puxing_PX-888K = Puxing_PX888K_Radio
[2016-11-11 15:13:00,661] chirp.directory - INFO: Registered Retevis_RT21 = RT21Radio
[2016-11-11 15:13:00,661] chirp.directory - INFO: Registered TYT_TH-7800_File = TYTTH7800File
[2016-11-11 15:13:00,661] chirp.directory - INFO: Registered TYT_TH-7800 = TYTTH7800Radio
[2016-11-11 15:13:00,662] chirp.directory - INFO: Registered TYT_TH9000_220 = Th9000220Radio
[2016-11-11 15:13:00,662] chirp.directory - INFO: Registered TYT_TH9000_144 = Th9000144Radio
[2016-11-11 15:13:00,662] chirp.directory - INFO: Registered TYT_TH9000_440 = Th9000440Radio
[2016-11-11 15:13:00,662] chirp.directory - INFO: Registered TYT_TH-9800_File = TYTTH9800File
[2016-11-11 15:13:00,662] chirp.directory - INFO: Registered TYT_TH-9800 = TYTTH9800Radio
[2016-11-11 15:13:00,663] chirp.directory - INFO: Registered TYT_TH-UV3R = TYTUV3RRadio
[2016-11-11 15:13:00,663] chirp.directory - INFO: Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
[2016-11-11 15:13:00,663] chirp.directory - INFO: Registered TYT_TH-UVF8D = TYTUVF8DRadio
[2016-11-11 15:13:00,663] chirp.directory - INFO: Registered Kenwood_TH-D72_clone_mode = THD72Radio
[2016-11-11 15:13:00,664] chirp.directory - INFO: Registered TYT_TH-UVF1 = TYTTHUVF1Radio
[2016-11-11 15:13:00,664] chirp.directory - INFO: Registered Kenwood_TK-260 = TK260_Radio
[2016-11-11 15:13:00,664] chirp.directory - INFO: Registered Kenwood_TK-270 = TK270_Radio
[2016-11-11 15:13:00,664] chirp.directory - INFO: Registered Kenwood_TK-272 = TK272_Radio
[2016-11-11 15:13:00,664] chirp.directory - INFO: Registered Kenwood_TK-278 = TK278_Radio
[2016-11-11 15:13:00,664] chirp.directory - INFO: Registered Kenwood_TK-360 = TK360_Radio
[2016-11-11 15:13:00,664] chirp.directory - INFO: Registered Kenwood_TK-370 = TK370_Radio
[2016-11-11 15:13:00,665] chirp.directory - INFO: Registered Kenwood_TK-372 = TK372_Radio
[2016-11-11 15:13:00,665] chirp.directory - INFO: Registered Kenwood_TK-378 = TK378_Radio
[2016-11-11 15:13:00,665] chirp.directory - INFO: Registered Kenwood_TK-760 = TK760_Radio
[2016-11-11 15:13:00,665] chirp.directory - INFO: Registered Kenwood_TK-762 = TK762_Radio
[2016-11-11 15:13:00,665] chirp.directory - INFO: Registered Kenwood_TK-768 = TK768_Radio
[2016-11-11 15:13:00,665] chirp.directory - INFO: Registered Kenwood_TK-860 = TK860_Radio
[2016-11-11 15:13:00,665] chirp.directory - INFO: Registered Kenwood_TK-862 = TK862_Radio
[2016-11-11 15:13:00,665] chirp.directory - INFO: Registered Kenwood_TK-868 = TK868_Radio
[2016-11-11 15:13:00,666] chirp.directory - INFO: Registered Kenwood_TK-868G = TK868G_Radios
[2016-11-11 15:13:00,666] chirp.directory - INFO: Registered Kenwood_TK-862G = TK862G_Radios
[2016-11-11 15:13:00,666] chirp.directory - INFO: Registered Kenwood_TK-860G = TK860G_Radios
[2016-11-11 15:13:00,666] chirp.directory - INFO: Registered Kenwood_TK-768G = TK768G_Radios
[2016-11-11 15:13:00,666] chirp.directory - INFO: Registered Kenwood_TK-762G = TK762G_Radios
[2016-11-11 15:13:00,666] chirp.directory - INFO: Registered Kenwood_TK-760G = TK760G_Radios
[2016-11-11 15:13:00,667] chirp.directory - INFO: Registered Kenwood_TK-388G = TK388G_Radios
[2016-11-11 15:13:00,667] chirp.directory - INFO: Registered Kenwood_TK-378G = TK378G_Radios
[2016-11-11 15:13:00,667] chirp.directory - INFO: Registered Kenwood_TK-372G = TK372G_Radios
[2016-11-11 15:13:00,667] chirp.directory - INFO: Registered Kenwood_TK-370G = TK370G_Radios
[2016-11-11 15:13:00,667] chirp.directory - INFO: Registered Kenwood_TK-360G = TK360G_Radios
[2016-11-11 15:13:00,667] chirp.directory - INFO: Registered Kenwood_TK-278G = TK278G_Radios
[2016-11-11 15:13:00,667] chirp.directory - INFO: Registered Kenwood_TK-272G = TK272G_Radios
[2016-11-11 15:13:00,667] chirp.directory - INFO: Registered Kenwood_TK-270G = TK270G_Radios
[2016-11-11 15:13:00,667] chirp.directory - INFO: Registered Kenwood_TK-260G = TK260G_Radios
[2016-11-11 15:13:00,667] chirp.directory - INFO: Registered Kenwood_TK-7102 = KenwoodTK7102Radio
[2016-11-11 15:13:00,668] chirp.directory - INFO: Registered Kenwood_TK-8102 = KenwoodTK8102Radio
[2016-11-11 15:13:00,668] chirp.directory - INFO: Registered Kenwood_TK-7108 = KenwoodTK7108Radio
[2016-11-11 15:13:00,668] chirp.directory - INFO: Registered Kenwood_TK-8108 = KenwoodTK8108Radio
[2016-11-11 15:13:00,668] chirp.directory - INFO: Registered Kenwood_TS-2000 = TS2000Radio
[2016-11-11 15:13:00,669] chirp.directory - INFO: Registered BTECH_UV-5X3 = UV5X3
[2016-11-11 15:13:00,669] chirp.directory - INFO: Registered Baofeng_UV-6R = UV6R
[2016-11-11 15:13:00,669] chirp.directory - INFO: Registered Baofeng_UV-B5 = BaofengUVB5
[2016-11-11 15:13:00,670] chirp.directory - INFO: Registered BTECH_UV-50X3 = UV50X3
[2016-11-11 15:13:00,670] chirp.directory - INFO: Registered Yaesu_VX-170 = VX170Radio
[2016-11-11 15:13:00,670] chirp.directory - INFO: Registered Yaesu_VX-2 = VX2Radio
[2016-11-11 15:13:00,671] chirp.directory - INFO: Registered Yaesu_VX-3 = VX3Radio
[2016-11-11 15:13:00,671] chirp.directory - INFO: Registered Yaesu_VX-5 = VX5Radio
[2016-11-11 15:13:00,671] chirp.directory - INFO: Registered Yaesu_VX-6 = VX6Radio
[2016-11-11 15:13:00,671] chirp.directory - INFO: Registered Yaesu_VX-7 = VX7Radio
[2016-11-11 15:13:00,672] chirp.directory - INFO: Registered Yaesu_VX-8_R = VX8Radio
[2016-11-11 15:13:00,672] chirp.directory - INFO: Registered Yaesu_VX-8_DR = VX8DRadio
[2016-11-11 15:13:00,672] chirp.directory - INFO: Registered Yaesu_VX-8_GE = VX8GERadio
[2016-11-11 15:13:00,673] chirp.directory - INFO: Registered Vertex_Standard_VXA-700 = VXA700Radio
Email was triggered for: Success
Sending email for trigger: Success
1
0