Developers
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 1 participants
- 2965 discussions
The logging module now handles the magical "debug.log" file, and the
version string is emitted with LOG.debug.
The regresions caused by the patch that replaced CHIRP_DEBUG checks with
proper logging calls was due to uncaught AttributeErrors (exposed as
side-effects of the debugging calls). Those are now caught, so all of
the tests pass.
The 'cpep8.py' script (renamed to avoid naming conflict) now uses the
pep8 module directly, rather than forking subprocesses. On the upside,
it is now over twice as fast. Unfortunately, there is no longer any way
for it to report its progress, so it's a lot quieter. Such is life.
While I was tinkering, I added an option to automatically update the
blacklist, and it found a number of files that were already compliant.
I fixed the blacklist to initially include the chirpc/chirpw scripts,
though they are subsequently removed in the very next patch. I figured
that it was best to demonstrate how we will move forward with bringing
the tree into style compliance.
In that vein, I fixed many more of the low-hanging style issues. The
remainder of the files have many more issues and may end up deserving
their own individual patches.
I included a new patch that fixes the style of the setup.py patch
(including the idiom upgrade discussed while reviewing the last series).
On top of that, I included another new patch that tries to update the
setup.py script to follow the moved drivers, but I am not sure that I
got it entirely correct. I had overlooked that file in my last series.
Likewise, I moved a few more drivers that I had overlooked.
I included a tweak to run_tests that allows it to be run from locations
other than the test directory. I found myself repeatedly trying to run
it from the top-level and got annoyed enough to fix it.
Zach Welch (12):
Add chirp.logger module (#2347)
Use new logger module (#2347)
Suppress startup debugging messages (#2347)
Add pep8 checker script (#2355)
Fix style issues (1/4) (#2355)
Fix style issues (2/4) (#2355)
Fix style issues (3/4) (#2355)
Fix style issues (4/4) (#2355)
Fix style issues in setup.py (#2355)
Move drivers into their own directory (#2351)
Adjust setup.py for relocated drivers (#2351)
Allow run_tests to be run from anywhere (#2343)
chirp/bandplan.py | 3 +-
chirp/bitwise_grammar.py | 20 ++
chirp/detect.py | 19 +-
chirp/directory.py | 31 ++-
chirp/drivers/__init__.py | 10 +
chirp/{ => drivers}/alinco.py | 0
chirp/{ => drivers}/anytone.py | 13 +-
chirp/{ => drivers}/ap510.py | 0
chirp/{ => drivers}/baofeng_uv3r.py | 7 +-
chirp/{ => drivers}/bjuv55.py | 7 +-
chirp/{ => drivers}/ft1802.py | 3 +-
chirp/{ => drivers}/ft1d.py | 17 +-
chirp/{ => drivers}/ft2800.py | 20 +-
chirp/{ => drivers}/ft50.py | 3 +-
chirp/{ => drivers}/ft50_ll.py | 0
chirp/{ => drivers}/ft60.py | 11 +-
chirp/{ => drivers}/ft7800.py | 31 +--
chirp/{ => drivers}/ft817.py | 37 ++-
chirp/{ => drivers}/ft857.py | 15 +-
chirp/{ => drivers}/ft90.py | 56 ++--
chirp/{ => drivers}/ftm350.py | 11 +-
chirp/{ => drivers}/generic_csv.py | 95 ++++---
chirp/{ => drivers}/generic_tpe.py | 14 +-
chirp/{ => drivers}/generic_xml.py | 9 +-
chirp/{ => drivers}/h777.py | 16 +-
chirp/{ => drivers}/ic208.py | 4 +-
chirp/{ => drivers}/ic2100.py | 4 +-
chirp/{ => drivers}/ic2200.py | 4 +-
chirp/{ => drivers}/ic2720.py | 4 +-
chirp/{ => drivers}/ic2820.py | 4 +-
chirp/{ => drivers}/ic9x.py | 3 +-
chirp/{ => drivers}/ic9x_icf.py | 3 +-
chirp/{ => drivers}/ic9x_icf_ll.py | 0
chirp/{ => drivers}/ic9x_ll.py | 0
chirp/{ => drivers}/icf.py | 0
chirp/{ => drivers}/icomciv.py | 15 +-
chirp/{ => drivers}/icq7.py | 4 +-
chirp/{ => drivers}/ict70.py | 4 +-
chirp/{ => drivers}/ict7h.py | 4 +-
chirp/{ => drivers}/ict8.py | 3 +-
chirp/{ => drivers}/icw32.py | 4 +-
chirp/{ => drivers}/icx8x.py | 3 +-
chirp/{ => drivers}/icx8x_ll.py | 0
chirp/{ => drivers}/id31.py | 3 +-
chirp/{ => drivers}/id51.py | 3 +-
chirp/{ => drivers}/id800.py | 4 +-
chirp/{ => drivers}/id880.py | 4 +-
chirp/{ => drivers}/idrp.py | 13 +-
chirp/{ => drivers}/kenwood_hmk.py | 0
chirp/{ => drivers}/kenwood_itm.py | 0
chirp/{ => drivers}/kenwood_live.py | 11 +-
chirp/{ => drivers}/kguv8d.py | 42 ++-
chirp/{ => drivers}/kyd.py | 26 +-
chirp/{ => drivers}/leixen.py | 5 -
chirp/{ => drivers}/puxing.py | 7 +-
chirp/{ => drivers}/template.py | 26 +-
chirp/{ => drivers}/th9800.py | 36 +--
chirp/{ => drivers}/th_uv3r.py | 7 +-
chirp/{ => drivers}/th_uv3r25.py | 2 +-
chirp/{ => drivers}/th_uvf8d.py | 0
chirp/{ => drivers}/thd72.py | 10 +-
chirp/{ => drivers}/thuv1f.py | 0
chirp/{ => drivers}/tk8102.py | 8 +-
chirp/{ => drivers}/tmv71.py | 2 +-
chirp/{ => drivers}/tmv71_ll.py | 10 +-
chirp/{ => drivers}/uv5r.py | 26 +-
chirp/{ => drivers}/uvb5.py | 0
chirp/{ => drivers}/vx170.py | 10 +-
chirp/{ => drivers}/vx2.py | 32 +--
chirp/{ => drivers}/vx3.py | 35 +--
chirp/{ => drivers}/vx5.py | 4 +-
chirp/{ => drivers}/vx510.py | 4 +-
chirp/{ => drivers}/vx6.py | 4 +-
chirp/{ => drivers}/vx7.py | 4 +-
chirp/{ => drivers}/vx8.py | 15 +-
chirp/{ => drivers}/vxa700.py | 0
chirp/{ => drivers}/wouxun.py | 15 +-
chirp/{ => drivers}/wouxun_common.py | 9 +-
chirp/{ => drivers}/yaesu_clone.py | 13 +-
chirp/errors.py | 6 +
chirp/import_logic.py | 34 ++-
chirp/logger.py | 55 ++--
chirp/memmap.py | 5 +-
chirp/platform.py | 37 ++-
chirp/radioreference.py | 22 +-
chirp/util.py | 15 +-
chirp/xml_ll.py | 20 +-
chirpc | 498 ++++++++++++++++++-----------------
chirpui/bankedit.py | 33 +--
chirpui/clone.py | 19 +-
chirpui/cloneprog.py | 7 +-
chirpui/config.py | 7 +-
chirpui/dstaredit.py | 18 +-
chirpui/inputdialog.py | 10 +-
chirpui/mainapp.py | 9 +-
chirpui/radiobrowser.py | 20 +-
chirpui/reporting.py | 32 ++-
chirpui/settingsedit.py | 31 ++-
chirpui/shiftdialog.py | 7 +-
chirpw | 56 ++--
csvdump/__init__.py | 1 -
locale/check_parameters.py | 15 +-
rpttool | 12 +-
run_all_tests.sh | 11 +-
setup.py | 70 +++--
share/make_supported.py | 1 +
tests/run_tests | 7 +-
tests/unit/base.py | 1 +
tests/unit/test_bitwise.py | 15 +-
tests/unit/test_chirp_common.py | 3 +
tests/unit/test_mappingmodel.py | 11 +-
tests/unit/test_platform.py | 1 +
tests/unit/test_shiftdialog.py | 2 +
tools/cpep8.blacklist | 101 +++++++
tools/cpep8.manifest | 4 +
tools/cpep8.py | 94 +++++++
116 files changed, 1264 insertions(+), 927 deletions(-)
create mode 100644 chirp/drivers/__init__.py
rename chirp/{ => drivers}/alinco.py (100%)
rename chirp/{ => drivers}/anytone.py (98%)
rename chirp/{ => drivers}/ap510.py (100%)
rename chirp/{ => drivers}/baofeng_uv3r.py (99%)
rename chirp/{ => drivers}/bjuv55.py (99%)
rename chirp/{ => drivers}/ft1802.py (98%)
rename chirp/{ => drivers}/ft1d.py (99%)
rename chirp/{ => drivers}/ft2800.py (94%)
rename chirp/{ => drivers}/ft50.py (95%)
rename chirp/{ => drivers}/ft50_ll.py (100%)
rename chirp/{ => drivers}/ft60.py (99%)
rename chirp/{ => drivers}/ft7800.py (97%)
rename chirp/{ => drivers}/ft817.py (97%)
rename chirp/{ => drivers}/ft857.py (99%)
rename chirp/{ => drivers}/ft90.py (94%)
rename chirp/{ => drivers}/ftm350.py (97%)
rename chirp/{ => drivers}/generic_csv.py (84%)
rename chirp/{ => drivers}/generic_tpe.py (82%)
rename chirp/{ => drivers}/generic_xml.py (98%)
rename chirp/{ => drivers}/h777.py (98%)
rename chirp/{ => drivers}/ic208.py (98%)
rename chirp/{ => drivers}/ic2100.py (98%)
rename chirp/{ => drivers}/ic2200.py (98%)
rename chirp/{ => drivers}/ic2720.py (98%)
rename chirp/{ => drivers}/ic2820.py (99%)
rename chirp/{ => drivers}/ic9x.py (99%)
rename chirp/{ => drivers}/ic9x_icf.py (96%)
rename chirp/{ => drivers}/ic9x_icf_ll.py (100%)
rename chirp/{ => drivers}/ic9x_ll.py (100%)
rename chirp/{ => drivers}/icf.py (100%)
rename chirp/{ => drivers}/icomciv.py (96%)
rename chirp/{ => drivers}/icq7.py (99%)
rename chirp/{ => drivers}/ict70.py (98%)
rename chirp/{ => drivers}/ict7h.py (97%)
rename chirp/{ => drivers}/ict8.py (97%)
rename chirp/{ => drivers}/icw32.py (98%)
rename chirp/{ => drivers}/icx8x.py (98%)
rename chirp/{ => drivers}/icx8x_ll.py (100%)
rename chirp/{ => drivers}/id31.py (99%)
rename chirp/{ => drivers}/id51.py (96%)
rename chirp/{ => drivers}/id800.py (99%)
rename chirp/{ => drivers}/id880.py (99%)
rename chirp/{ => drivers}/idrp.py (94%)
rename chirp/{ => drivers}/kenwood_hmk.py (100%)
rename chirp/{ => drivers}/kenwood_itm.py (100%)
rename chirp/{ => drivers}/kenwood_live.py (99%)
rename chirp/{ => drivers}/kguv8d.py (96%)
rename chirp/{ => drivers}/kyd.py (95%)
rename chirp/{ => drivers}/leixen.py (99%)
rename chirp/{ => drivers}/puxing.py (99%)
rename chirp/{ => drivers}/template.py (84%)
rename chirp/{ => drivers}/th9800.py (96%)
rename chirp/{ => drivers}/th_uv3r.py (98%)
rename chirp/{ => drivers}/th_uv3r25.py (99%)
rename chirp/{ => drivers}/th_uvf8d.py (100%)
rename chirp/{ => drivers}/thd72.py (98%)
rename chirp/{ => drivers}/thuv1f.py (100%)
rename chirp/{ => drivers}/tk8102.py (98%)
rename chirp/{ => drivers}/tmv71.py (98%)
rename chirp/{ => drivers}/tmv71_ll.py (98%)
rename chirp/{ => drivers}/uv5r.py (99%)
rename chirp/{ => drivers}/uvb5.py (100%)
rename chirp/{ => drivers}/vx170.py (94%)
rename chirp/{ => drivers}/vx2.py (97%)
rename chirp/{ => drivers}/vx3.py (97%)
rename chirp/{ => drivers}/vx5.py (98%)
rename chirp/{ => drivers}/vx510.py (98%)
rename chirp/{ => drivers}/vx6.py (99%)
rename chirp/{ => drivers}/vx7.py (99%)
rename chirp/{ => drivers}/vx8.py (99%)
rename chirp/{ => drivers}/vxa700.py (100%)
rename chirp/{ => drivers}/wouxun.py (99%)
rename chirp/{ => drivers}/wouxun_common.py (94%)
rename chirp/{ => drivers}/yaesu_clone.py (95%)
create mode 100644 tools/cpep8.blacklist
create mode 100644 tools/cpep8.manifest
create mode 100755 tools/cpep8.py
--
1.9.1
5
25
1
0
Tested changes:
[Zach Welch <zach(a)mandolincreekfarm.com>] Allow run_tests to be run from anywhere (#2343)
Find the path to run_tests, then chdir into the tests directory.
[Zach Welch <zach(a)mandolincreekfarm.com>] Fix style issues in setup.py (#2355)
This patch brings setup.py into conformance with PEP8 rules and removes
it from the blacklist. It also rewrites the staticify_chirp_module
routine to be more idiomatic.
[Zach Welch <zach(a)mandolincreekfarm.com>] Fix style issues (4/4) (#2355)
More low-hanging style issues.
[Zach Welch <zach(a)mandolincreekfarm.com>] Fix style issues (3/4) (#2355)
This patch fixes more low-hanging style issues. For the most part,
these are all whitespace changes, but there were a handful of idiomatic
changes flagged by the pep8 tool too: "x.has_key(y)" is now "y in x".
[Zach Welch <zach(a)mandolincreekfarm.com>] Fix style issues (2/4) (#2355)
This patch fixes the style in a handful of files and removes them
from pep8.blacklist.
[Zach Welch <zach(a)mandolincreekfarm.com>] Fix style issues (1/4) (#2355)
This patch contains whitespace-only changes that eliminate all of the
PEP8 style warnings in the CLI and GUI scripts.
[Zach Welch <zach(a)mandolincreekfarm.com>] Add pep8 checker script (#2355)
This patch adds a new script that runs the pep8 tool on the CHIRP source
code files. This script is intended to be included in the repository
pre-commit hook, preventing patches from causing style regressions.
The script checks a blacklist of files that are not yet compliant with
the style standards, and those files will not be scanned (unless -a is
given). Since no new files should ever be added to the blacklist, it
should eventually shrink to empty, and the script will check the entire
codebase.
The blacklist makes it safe to begin using this tool immediately, so
this patch also adds a call to it from run_all_tests.sh.
[Zach Welch <zach(a)mandolincreekfarm.com>] Suppress startup debugging messages (#2347)
This patch changes the verbose startup messages to use LOG.info calls.
This change is required to make the CLI remotely usable, as it's
unreasonable to print so much information in that context.
I kept this separate from the last patch, because I can imagine that
this might impact the automated/buildbot testing. To avoid regressions,
the previous output can be generated by setting 'CHIRP_DEBUG=info' in the
environment.
[Zach Welch <zach(a)mandolincreekfarm.com>] Use new logger module (#2347)
This patch chases down all references to CHIRP_DEBUG, converting the
wrapped print calls to LOG.debug calls. It also eliminates a few plain
DEBUG variables and a couple of other one-off variants.
[Zach Welch <zach(a)mandolincreekfarm.com>] Fix chirp.logger module (#2347)
This patch addresses some issues with the chirp.logger module in order
to use it in chirpc and chirpw. It prints the version string when
logging at DEBUG level.
In addition, it embraces and extends the "debug.log" support that was
present in chirpw, ensuring all log messages and output end up in that
file when running on Win32 or MacOS hosts. It also allows that feature
to be tested on Linux by setting CHIRP_DEBUG_LOG in the environment.
[K. Arvanitis <kosta(a)alumni.uvic.ca>] [FT-60] Adding support for PMS channels.
Added special channel support for yasue programmable memory scan channels:
L1 - L50 and U1 - U50.
Bug #2367
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
76 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 93add44b17cb8a63116f0c7410f637a3b3e2223b
[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 93add44b17cb8a63116f0c7410f637a3b3e2223b
No emails were triggered.
[workspace] $ /bin/sh -xe /tmp/hudson1561379177445625558.sh
+ ./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.060s
OK
Patch 'tip' is OK
Checking for PEP8 regressions...
1 E114 indentation is not a multiple of four (comment)
2 E115 expected an indented block (comment)
2 E116 unexpected indentation (comment)
13 E265 block comment should start with '# '
8 E402 module level import not at top of file
1 E713 test for membership should be 'not in'
2 E731 do not assign a lambda expression, use a def
real 0m2.447s
user 0m0.934s
sys 0m0.021s
================================================
Tests FAILED: pep8
Build step 'Execute shell' marked build as failure
Email was triggered for: Failure
Sending email for trigger: Failure
1
1
# HG changeset patch
# User K. Arvanitis <kosta(a)alumni.uvic.ca>
# Date 1424938909 28800
# Thu Feb 26 00:21:49 2015 -0800
# Node ID a29be3838b2e0f12446cf8c72cf6c842f4ffa19d
# Parent 93add44b17cb8a63116f0c7410f637a3b3e2223b
[FT-60] Adding support for PMS channels.
Added special channel support for yasue programmable memory scan channels:
L1 - L50 and U1 - U50.
Bug #2367
diff -r 93add44b17cb -r a29be3838b2e chirp/ft60.py
--- a/chirp/ft60.py Thu Feb 26 17:28:00 2015 -0800
+++ b/chirp/ft60.py Thu Feb 26 00:21:49 2015 -0800
@@ -204,8 +204,7 @@
#seekto 0x09E;
ul16 mbs;
-#seekto 0x0248;
-struct {
+struct mem {
u8 used:1,
unknown1:1,
isnarrow:1,
@@ -224,7 +223,13 @@
u8 unknown5[2];
u8 offset;
u8 unknown6[3];
-} memory[1000];
+};
+
+#seekto 0x0248;
+struct mem memory[1000];
+
+#seekto 0x40c8;
+struct mem pms[100];
#seekto 0x6EC8;
// skips:2 for Memory M in [1, 1000] is in flags[(M-1)/4].skip((M-1)%4).
@@ -263,6 +268,8 @@
STEPS = [5.0, 10.0, 12.5, 15.0, 20.0, 25.0, 50.0, 100.0]
SKIPS = ["", "S", "P"]
CHARSET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ [?]^__|`?$%&-()*+,-,/|;/=>?@"
+SPECIALS = ["%s%d" % (c,i+1) for i in range(0, 50) for c in ('L', 'U') ]
+
class FT60BankModel(chirp_common.BankModel):
def get_num_mappings(self):
@@ -346,6 +353,7 @@
rf.valid_power_levels = POWER_LEVELS
rf.valid_tuning_steps = STEPS
rf.valid_skips = SKIPS
+ rf.valid_special_chans = SPECIALS
rf.valid_characters = CHARSET
rf.valid_name_length = 6
rf.valid_modes = ["FM", "NFM", "AM"]
@@ -629,14 +637,28 @@
repr(self._memobj.names[number - 1])
def get_memory(self, number):
- _mem = self._memobj.memory[number - 1]
- _skp = self._memobj.flags[(number - 1) / 4]
- _nam = self._memobj.names[number - 1]
+
+ mem = chirp_common.Memory()
- skip = _skp["skip%i" % ((number - 1) % 4)]
-
- mem = chirp_common.Memory()
- mem.number = number
+ if isinstance(number, str):
+ # pms channel
+ mem.number = 1001 + SPECIALS.index(number)
+ mem.extd_number = number
+ mem.immutable = ["number", "extd_number", "name", "skip"]
+ _mem = self._memobj.pms[mem.number - 1001]
+ _nam = _skp = None
+ elif number > 1000:
+ # pms channel
+ mem.number = number
+ mem.extd_number = SPECIALS[number - 1001]
+ mem.immutable = ["number", "extd_number", "name", "skip"]
+ _mem = self._memobj.pms[mem.number - 1001]
+ _nam = _skp = None
+ else:
+ mem.number = number
+ _mem = self._memobj.memory[mem.number - 1]
+ _nam = self._memobj.names[mem.number - 1]
+ _skp = self._memobj.flags[(mem.number - 1) / 4]
if not _mem.used:
mem.empty = True
@@ -644,7 +666,6 @@
mem.freq = _decode_freq(_mem.freq)
mem.offset = int(_mem.offset) * 50000
-
mem.duplex = DUPLEX[_mem.duplex]
if mem.duplex == "split":
mem.offset = _decode_freq(_mem.tx_freq)
@@ -654,18 +675,29 @@
mem.power = POWER_LEVELS[_mem.power]
mem.mode = _mem.isam and "AM" or _mem.isnarrow and "NFM" or "FM"
mem.tuning_step = STEPS[_mem.step]
- mem.skip = SKIPS[skip]
- if _nam.use_name and _nam.valid:
- mem.name = _decode_name(_nam.name).rstrip()
+ if not _skp is None:
+ skip = _skp["skip%i" % ((mem.number - 1) % 4)]
+ mem.skip = SKIPS[skip]
+
+ if not _nam is None:
+ if _nam.use_name and _nam.valid:
+ mem.name = _decode_name(_nam.name).rstrip()
return mem
def set_memory(self, mem):
- _mem = self._memobj.memory[mem.number - 1]
- _skp = self._memobj.flags[(mem.number - 1) / 4]
- _nam = self._memobj.names[mem.number - 1]
+ if mem.number > 1000:
+ # pms channel
+ _mem = self._memobj.pms[mem.number - 1001]
+ _nam = _skp = None
+ else:
+ _mem = self._memobj.memory[mem.number - 1]
+ _nam = self._memobj.names[mem.number - 1]
+ _skp = self._memobj.flags[(mem.number - 1) / 4]
+
+ assert(_mem)
if mem.empty:
_mem.used = False
return
@@ -673,7 +705,6 @@
if not _mem.used:
_mem.set_raw("\x00" * 16)
_mem.used = 1
- print "Wiped"
_mem.freq, flags = _encode_freq(mem.freq)
_mem.freq[0].set_bits(flags)
@@ -693,8 +724,10 @@
_mem.isam = mem.mode == "AM"
_mem.step = STEPS.index(mem.tuning_step)
- _skp["skip%i" % ((mem.number - 1) % 4)] = SKIPS.index(mem.skip)
+ if not _skp is None:
+ _skp["skip%i" % ((mem.number - 1) % 4)] = SKIPS.index(mem.skip)
- _nam.name = _encode_name(mem.name)
- _nam.use_name = mem.name.strip() and True or False
- _nam.valid = _nam.use_name
+ if not _nam is None:
+ _nam.name = _encode_name(mem.name)
+ _nam.use_name = mem.name.strip() and True or False
+ _nam.valid = _nam.use_name
1
0
I am looking at a new Anytone radio. After capturing the serial port
during a download from the radio using the Anytone software, my
feeling is that it is very similar to the protocol used by the
AT-5888UV that CHIRP already supports.
The problem I am having is that CHIRP is not seeing the data returned
from the radio for some reason.
_echo_write(radio, "PROGRAM")
response = radio.pipe.read(3)
if response != "QX\x06":
print "Response was:\n%s" % util.hexprint(response)
raise errors.RadioError("Unsupported model")
For example, the above code sends "PROGRAM" to the radio to initiate
cloning, but then aborts with an "Unsupported model" error. The
printing of "response" show that it is "nul", but my port monitor
clearly show that "QX\x06" was returned.
Anybody have any advice for me to solve this?
Thanks,
Jim KC9HI
2
3
26 Feb '15
This series contains largely the same patches that I posted yesterday,
revised to accomodate the feedback that they received. Here are the
highlights of the changes since the first version:
In addition to fixing the reported bugs, the logger module now truncates
the log file when it is opened. The version module has been folded into
the logger module, so the version string can be written to the beginning
of the log file.
The new pep8 helper script has been moved into the tools/ directory, and
I integrated it with the run_all_tests script.
The chirp drivers are now located in chirp/drivers/. I verified that
the patch correctly imports into the hg repo; 'hg log --follow' works.
The trick here is to use 'git format-patch -C'.
Zach Welch (7):
Add chirp.logger module (#2347)
Use new logger module (#2347)
Suppress startup debugging messages (#2347)
Add pep8 checker script (#2355)
fix style issues (#2355)
Fix some style issues (#2355)
Move drivers into their own directory (#2351)
chirp/bandplan.py | 3 +-
chirp/detect.py | 4 +-
chirp/directory.py | 9 +-
chirp/drivers/__init__.py | 10 +
chirp/{ => drivers}/alinco.py | 0
chirp/{ => drivers}/anytone.py | 13 +-
chirp/{ => drivers}/ap510.py | 0
chirp/{ => drivers}/baofeng_uv3r.py | 7 +-
chirp/{ => drivers}/bjuv55.py | 7 +-
chirp/{ => drivers}/ft1802.py | 3 +-
chirp/{ => drivers}/ft1d.py | 17 +-
chirp/{ => drivers}/ft2800.py | 20 +-
chirp/{ => drivers}/ft50.py | 3 +-
chirp/{ => drivers}/ft50_ll.py | 0
chirp/{ => drivers}/ft60.py | 11 +-
chirp/{ => drivers}/ft7800.py | 31 +--
chirp/{ => drivers}/ft817.py | 34 ++-
chirp/{ => drivers}/ft857.py | 12 +-
chirp/{ => drivers}/ft90.py | 56 ++--
chirp/{ => drivers}/ftm350.py | 11 +-
chirp/{ => drivers}/h777.py | 16 +-
chirp/{ => drivers}/ic208.py | 4 +-
chirp/{ => drivers}/ic2100.py | 4 +-
chirp/{ => drivers}/ic2200.py | 4 +-
chirp/{ => drivers}/ic2720.py | 4 +-
chirp/{ => drivers}/ic2820.py | 4 +-
chirp/{ => drivers}/ic9x.py | 3 +-
chirp/{ => drivers}/ic9x_icf.py | 3 +-
chirp/{ => drivers}/ic9x_icf_ll.py | 0
chirp/{ => drivers}/ic9x_ll.py | 0
chirp/{ => drivers}/icf.py | 0
chirp/{ => drivers}/icomciv.py | 15 +-
chirp/{ => drivers}/icq7.py | 4 +-
chirp/{ => drivers}/ict70.py | 4 +-
chirp/{ => drivers}/ict7h.py | 4 +-
chirp/{ => drivers}/ict8.py | 3 +-
chirp/{ => drivers}/icw32.py | 4 +-
chirp/{ => drivers}/icx8x.py | 3 +-
chirp/{ => drivers}/icx8x_ll.py | 0
chirp/{ => drivers}/id31.py | 3 +-
chirp/{ => drivers}/id51.py | 3 +-
chirp/{ => drivers}/id800.py | 4 +-
chirp/{ => drivers}/id880.py | 4 +-
chirp/{ => drivers}/idrp.py | 13 +-
chirp/{ => drivers}/kenwood_hmk.py | 0
chirp/{ => drivers}/kenwood_itm.py | 0
chirp/{ => drivers}/kenwood_live.py | 11 +-
chirp/{ => drivers}/kguv8d.py | 42 ++-
chirp/{ => drivers}/kyd.py | 26 +-
chirp/{ => drivers}/leixen.py | 5 -
chirp/{ => drivers}/puxing.py | 7 +-
chirp/{ => drivers}/th9800.py | 36 +--
chirp/{ => drivers}/th_uv3r.py | 7 +-
chirp/{ => drivers}/th_uv3r25.py | 2 +-
chirp/{ => drivers}/th_uvf8d.py | 0
chirp/{ => drivers}/thd72.py | 10 +-
chirp/{ => drivers}/thuv1f.py | 0
chirp/{ => drivers}/tk8102.py | 8 +-
chirp/{ => drivers}/tmv71.py | 2 +-
chirp/{ => drivers}/tmv71_ll.py | 10 +-
chirp/{ => drivers}/uv5r.py | 26 +-
chirp/{ => drivers}/uvb5.py | 0
chirp/{ => drivers}/vx170.py | 10 +-
chirp/{ => drivers}/vx2.py | 32 +--
chirp/{ => drivers}/vx3.py | 35 +--
chirp/{ => drivers}/vx5.py | 4 +-
chirp/{ => drivers}/vx510.py | 4 +-
chirp/{ => drivers}/vx6.py | 4 +-
chirp/{ => drivers}/vx7.py | 4 +-
chirp/{ => drivers}/vx8.py | 15 +-
chirp/{ => drivers}/vxa700.py | 0
chirp/{ => drivers}/wouxun.py | 15 +-
chirp/{ => drivers}/wouxun_common.py | 9 +-
chirp/{ => drivers}/yaesu_clone.py | 13 +-
chirp/logger.py | 155 +++++++++++
chirpc | 498 ++++++++++++++++++-----------------
chirpui/mainapp.py | 9 +-
chirpui/radiobrowser.py | 2 +-
chirpui/reporting.py | 32 ++-
chirpw | 46 ++--
csvdump/__init__.py | 1 -
locale/check_parameters.py | 15 +-
run_all_tests.sh | 10 +-
share/make_supported.py | 1 +
tests/run_tests | 2 +-
tests/unit/base.py | 1 +
tests/unit/test_bitwise.py | 15 +-
tests/unit/test_chirp_common.py | 3 +
tests/unit/test_mappingmodel.py | 11 +-
tests/unit/test_platform.py | 1 +
tests/unit/test_shiftdialog.py | 2 +
tools/pep8.blacklist | 133 ++++++++++
tools/pep8.manifest | 4 +
tools/pep8.py | 75 ++++++
94 files changed, 1015 insertions(+), 695 deletions(-)
create mode 100644 chirp/drivers/__init__.py
rename chirp/{ => drivers}/alinco.py (100%)
rename chirp/{ => drivers}/anytone.py (98%)
rename chirp/{ => drivers}/ap510.py (100%)
rename chirp/{ => drivers}/baofeng_uv3r.py (99%)
rename chirp/{ => drivers}/bjuv55.py (99%)
rename chirp/{ => drivers}/ft1802.py (98%)
rename chirp/{ => drivers}/ft1d.py (99%)
rename chirp/{ => drivers}/ft2800.py (94%)
rename chirp/{ => drivers}/ft50.py (95%)
rename chirp/{ => drivers}/ft50_ll.py (100%)
rename chirp/{ => drivers}/ft60.py (99%)
rename chirp/{ => drivers}/ft7800.py (97%)
rename chirp/{ => drivers}/ft817.py (97%)
rename chirp/{ => drivers}/ft857.py (99%)
rename chirp/{ => drivers}/ft90.py (94%)
rename chirp/{ => drivers}/ftm350.py (97%)
rename chirp/{ => drivers}/h777.py (98%)
rename chirp/{ => drivers}/ic208.py (98%)
rename chirp/{ => drivers}/ic2100.py (98%)
rename chirp/{ => drivers}/ic2200.py (98%)
rename chirp/{ => drivers}/ic2720.py (98%)
rename chirp/{ => drivers}/ic2820.py (99%)
rename chirp/{ => drivers}/ic9x.py (99%)
rename chirp/{ => drivers}/ic9x_icf.py (96%)
rename chirp/{ => drivers}/ic9x_icf_ll.py (100%)
rename chirp/{ => drivers}/ic9x_ll.py (100%)
rename chirp/{ => drivers}/icf.py (100%)
rename chirp/{ => drivers}/icomciv.py (96%)
rename chirp/{ => drivers}/icq7.py (99%)
rename chirp/{ => drivers}/ict70.py (98%)
rename chirp/{ => drivers}/ict7h.py (97%)
rename chirp/{ => drivers}/ict8.py (97%)
rename chirp/{ => drivers}/icw32.py (98%)
rename chirp/{ => drivers}/icx8x.py (98%)
rename chirp/{ => drivers}/icx8x_ll.py (100%)
rename chirp/{ => drivers}/id31.py (99%)
rename chirp/{ => drivers}/id51.py (96%)
rename chirp/{ => drivers}/id800.py (99%)
rename chirp/{ => drivers}/id880.py (99%)
rename chirp/{ => drivers}/idrp.py (94%)
rename chirp/{ => drivers}/kenwood_hmk.py (100%)
rename chirp/{ => drivers}/kenwood_itm.py (100%)
rename chirp/{ => drivers}/kenwood_live.py (99%)
rename chirp/{ => drivers}/kguv8d.py (96%)
rename chirp/{ => drivers}/kyd.py (95%)
rename chirp/{ => drivers}/leixen.py (99%)
rename chirp/{ => drivers}/puxing.py (99%)
rename chirp/{ => drivers}/th9800.py (96%)
rename chirp/{ => drivers}/th_uv3r.py (98%)
rename chirp/{ => drivers}/th_uv3r25.py (99%)
rename chirp/{ => drivers}/th_uvf8d.py (100%)
rename chirp/{ => drivers}/thd72.py (98%)
rename chirp/{ => drivers}/thuv1f.py (100%)
rename chirp/{ => drivers}/tk8102.py (98%)
rename chirp/{ => drivers}/tmv71.py (98%)
rename chirp/{ => drivers}/tmv71_ll.py (98%)
rename chirp/{ => drivers}/uv5r.py (99%)
rename chirp/{ => drivers}/uvb5.py (100%)
rename chirp/{ => drivers}/vx170.py (94%)
rename chirp/{ => drivers}/vx2.py (97%)
rename chirp/{ => drivers}/vx3.py (97%)
rename chirp/{ => drivers}/vx5.py (98%)
rename chirp/{ => drivers}/vx510.py (98%)
rename chirp/{ => drivers}/vx6.py (99%)
rename chirp/{ => drivers}/vx7.py (99%)
rename chirp/{ => drivers}/vx8.py (99%)
rename chirp/{ => drivers}/vxa700.py (100%)
rename chirp/{ => drivers}/wouxun.py (99%)
rename chirp/{ => drivers}/wouxun_common.py (94%)
rename chirp/{ => drivers}/yaesu_clone.py (95%)
create mode 100644 chirp/logger.py
create mode 100644 tools/pep8.blacklist
create mode 100644 tools/pep8.manifest
create mode 100755 tools/pep8.py
--
1.9.1
2
16
Tested changes:
[Dan Smith <dsmith(a)danplanet.com>] Revert r2380 since it removed logging the current version.
Related to #2347
Full log:
[...truncated 252 lines...]
Registered Icom_IC-208H = IC208Radio
Registered Leixen_VV-898 = LeixenVV898Radio
Registered Jetstream_JT270M = JetstreamJT270MRadio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
Registered Baofeng_BF-888 = H777Radio
Registered Yaesu_FT-7800_7900 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered KYD_NC-630A = NC630aRadio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Yaesu_VX-170 = VX170Radio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Alinco DJ175 Detect PASSED: All tests
Alinco DJ175 Settings SKIPPED: Settings not supported
Alinco DJ175 Clone PASSED: All tests
Alinco DJ175 Edges PASSED: All tests
Alinco DJ175 BruteForce PASSED: All tests
Alinco DJ175 CopyAll PASSED: All tests
Alinco DJ175 Banks SKIPPED: Banks not supported
Alinco DJ596 Detect PASSED: All tests
Alinco DJ596 Settings SKIPPED: Settings not supported
Alinco DJ596 Clone PASSED: All tests
Alinco DJ596 Edges PASSED: All tests
Alinco DJ596 BruteForce PASSED: All tests
Alinco DJ596 CopyAll PASSED: All tests
Alinco DJ596 Banks SKIPPED: Banks not supported
Alinco DR235T Detect PASSED: All tests
Alinco DR235T Settings SKIPPED: Settings not supported
Alinco DR235T Clone PASSED: All tests
Alinco DR235T Edges PASSED: All tests
Alinco DR235T BruteForce PASSED: All tests
Alinco DR235T CopyAll PASSED: All tests
Alinco DR235T Banks SKIPPED: Banks not supported
Baofeng BF-888 Detect PASSED: All tests
Baofeng BF-888 Settings PASSED: All tests
Baofeng BF-888 Clone PASSED: All tests
Baofeng BF-888 Edges PASSED: All tests
Baofeng BF-888 BruteForce PASSED: All tests
Baofeng BF-888 CopyAll PASSED: All tests
Baofeng BF-888 Banks SKIPPED: Banks not supported
Baofeng F-11 Detect PASSED: All tests
Baofeng F-11 Settings PASSED: All tests
Baofeng F-11 Clone PASSED: All tests
Baofeng F-11 Edges PASSED: All tests
Baofeng F-11 BruteForce PASSED: All tests
Baofeng F-11 CopyAll PASSED: All tests
Baofeng F-11 Banks SKIPPED: Banks not supported
Baofeng UV-3R Detect PASSED: All tests
Baofeng UV-3R Settings PASSED: All tests
Baofeng UV-3R Clone PASSED: All tests
Baofeng UV-3R Edges PASSED: All tests
Baofeng UV-3R BruteForce PASSED: All tests
Baofeng UV-3R CopyAll PASSED: All tests
Baofeng UV-3R Banks SKIPPED: Banks not supported
Baofeng UV-5R Detect PASSED: All tests
Baofeng UV-5R Settings PASSED: All tests
Baofeng UV-5R Clone PASSED: All tests
Baofeng UV-5R Edges PASSED: All tests
Baofeng UV-5R BruteForce PASSED: All tests
Baofeng UV-5R CopyAll PASSED: All tests
Baofeng UV-5R Banks SKIPPED: Banks not supported
Baofeng UV-B5 Detect PASSED: All tests
Baofeng UV-B5 Settings PASSED: All tests
Baofeng UV-B5 Clone PASSED: All tests
Baofeng UV-B5 Edges PASSED: All tests
Baofeng UV-B5 BruteForce PASSED: All tests
Baofeng UV-B5 CopyAll PASSED: All tests
Baofeng UV-B5 Banks SKIPPED: Banks not supported
Icom IC-208H Detect PASSED: All tests
Icom IC-208H Settings SKIPPED: Settings not supported
Icom IC-208H Clone PASSED: All tests
Icom IC-208H Edges PASSED: All tests
Icom IC-208H BruteForce PASSED: All tests
Icom IC-208H CopyAll PASSED: All tests
Icom IC-208H Banks PASSED: All tests
Icom IC-2100H Detect PASSED: All tests
Icom IC-2100H Settings SKIPPED: Settings not supported
Icom IC-2100H Clone PASSED: All tests
Icom IC-2100H Edges PASSED: All tests
Icom IC-2100H BruteForce PASSED: All tests
Icom IC-2100H CopyAll PASSED: All tests
Icom IC-2100H Banks SKIPPED: Banks not supported
Icom IC-2200H Detect PASSED: All tests
Icom IC-2200H Settings PASSED: All tests
Icom IC-2200H Clone PASSED: All tests
Icom IC-2200H Edges PASSED: All tests
Icom IC-2200H BruteForce PASSED: All tests
Icom IC-2200H CopyAll PASSED: All tests
Icom IC-2200H Banks PASSED: All tests
Icom IC-2720H Detect PASSED: All tests
Icom IC-2720H Settings SKIPPED: Settings not supported
Icom IC-2720H Clone PASSED: All tests
Icom IC-2720H Edges PASSED: All tests
Icom IC-2720H BruteForce PASSED: All tests
Icom IC-2720H CopyAll PASSED: All tests
Icom IC-2720H Banks PASSED: All tests
Icom IC-2820H Detect PASSED: All tests
Icom IC-2820H Settings PASSED: All tests
Icom IC-2820H Clone PASSED: All tests
Icom IC-2820H Edges PASSED: All tests
Icom IC-2820H BruteForce PASSED: All tests
Icom IC-2820H CopyAll PASSED: All tests
Icom IC-2820H Banks PASSED: All tests
Icom IC-Q7A Detect PASSED: All tests
Icom IC-Q7A Settings PASSED: All tests
Icom IC-Q7A Clone PASSED: All tests
Icom IC-Q7A Edges PASSED: All tests
Icom IC-Q7A BruteForce PASSED: All tests
Icom IC-Q7A CopyAll PASSED: All tests
Icom IC-Q7A Banks SKIPPED: Banks not supported
Icom IC-T70 Detect PASSED: All tests
Icom IC-T70 Settings SKIPPED: Settings not supported
Icom IC-T70 Clone PASSED: All tests
Icom IC-T70 Edges PASSED: All tests
Icom IC-T70 BruteForce PASSED: All tests
Icom IC-T70 CopyAll PASSED: All tests
Icom IC-T70 Banks PASSED: All tests
Icom IC-T7H Detect PASSED: All tests
Icom IC-T7H Settings SKIPPED: Settings not supported
Icom IC-T7H Clone PASSED: All tests
Icom IC-T7H Edges PASSED: All tests
Icom IC-T7H BruteForce PASSED: All tests
Icom IC-T7H CopyAll PASSED: All tests
Icom IC-T7H Banks SKIPPED: Banks not supported
Icom IC-T8A Detect PASSED: All tests
Icom IC-T8A Settings SKIPPED: Settings not supported
Icom IC-T8A Clone PASSED: All tests
Icom IC-T8A Edges PASSED: All tests
Icom IC-T8A BruteForce PASSED: All tests
Icom IC-T8A CopyAll PASSED: All tests
Icom IC-T8A Banks SKIPPED: Banks not supported
Icom IC-V82/U82 Detect PASSED: All tests
Icom IC-V82/U82 Settings SKIPPED: Settings not supported
Icom IC-V82/U82 Clone PASSED: All tests
Icom IC-V82/U82 Edges PASSED: All tests
Icom IC-V82/U82 BruteForce PASSED: All tests
Icom IC-V82/U82 CopyAll PASSED: All tests
Icom IC-V82/U82 Banks PASSED: All tests
Icom IC-W32A VHF Detect PASSED: All tests
Icom IC-W32A VHF Settings SKIPPED: Settings not supported
Icom IC-W32A VHF Clone PASSED: All tests
Icom IC-W32A VHF Edges PASSED: All tests
Icom IC-W32A VHF BruteForce PASSED: All tests
Icom IC-W32A VHF CopyAll PASSED: All tests
Icom IC-W32A VHF Banks SKIPPED: Banks not supported
Icom IC-W32A UHF Detect PASSED: All tests
Icom IC-W32A UHF Settings SKIPPED: Settings not supported
Icom IC-W32A UHF Clone PASSED: All tests
Icom IC-W32A UHF Edges PASSED: All tests
Icom IC-W32A UHF BruteForce PASSED: All tests
Icom IC-W32A UHF CopyAll PASSED: All tests
Icom IC-W32A UHF Banks SKIPPED: Banks not supported
Icom ID-31A Detect PASSED: All tests
Icom ID-31A Settings PASSED: All tests
Icom ID-31A Clone PASSED: All tests
Icom ID-31A Edges PASSED: All tests
Icom ID-31A BruteForce PASSED: All tests
Icom ID-31A CopyAll PASSED: All tests
Icom ID-31A Banks PASSED: All tests
Icom ID-51A Detect PASSED: All tests
Icom ID-51A Settings PASSED: All tests
Icom ID-51A Clone PASSED: All tests
Icom ID-51A Edges PASSED: All tests
Icom ID-51A BruteForce PASSED: All tests
Icom ID-51A CopyAll PASSED: All tests
Icom ID-51A Banks PASSED: All tests
Icom ID-800H v2 Detect PASSED: All tests
Icom ID-800H v2 Settings PASSED: All tests
Icom ID-800H v2 Clone PASSED: All tests
Icom ID-800H v2 Edges PASSED: All tests
Icom ID-800H v2 BruteForce PASSED: All tests
Icom ID-800H v2 CopyAll PASSED: All tests
Icom ID-800H v2 Banks PASSED: All tests
Icom ID-880H Detect PASSED: All tests
Icom ID-880H Settings PASSED: All tests
Icom ID-880H Clone PASSED: All tests
Icom ID-880H Edges PASSED: All tests
Icom ID-880H BruteForce PASSED: All tests
Icom ID-880H CopyAll PASSED: All tests
Icom ID-880H Banks PASSED: All tests
Jetstream JT220M Detect PASSED: All tests
Jetstream JT220M Settings SKIPPED: Settings not supported
Jetstream JT220M Clone PASSED: All tests
Jetstream JT220M Edges PASSED: All tests
Jetstream JT220M BruteForce PASSED: All tests
Jetstream JT220M CopyAll PASSED: All tests
Jetstream JT220M Banks SKIPPED: Banks not supported
Jetstream JT270M Detect PASSED: All tests
Jetstream JT270M Settings PASSED: All tests
Jetstream JT270M Clone PASSED: All tests
Jetstream JT270M Edges PASSED: All tests
Jetstream JT270M BruteForce PASSED: All tests
Jetstream JT270M CopyAll PASSED: All tests
Jetstream JT270M Banks SKIPPED: Banks not supported
Kenwood TH-D72 (clone Detect PASSED: All tests
Kenwood TH-D72 (clone Settings SKIPPED: Settings not supported
Kenwood TH-D72 (clone Clone PASSED: All tests
Kenwood TH-D72 (clone Edges PASSED: All tests
Kenwood TH-D72 (clone BruteForce PASSED: All tests
Kenwood TH-D72 (clone CopyAll PASSED: All tests
Kenwood TH-D72 (clone Banks SKIPPED: Banks not supported
Kenwood TK-8102 Detect PASSED: All tests
Kenwood TK-8102 Settings PASSED: All tests
Kenwood TK-8102 Clone PASSED: All tests
Kenwood TK-8102 Edges PASSED: All tests
Kenwood TK-8102 BruteForce PASSED: All tests
Kenwood TK-8102 CopyAll PASSED: All tests
Kenwood TK-8102 Banks SKIPPED: Banks not supported
Leixen VV-898 Detect PASSED: All tests
Leixen VV-898 Settings PASSED: All tests
Leixen VV-898 Clone PASSED: All tests
Leixen VV-898 Edges PASSED: All tests
Leixen VV-898 BruteForce PASSED: All tests
Leixen VV-898 CopyAll PASSED: All tests
Leixen VV-898 Banks SKIPPED: Banks not supported
Polmar DB-50M Detect PASSED: All tests
Polmar DB-50M Settings PASSED: All tests
Polmar DB-50M Clone PASSED: All tests
Polmar DB-50M Edges PASSED: All tests
Polmar DB-50M BruteForce PASSED: All tests
Polmar DB-50M CopyAll PASSED: All tests
Polmar DB-50M Banks SKIPPED: Banks not supported
Puxing PX-2R Detect PASSED: All tests
Puxing PX-2R Settings SKIPPED: Settings not supported
Puxing PX-2R Clone PASSED: All tests
Puxing PX-2R Edges PASSED: All tests
Puxing PX-2R BruteForce PASSED: All tests
Puxing PX-2R CopyAll PASSED: All tests
Puxing PX-2R Banks SKIPPED: Banks not supported
Puxing PX-777 Detect PASSED: All tests
Puxing PX-777 Settings SKIPPED: Settings not supported
Puxing PX-777 Clone PASSED: All tests
Puxing PX-777 Edges PASSED: All tests
Puxing PX-777 BruteForce PASSED: All tests
Puxing PX-777 CopyAll PASSED: All tests
Puxing PX-777 Banks SKIPPED: Banks not supported
Sainsonic AP510 Detect PASSED: All tests
Sainsonic AP510 Settings PASSED: All tests
Sainsonic AP510 Clone PASSED: All tests
Sainsonic AP510 Edges PASSED: All tests
Sainsonic AP510 BruteForce PASSED: All tests
Sainsonic AP510 CopyAll PASSED: All tests
Sainsonic AP510 Banks SKIPPED: Banks not supported
TYT TH-9800 Detect PASSED: All tests
TYT TH-9800 Settings PASSED: All tests
TYT TH-9800 Clone PASSED: All tests
TYT TH-9800 Edges PASSED: All tests
TYT TH-9800 BruteForce PASSED: All tests
TYT TH-9800 CopyAll PASSED: All tests
TYT TH-9800 Banks SKIPPED: Banks not supported
TYT TH-UV3R Detect PASSED: All tests
TYT TH-UV3R Settings SKIPPED: Settings not supported
TYT TH-UV3R Clone PASSED: All tests
TYT TH-UV3R Edges PASSED: All tests
TYT TH-UV3R BruteForce PASSED: All tests
TYT TH-UV3R CopyAll PASSED: All tests
TYT TH-UV3R Banks SKIPPED: Banks not supported
TYT TH-UV3R-25 Detect PASSED: All tests
TYT TH-UV3R-25 Settings SKIPPED: Settings not supported
TYT TH-UV3R-25 Clone PASSED: All tests
TYT TH-UV3R-25 Edges PASSED: All tests
TYT TH-UV3R-25 BruteForce PASSED: All tests
TYT TH-UV3R-25 CopyAll PASSED: All tests
TYT TH-UV3R-25 Banks SKIPPED: Banks not supported
TYT TH-UVF1 Detect PASSED: All tests
TYT TH-UVF1 Settings PASSED: All tests
TYT TH-UVF1 Clone PASSED: All tests
TYT TH-UVF1 Edges PASSED: All tests
TYT TH-UVF1 BruteForce PASSED: All tests
TYT TH-UVF1 CopyAll PASSED: All tests
TYT TH-UVF1 Banks SKIPPED: Banks not supported
Vertex VXA-700 Detect PASSED: All tests
Vertex VXA-700 Settings SKIPPED: Settings not supported
Vertex VXA-700 Clone PASSED: All tests
Vertex VXA-700 Edges PASSED: All tests
Vertex VXA-700 BruteForce PASSED: All tests
Vertex VXA-700 CopyAll PASSED: All tests
Vertex VXA-700 Banks SKIPPED: Banks not supported
Wouxun KG-816 Detect PASSED: All tests
Wouxun KG-816 Settings PASSED: All tests
Wouxun KG-816 Clone PASSED: All tests
Wouxun KG-816 Edges PASSED: All tests
Wouxun KG-816 BruteForce PASSED: All tests
Wouxun KG-816 CopyAll PASSED: All tests
Wouxun KG-816 Banks SKIPPED: Banks not supported
Wouxun KG-818 Detect PASSED: All tests
Wouxun KG-818 Settings PASSED: All tests
Wouxun KG-818 Clone PASSED: All tests
Wouxun KG-818 Edges PASSED: All tests
Wouxun KG-818 BruteForce PASSED: All tests
Wouxun KG-818 CopyAll PASSED: All tests
Wouxun KG-818 Banks SKIPPED: Banks not supported
Wouxun KG-UV6 Detect PASSED: All tests
Wouxun KG-UV6 Settings PASSED: All tests
Wouxun KG-UV6 Clone PASSED: All tests
Wouxun KG-UV6 Edges PASSED: All tests
Wouxun KG-UV6 BruteForce PASSED: All tests
Wouxun KG-UV6 CopyAll PASSED: All tests
Wouxun KG-UV6 Banks SKIPPED: Banks not supported
Wouxun KG-UV8D Detect PASSED: All tests
Wouxun KG-UV8D Settings PASSED: All tests
Wouxun KG-UV8D Clone PASSED: All tests
Wouxun KG-UV8D Edges PASSED: All tests
Wouxun KG-UV8D BruteForce PASSED: All tests
Wouxun KG-UV8D CopyAll PASSED: All tests
Wouxun KG-UV8D Banks SKIPPED: Banks not supported
Wouxun KG-UVD1P Detect PASSED: All tests
Wouxun KG-UVD1P Settings PASSED: All tests
Wouxun KG-UVD1P Clone PASSED: All tests
Wouxun KG-UVD1P Edges PASSED: All tests
Wouxun KG-UVD1P BruteForce PASSED: All tests
Wouxun KG-UVD1P CopyAll PASSED: All tests
Wouxun KG-UVD1P Banks SKIPPED: Banks not supported
Yaesu FT-1802M Detect PASSED: All tests
Yaesu FT-1802M Settings SKIPPED: Settings not supported
Yaesu FT-1802M Clone PASSED: All tests
Yaesu FT-1802M Edges PASSED: All tests
Yaesu FT-1802M BruteForce PASSED: All tests
Yaesu FT-1802M CopyAll PASSED: All tests
Yaesu FT-1802M Banks SKIPPED: Banks not supported
Yaesu FT-1D R Detect PASSED: All tests
Yaesu FT-1D R Settings PASSED: All tests
Yaesu FT-1D R Clone PASSED: All tests
Yaesu FT-1D R Edges PASSED: All tests
Yaesu FT-1D R BruteForce PASSED: All tests
Yaesu FT-1D R CopyAll PASSED: All tests
Yaesu FT-1D R Banks PASSED: All tests
Yaesu FT-2800M Detect PASSED: All tests
Yaesu FT-2800M Settings SKIPPED: Settings not supported
Yaesu FT-2800M Clone PASSED: All tests
Yaesu FT-2800M Edges PASSED: All tests
Yaesu FT-2800M BruteForce PASSED: All tests
Yaesu FT-2800M CopyAll PASSED: All tests
Yaesu FT-2800M Banks SKIPPED: Banks not supported
Yaesu FT-60 Detect PASSED: All tests
Yaesu FT-60 Settings PASSED: All tests
Yaesu FT-60 Clone PASSED: All tests
Yaesu FT-60 Edges PASSED: All tests
Yaesu FT-60 BruteForce PASSED: All tests
Yaesu FT-60 CopyAll PASSED: All tests
Yaesu FT-60 Banks PASSED: All tests
Yaesu FT-7800/7900 Detect PASSED: All tests
Yaesu FT-7800/7900 Settings PASSED: All tests
Yaesu FT-7800/7900 Clone PASSED: All tests
Yaesu FT-7800/7900 Edges PASSED: All tests
Yaesu FT-7800/7900 BruteForce PASSED: All tests
Yaesu FT-7800/7900 CopyAll PASSED: All tests
Yaesu FT-7800/7900 Banks PASSED: All tests
Yaesu FT-817 Detect PASSED: All tests
Yaesu FT-817 Settings PASSED: All tests
Yaesu FT-817 Clone PASSED: All tests
Yaesu FT-817 Edges PASSED: All tests
Yaesu FT-817 BruteForce PASSED: All tests
Yaesu FT-817 CopyAll PASSED: All tests
Yaesu FT-817 Banks SKIPPED: Banks not supported
Yaesu FT-817ND Detect PASSED: All tests
Yaesu FT-817ND Settings PASSED: All tests
Yaesu FT-817ND Clone PASSED: All tests
Yaesu FT-817ND Edges PASSED: All tests
Yaesu FT-817ND BruteForce PASSED: All tests
Yaesu FT-817ND CopyAll PASSED: All tests
Yaesu FT-817ND Banks SKIPPED: Banks not supported
Yaesu FT-817ND (US) Detect PASSED: All tests
Yaesu FT-817ND (US) Settings PASSED: All tests
Yaesu FT-817ND (US) Clone PASSED: All tests
Yaesu FT-817ND (US) Edges PASSED: All tests
Yaesu FT-817ND (US) BruteForce PASSED: All tests
Yaesu FT-817ND (US) CopyAll PASSED: All tests
Yaesu FT-817ND (US) Banks SKIPPED: Banks not supported
Yaesu FT-857/897 Detect PASSED: All tests
Yaesu FT-857/897 Settings PASSED: All tests
Yaesu FT-857/897 Clone PASSED: All tests
Yaesu FT-857/897 Edges PASSED: All tests
Yaesu FT-857/897 BruteForce PASSED: All tests
Yaesu FT-857/897 CopyAll PASSED: All tests
Yaesu FT-857/897 Banks SKIPPED: Banks not supported
Yaesu FT-857/897 (U Detect PASSED: All tests
Yaesu FT-857/897 (U Settings PASSED: All tests
Yaesu FT-857/897 (U Clone PASSED: All tests
Yaesu FT-857/897 (U Edges PASSED: All tests
Yaesu FT-857/897 (U BruteForce PASSED: All tests
Yaesu FT-857/897 (U CopyAll PASSED: All tests
Yaesu FT-857/897 (U Banks SKIPPED: Banks not supported
Yaesu FT-8800 Left Detect PASSED: All tests
Yaesu FT-8800 Left Settings SKIPPED: Settings not supported
Yaesu FT-8800 Left Clone PASSED: All tests
Yaesu FT-8800 Left Edges PASSED: All tests
Yaesu FT-8800 Left BruteForce PASSED: All tests
Yaesu FT-8800 Left CopyAll PASSED: All tests
Yaesu FT-8800 Left Banks PASSED: All tests
Yaesu FT-8800 Right Detect PASSED: All tests
Yaesu FT-8800 Right Settings SKIPPED: Settings not supported
Yaesu FT-8800 Right Clone PASSED: All tests
Yaesu FT-8800 Right Edges PASSED: All tests
Yaesu FT-8800 Right BruteForce PASSED: All tests
Yaesu FT-8800 Right CopyAll PASSED: All tests
Yaesu FT-8800 Right Banks PASSED: All tests
Yaesu FT-8900 Detect PASSED: All tests
Yaesu FT-8900 Settings SKIPPED: Settings not supported
Yaesu FT-8900 Clone PASSED: All tests
Yaesu FT-8900 Edges PASSED: All tests
Yaesu FT-8900 BruteForce PASSED: All tests
Yaesu FT-8900 CopyAll PASSED: All tests
Yaesu FT-8900 Banks SKIPPED: Banks not supported
Yaesu FTM-350 Left Detect PASSED: All tests
Yaesu FTM-350 Left Settings PASSED: All tests
Yaesu FTM-350 Left Clone PASSED: All tests
Yaesu FTM-350 Left Edges PASSED: All tests
Yaesu FTM-350 Left BruteForce PASSED: All tests
Yaesu FTM-350 Left CopyAll PASSED: All tests
Yaesu FTM-350 Left Banks SKIPPED: Banks not supported
Yaesu FTM-350 Right Detect PASSED: All tests
Yaesu FTM-350 Right Settings SKIPPED: Settings not supported
Yaesu FTM-350 Right Clone PASSED: All tests
Yaesu FTM-350 Right Edges PASSED: All tests
Yaesu FTM-350 Right BruteForce PASSED: All tests
Yaesu FTM-350 Right CopyAll PASSED: All tests
Yaesu FTM-350 Right Banks SKIPPED: Banks not supported
Yaesu VX-2 Detect PASSED: All tests
Yaesu VX-2 Settings PASSED: All tests
Yaesu VX-2 Clone PASSED: All tests
Yaesu VX-2 Edges PASSED: All tests
Yaesu VX-2 BruteForce PASSED: All tests
Yaesu VX-2 CopyAll PASSED: All tests
Yaesu VX-2 Banks PASSED: All tests
Yaesu VX-3 Detect PASSED: All tests
Yaesu VX-3 Settings PASSED: All tests
Yaesu VX-3 Clone PASSED: All tests
Yaesu VX-3 Edges PASSED: All tests
Yaesu VX-3 BruteForce PASSED: All tests
Yaesu VX-3 CopyAll PASSED: All tests
Yaesu VX-3 Banks PASSED: All tests
Yaesu VX-5 Detect PASSED: All tests
Yaesu VX-5 Settings SKIPPED: Settings not supported
Yaesu VX-5 Clone PASSED: All tests
Yaesu VX-5 Edges PASSED: All tests
Yaesu VX-5 BruteForce PASSED: All tests
Yaesu VX-5 CopyAll PASSED: All tests
Yaesu VX-5 Banks PASSED: All tests
Yaesu VX-6 Detect PASSED: All tests
Yaesu VX-6 Settings SKIPPED: Settings not supported
Yaesu VX-6 Clone PASSED: All tests
Yaesu VX-6 Edges PASSED: All tests
Yaesu VX-6 BruteForce PASSED: All tests
Yaesu VX-6 CopyAll PASSED: All tests
Yaesu VX-6 Banks PASSED: All tests
Yaesu VX-7 Detect PASSED: All tests
Yaesu VX-7 Settings SKIPPED: Settings not supported
Yaesu VX-7 Clone PASSED: All tests
Yaesu VX-7 Edges PASSED: All tests
Yaesu VX-7 BruteForce PASSED: All tests
Yaesu VX-7 CopyAll PASSED: All tests
Yaesu VX-7 Banks PASSED: All tests
Yaesu VX-8 R Detect PASSED: All tests
Yaesu VX-8 R Settings SKIPPED: Settings not supported
Yaesu VX-8 R Clone PASSED: All tests
Yaesu VX-8 R Edges PASSED: All tests
Yaesu VX-8 R BruteForce PASSED: All tests
Yaesu VX-8 R CopyAll PASSED: All tests
Yaesu VX-8 R Banks PASSED: All tests
----------------------------------------------------------------------
Results:
TOTAL : 448
FAILED : 0
SKIPPED: 72
PASSED : 376
CRASHED: 0
Registered Icom_IC-2820H = IC2820Radio
Registered TYT_TH-UVF8D = TYTUVF8DRadio
Registered AnyTone_5888UV = AnyTone5888UVRadio
Registered Intek_HR-2040 = IntekHR2040Radio
Registered Polmar_DB-50M = PolmarDB50MRadio
Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
Registered Icom_IC-2200H = IC2200Radio
Registered Yaesu_FT-2800M = FT2800Radio
Registered Yaesu_VX-3 = VX3Radio
Registered Icom_IC-2100H = IC2100Radio
Registered Yaesu_FTM-350 = FTM350Radio
Registered Icom_IC-V82_U82 = ICx8xRadio
Registered Yaesu_VX-6 = VX6Radio
Registered TYT_TH-UV3R = TYTUV3RRadio
Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
Registered Yaesu_VX-5 = VX5Radio
Registered Yaesu_FT-60 = FT60Radio
Registered Yaesu_VX-7 = VX7Radio
Registered Sainsonic_AP510 = AP510Radio
Registered Baofeng_UV-5R = BaofengUV5R
Registered Baofeng_F-11 = BaofengF11Radio
Registered Baofeng_UV-82 = BaofengUV82Radio
Registered Baofeng_UV-6 = BaofengUV6Radio
Registered Intek_KT-980HP = IntekKT980Radio
Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
Registered Yaesu_FT-1802M = FT1802Radio
Registered Kenwood_TK-7102 = KenwoodTK7102Radio
Registered Kenwood_TK-8102 = KenwoodTK8102Radio
Registered Kenwood_TK-7108 = KenwoodTK7108Radio
Registered Kenwood_TK-8108 = KenwoodTK8108Radio
Registered Icom_ID-31A = ID31Radio
Registered Icom_ID-51A = ID51Radio
Registered Icom_IC-2720H = IC2720Radio
Registered Icom_IC-T8A = ICT8ARadio
Registered Wouxun_KG-UVD1P = KGUVD1PRadio
Registered Wouxun_KG-UV6 = KGUV6DRadio
Registered Wouxun_KG-816 = KG816Radio
Registered Wouxun_KG-818 = KG818Radio
Registered TYT_TH-UVF1 = TYTTHUVF1Radio
Registered Yaesu_FT-90 = FT90Radio
Registered Generic_CSV = CSVRadio
Registered Commander_KG-UV = CommanderCSVRadio
Registered RT_Systems_CSV = RTCSVRadio
Registered Kenwood_ITM = ITMRadio
Registered TYT_TH-9800_File = TYTTH9800File
Registered TYT_TH-9800 = TYTTH9800Radio
Registered Alinco_DR03T = DR03Radio
Registered Alinco_DR06T = DR06Radio
Registered Alinco_DR135T = DR135Radio
Registered Alinco_DR235T = DR235Radio
Registered Alinco_DR435T = DR435Radio
Registered Alinco_DJ596 = DJ596Radio
Registered Jetstream_JT220M = JT220MRadio
Registered Alinco_DJ175 = DJ175Radio
Registered Kenwood_TH-D7 = THD7Radio
Registered Kenwood_TH-D7G = THD7GRadio
Registered Kenwood_TM-D700 = TMD700Radio
Registered Kenwood_TM-V7 = TMV7Radio
Registered Kenwood_TM-G707 = TMG707Radio
Registered Kenwood_TH-G71 = THG71Radio
Registered Kenwood_TH-F6 = THF6ARadio
Registered Kenwood_TH-F7 = THF7ERadio
Registered Kenwood_TM-D710 = TMD710Radio
Registered Kenwood_TH-D72_live_mode = THD72Radio
Registered Kenwood_TM-V71 = TMV71Radio
Registered Kenwood_TM-D710G = TMD710GRadio
Registered Kenwood_TH-K2 = THK2Radio
Registered Kenwood_TM-271 = TM271Radio
Registered Kenwood_TM-281 = TM281Radio
Registered Kenwood_TM-471 = TM471Radio
Registered Yaesu_FT-1D_R = FT1Radio
Registered Wouxun_KG-UV8D = KGUV8DRadio
Registered Yaesu_VX-8_R = VX8Radio
Registered Yaesu_VX-8_DR = VX8DRadio
Registered Yaesu_VX-8_GE = VX8GERadio
Registered Icom_IC-T7H = ICT7HRadio
Registered Icom_IC-Q7A = ICQ7Radio
Registered Baofeng_UV-B5 = BaofengUVB5
Registered Generic_XML = XMLRadio
Registered Kenwood_HMK = HMKRadio
Registered Kenwood_TH-D72_clone_mode = THD72Radio
Registered Icom_IC-91_92AD = IC9xRadio
Registered Icom_IC-T70 = ICT70Radio
Registered Icom_IC-208H = IC208Radio
Registered Leixen_VV-898 = LeixenVV898Radio
Registered Jetstream_JT270M = JetstreamJT270MRadio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
Registered Baofeng_BF-888 = H777Radio
Registered Yaesu_FT-7800_7900 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered KYD_NC-630A = NC630aRadio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Yaesu_VX-170 = VX170Radio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Patch 'tip' is OK
================================================
Tests OK
Email was triggered for: Success
Sending email for trigger: Success
1
0
Tested changes:
[K. Arvanitis <kosta(a)alumni.uvic.ca>] Attempting to speed up memory editor load times
It appears that the memory editor is unecessarily attempting to simulatanesuoly
prefetch all memories from the radio twice at startup.
This is causing a somewhat signifigant performance hit as the tree view is
performing a linear search of its store attempting to prevent
duplicate entries (see while loop in set_memory)
As a result the duplicate call to prefill was having no effect other than
forcing a lookup of the treestore and did not appear to have any other
bearing on the application.
Another seperate, but related, improvement would be to increase the overall
performance of the linear search of the treestore.
Bug #2369
[Zach Welch <zach(a)mandolincreekfarm.com>] Add chirp.logger module (#2347)
This patch adds the chirp.logger module, using it in chirpc and chirpw.
It adds a handful of optional command line arguments to control the new
logging features. In addition, CHIRP_DEBUG, CHIRP_LOG, and
CHIRP_LOG_LEVEL can be used to control the logging features from the
environment.
It also makes the version string reusable between the GUI and CLI, and
it prints that string at the start of the log file (if in use).
[K. Arvanitis <kosta(a)alumni.uvic.ca>] Fixing issues with memory property editor.
This patch attempts to address a couple issues with the layout of the
property page. Mainly the issues relating to the layout of the table
containing the widgets was skewed (on windows at least) where some entries
appeared much big than others. The other issue was that the multiple property
editor was showing blank entries for no apparent reason.
It addresses an issue with the multiple memory editor where the
selector of elements which were intnded to be hidden was still being displayed.
It adds basic tooltip support to all widgets and not just the extra settings.
It also groups elements into two groups (tabs) "general" and "other"; the
former signifies the basic radio settings which appear in the memory editor
while the later is the set of "extra" radio settings.
Bug #2251
Full log:
[...truncated 252 lines...]
Registered Icom_IC-208H = IC208Radio
Registered Leixen_VV-898 = LeixenVV898Radio
Registered Jetstream_JT270M = JetstreamJT270MRadio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
Registered Baofeng_BF-888 = H777Radio
Registered Yaesu_FT-7800_7900 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered KYD_NC-630A = NC630aRadio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Yaesu_VX-170 = VX170Radio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Alinco DJ175 Detect PASSED: All tests
Alinco DJ175 Settings SKIPPED: Settings not supported
Alinco DJ175 Clone PASSED: All tests
Alinco DJ175 Edges PASSED: All tests
Alinco DJ175 BruteForce PASSED: All tests
Alinco DJ175 CopyAll PASSED: All tests
Alinco DJ175 Banks SKIPPED: Banks not supported
Alinco DJ596 Detect PASSED: All tests
Alinco DJ596 Settings SKIPPED: Settings not supported
Alinco DJ596 Clone PASSED: All tests
Alinco DJ596 Edges PASSED: All tests
Alinco DJ596 BruteForce PASSED: All tests
Alinco DJ596 CopyAll PASSED: All tests
Alinco DJ596 Banks SKIPPED: Banks not supported
Alinco DR235T Detect PASSED: All tests
Alinco DR235T Settings SKIPPED: Settings not supported
Alinco DR235T Clone PASSED: All tests
Alinco DR235T Edges PASSED: All tests
Alinco DR235T BruteForce PASSED: All tests
Alinco DR235T CopyAll PASSED: All tests
Alinco DR235T Banks SKIPPED: Banks not supported
Baofeng BF-888 Detect PASSED: All tests
Baofeng BF-888 Settings PASSED: All tests
Baofeng BF-888 Clone PASSED: All tests
Baofeng BF-888 Edges PASSED: All tests
Baofeng BF-888 BruteForce PASSED: All tests
Baofeng BF-888 CopyAll PASSED: All tests
Baofeng BF-888 Banks SKIPPED: Banks not supported
Baofeng F-11 Detect PASSED: All tests
Baofeng F-11 Settings PASSED: All tests
Baofeng F-11 Clone PASSED: All tests
Baofeng F-11 Edges PASSED: All tests
Baofeng F-11 BruteForce PASSED: All tests
Baofeng F-11 CopyAll PASSED: All tests
Baofeng F-11 Banks SKIPPED: Banks not supported
Baofeng UV-3R Detect PASSED: All tests
Baofeng UV-3R Settings PASSED: All tests
Baofeng UV-3R Clone PASSED: All tests
Baofeng UV-3R Edges PASSED: All tests
Baofeng UV-3R BruteForce PASSED: All tests
Baofeng UV-3R CopyAll PASSED: All tests
Baofeng UV-3R Banks SKIPPED: Banks not supported
Baofeng UV-5R Detect PASSED: All tests
Baofeng UV-5R Settings PASSED: All tests
Baofeng UV-5R Clone PASSED: All tests
Baofeng UV-5R Edges PASSED: All tests
Baofeng UV-5R BruteForce PASSED: All tests
Baofeng UV-5R CopyAll PASSED: All tests
Baofeng UV-5R Banks SKIPPED: Banks not supported
Baofeng UV-B5 Detect PASSED: All tests
Baofeng UV-B5 Settings PASSED: All tests
Baofeng UV-B5 Clone PASSED: All tests
Baofeng UV-B5 Edges PASSED: All tests
Baofeng UV-B5 BruteForce PASSED: All tests
Baofeng UV-B5 CopyAll PASSED: All tests
Baofeng UV-B5 Banks SKIPPED: Banks not supported
Icom IC-208H Detect PASSED: All tests
Icom IC-208H Settings SKIPPED: Settings not supported
Icom IC-208H Clone PASSED: All tests
Icom IC-208H Edges PASSED: All tests
Icom IC-208H BruteForce PASSED: All tests
Icom IC-208H CopyAll PASSED: All tests
Icom IC-208H Banks PASSED: All tests
Icom IC-2100H Detect PASSED: All tests
Icom IC-2100H Settings SKIPPED: Settings not supported
Icom IC-2100H Clone PASSED: All tests
Icom IC-2100H Edges PASSED: All tests
Icom IC-2100H BruteForce PASSED: All tests
Icom IC-2100H CopyAll PASSED: All tests
Icom IC-2100H Banks SKIPPED: Banks not supported
Icom IC-2200H Detect PASSED: All tests
Icom IC-2200H Settings PASSED: All tests
Icom IC-2200H Clone PASSED: All tests
Icom IC-2200H Edges PASSED: All tests
Icom IC-2200H BruteForce PASSED: All tests
Icom IC-2200H CopyAll PASSED: All tests
Icom IC-2200H Banks PASSED: All tests
Icom IC-2720H Detect PASSED: All tests
Icom IC-2720H Settings SKIPPED: Settings not supported
Icom IC-2720H Clone PASSED: All tests
Icom IC-2720H Edges PASSED: All tests
Icom IC-2720H BruteForce PASSED: All tests
Icom IC-2720H CopyAll PASSED: All tests
Icom IC-2720H Banks PASSED: All tests
Icom IC-2820H Detect PASSED: All tests
Icom IC-2820H Settings PASSED: All tests
Icom IC-2820H Clone PASSED: All tests
Icom IC-2820H Edges PASSED: All tests
Icom IC-2820H BruteForce PASSED: All tests
Icom IC-2820H CopyAll PASSED: All tests
Icom IC-2820H Banks PASSED: All tests
Icom IC-Q7A Detect PASSED: All tests
Icom IC-Q7A Settings PASSED: All tests
Icom IC-Q7A Clone PASSED: All tests
Icom IC-Q7A Edges PASSED: All tests
Icom IC-Q7A BruteForce PASSED: All tests
Icom IC-Q7A CopyAll PASSED: All tests
Icom IC-Q7A Banks SKIPPED: Banks not supported
Icom IC-T70 Detect PASSED: All tests
Icom IC-T70 Settings SKIPPED: Settings not supported
Icom IC-T70 Clone PASSED: All tests
Icom IC-T70 Edges PASSED: All tests
Icom IC-T70 BruteForce PASSED: All tests
Icom IC-T70 CopyAll PASSED: All tests
Icom IC-T70 Banks PASSED: All tests
Icom IC-T7H Detect PASSED: All tests
Icom IC-T7H Settings SKIPPED: Settings not supported
Icom IC-T7H Clone PASSED: All tests
Icom IC-T7H Edges PASSED: All tests
Icom IC-T7H BruteForce PASSED: All tests
Icom IC-T7H CopyAll PASSED: All tests
Icom IC-T7H Banks SKIPPED: Banks not supported
Icom IC-T8A Detect PASSED: All tests
Icom IC-T8A Settings SKIPPED: Settings not supported
Icom IC-T8A Clone PASSED: All tests
Icom IC-T8A Edges PASSED: All tests
Icom IC-T8A BruteForce PASSED: All tests
Icom IC-T8A CopyAll PASSED: All tests
Icom IC-T8A Banks SKIPPED: Banks not supported
Icom IC-V82/U82 Detect PASSED: All tests
Icom IC-V82/U82 Settings SKIPPED: Settings not supported
Icom IC-V82/U82 Clone PASSED: All tests
Icom IC-V82/U82 Edges PASSED: All tests
Icom IC-V82/U82 BruteForce PASSED: All tests
Icom IC-V82/U82 CopyAll PASSED: All tests
Icom IC-V82/U82 Banks PASSED: All tests
Icom IC-W32A VHF Detect PASSED: All tests
Icom IC-W32A VHF Settings SKIPPED: Settings not supported
Icom IC-W32A VHF Clone PASSED: All tests
Icom IC-W32A VHF Edges PASSED: All tests
Icom IC-W32A VHF BruteForce PASSED: All tests
Icom IC-W32A VHF CopyAll PASSED: All tests
Icom IC-W32A VHF Banks SKIPPED: Banks not supported
Icom IC-W32A UHF Detect PASSED: All tests
Icom IC-W32A UHF Settings SKIPPED: Settings not supported
Icom IC-W32A UHF Clone PASSED: All tests
Icom IC-W32A UHF Edges PASSED: All tests
Icom IC-W32A UHF BruteForce PASSED: All tests
Icom IC-W32A UHF CopyAll PASSED: All tests
Icom IC-W32A UHF Banks SKIPPED: Banks not supported
Icom ID-31A Detect PASSED: All tests
Icom ID-31A Settings PASSED: All tests
Icom ID-31A Clone PASSED: All tests
Icom ID-31A Edges PASSED: All tests
Icom ID-31A BruteForce PASSED: All tests
Icom ID-31A CopyAll PASSED: All tests
Icom ID-31A Banks PASSED: All tests
Icom ID-51A Detect PASSED: All tests
Icom ID-51A Settings PASSED: All tests
Icom ID-51A Clone PASSED: All tests
Icom ID-51A Edges PASSED: All tests
Icom ID-51A BruteForce PASSED: All tests
Icom ID-51A CopyAll PASSED: All tests
Icom ID-51A Banks PASSED: All tests
Icom ID-800H v2 Detect PASSED: All tests
Icom ID-800H v2 Settings PASSED: All tests
Icom ID-800H v2 Clone PASSED: All tests
Icom ID-800H v2 Edges PASSED: All tests
Icom ID-800H v2 BruteForce PASSED: All tests
Icom ID-800H v2 CopyAll PASSED: All tests
Icom ID-800H v2 Banks PASSED: All tests
Icom ID-880H Detect PASSED: All tests
Icom ID-880H Settings PASSED: All tests
Icom ID-880H Clone PASSED: All tests
Icom ID-880H Edges PASSED: All tests
Icom ID-880H BruteForce PASSED: All tests
Icom ID-880H CopyAll PASSED: All tests
Icom ID-880H Banks PASSED: All tests
Jetstream JT220M Detect PASSED: All tests
Jetstream JT220M Settings SKIPPED: Settings not supported
Jetstream JT220M Clone PASSED: All tests
Jetstream JT220M Edges PASSED: All tests
Jetstream JT220M BruteForce PASSED: All tests
Jetstream JT220M CopyAll PASSED: All tests
Jetstream JT220M Banks SKIPPED: Banks not supported
Jetstream JT270M Detect PASSED: All tests
Jetstream JT270M Settings PASSED: All tests
Jetstream JT270M Clone PASSED: All tests
Jetstream JT270M Edges PASSED: All tests
Jetstream JT270M BruteForce PASSED: All tests
Jetstream JT270M CopyAll PASSED: All tests
Jetstream JT270M Banks SKIPPED: Banks not supported
Kenwood TH-D72 (clone Detect PASSED: All tests
Kenwood TH-D72 (clone Settings SKIPPED: Settings not supported
Kenwood TH-D72 (clone Clone PASSED: All tests
Kenwood TH-D72 (clone Edges PASSED: All tests
Kenwood TH-D72 (clone BruteForce PASSED: All tests
Kenwood TH-D72 (clone CopyAll PASSED: All tests
Kenwood TH-D72 (clone Banks SKIPPED: Banks not supported
Kenwood TK-8102 Detect PASSED: All tests
Kenwood TK-8102 Settings PASSED: All tests
Kenwood TK-8102 Clone PASSED: All tests
Kenwood TK-8102 Edges PASSED: All tests
Kenwood TK-8102 BruteForce PASSED: All tests
Kenwood TK-8102 CopyAll PASSED: All tests
Kenwood TK-8102 Banks SKIPPED: Banks not supported
Leixen VV-898 Detect PASSED: All tests
Leixen VV-898 Settings PASSED: All tests
Leixen VV-898 Clone PASSED: All tests
Leixen VV-898 Edges PASSED: All tests
Leixen VV-898 BruteForce PASSED: All tests
Leixen VV-898 CopyAll PASSED: All tests
Leixen VV-898 Banks SKIPPED: Banks not supported
Polmar DB-50M Detect PASSED: All tests
Polmar DB-50M Settings PASSED: All tests
Polmar DB-50M Clone PASSED: All tests
Polmar DB-50M Edges PASSED: All tests
Polmar DB-50M BruteForce PASSED: All tests
Polmar DB-50M CopyAll PASSED: All tests
Polmar DB-50M Banks SKIPPED: Banks not supported
Puxing PX-2R Detect PASSED: All tests
Puxing PX-2R Settings SKIPPED: Settings not supported
Puxing PX-2R Clone PASSED: All tests
Puxing PX-2R Edges PASSED: All tests
Puxing PX-2R BruteForce PASSED: All tests
Puxing PX-2R CopyAll PASSED: All tests
Puxing PX-2R Banks SKIPPED: Banks not supported
Puxing PX-777 Detect PASSED: All tests
Puxing PX-777 Settings SKIPPED: Settings not supported
Puxing PX-777 Clone PASSED: All tests
Puxing PX-777 Edges PASSED: All tests
Puxing PX-777 BruteForce PASSED: All tests
Puxing PX-777 CopyAll PASSED: All tests
Puxing PX-777 Banks SKIPPED: Banks not supported
Sainsonic AP510 Detect PASSED: All tests
Sainsonic AP510 Settings PASSED: All tests
Sainsonic AP510 Clone PASSED: All tests
Sainsonic AP510 Edges PASSED: All tests
Sainsonic AP510 BruteForce PASSED: All tests
Sainsonic AP510 CopyAll PASSED: All tests
Sainsonic AP510 Banks SKIPPED: Banks not supported
TYT TH-9800 Detect PASSED: All tests
TYT TH-9800 Settings PASSED: All tests
TYT TH-9800 Clone PASSED: All tests
TYT TH-9800 Edges PASSED: All tests
TYT TH-9800 BruteForce PASSED: All tests
TYT TH-9800 CopyAll PASSED: All tests
TYT TH-9800 Banks SKIPPED: Banks not supported
TYT TH-UV3R Detect PASSED: All tests
TYT TH-UV3R Settings SKIPPED: Settings not supported
TYT TH-UV3R Clone PASSED: All tests
TYT TH-UV3R Edges PASSED: All tests
TYT TH-UV3R BruteForce PASSED: All tests
TYT TH-UV3R CopyAll PASSED: All tests
TYT TH-UV3R Banks SKIPPED: Banks not supported
TYT TH-UV3R-25 Detect PASSED: All tests
TYT TH-UV3R-25 Settings SKIPPED: Settings not supported
TYT TH-UV3R-25 Clone PASSED: All tests
TYT TH-UV3R-25 Edges PASSED: All tests
TYT TH-UV3R-25 BruteForce PASSED: All tests
TYT TH-UV3R-25 CopyAll PASSED: All tests
TYT TH-UV3R-25 Banks SKIPPED: Banks not supported
TYT TH-UVF1 Detect PASSED: All tests
TYT TH-UVF1 Settings PASSED: All tests
TYT TH-UVF1 Clone PASSED: All tests
TYT TH-UVF1 Edges PASSED: All tests
TYT TH-UVF1 BruteForce PASSED: All tests
TYT TH-UVF1 CopyAll PASSED: All tests
TYT TH-UVF1 Banks SKIPPED: Banks not supported
Vertex VXA-700 Detect PASSED: All tests
Vertex VXA-700 Settings SKIPPED: Settings not supported
Vertex VXA-700 Clone PASSED: All tests
Vertex VXA-700 Edges PASSED: All tests
Vertex VXA-700 BruteForce PASSED: All tests
Vertex VXA-700 CopyAll PASSED: All tests
Vertex VXA-700 Banks SKIPPED: Banks not supported
Wouxun KG-816 Detect PASSED: All tests
Wouxun KG-816 Settings PASSED: All tests
Wouxun KG-816 Clone PASSED: All tests
Wouxun KG-816 Edges PASSED: All tests
Wouxun KG-816 BruteForce PASSED: All tests
Wouxun KG-816 CopyAll PASSED: All tests
Wouxun KG-816 Banks SKIPPED: Banks not supported
Wouxun KG-818 Detect PASSED: All tests
Wouxun KG-818 Settings PASSED: All tests
Wouxun KG-818 Clone PASSED: All tests
Wouxun KG-818 Edges PASSED: All tests
Wouxun KG-818 BruteForce PASSED: All tests
Wouxun KG-818 CopyAll PASSED: All tests
Wouxun KG-818 Banks SKIPPED: Banks not supported
Wouxun KG-UV6 Detect PASSED: All tests
Wouxun KG-UV6 Settings PASSED: All tests
Wouxun KG-UV6 Clone PASSED: All tests
Wouxun KG-UV6 Edges PASSED: All tests
Wouxun KG-UV6 BruteForce PASSED: All tests
Wouxun KG-UV6 CopyAll PASSED: All tests
Wouxun KG-UV6 Banks SKIPPED: Banks not supported
Wouxun KG-UV8D Detect PASSED: All tests
Wouxun KG-UV8D Settings PASSED: All tests
Wouxun KG-UV8D Clone PASSED: All tests
Wouxun KG-UV8D Edges PASSED: All tests
Wouxun KG-UV8D BruteForce PASSED: All tests
Wouxun KG-UV8D CopyAll PASSED: All tests
Wouxun KG-UV8D Banks SKIPPED: Banks not supported
Wouxun KG-UVD1P Detect PASSED: All tests
Wouxun KG-UVD1P Settings PASSED: All tests
Wouxun KG-UVD1P Clone PASSED: All tests
Wouxun KG-UVD1P Edges PASSED: All tests
Wouxun KG-UVD1P BruteForce PASSED: All tests
Wouxun KG-UVD1P CopyAll PASSED: All tests
Wouxun KG-UVD1P Banks SKIPPED: Banks not supported
Yaesu FT-1802M Detect PASSED: All tests
Yaesu FT-1802M Settings SKIPPED: Settings not supported
Yaesu FT-1802M Clone PASSED: All tests
Yaesu FT-1802M Edges PASSED: All tests
Yaesu FT-1802M BruteForce PASSED: All tests
Yaesu FT-1802M CopyAll PASSED: All tests
Yaesu FT-1802M Banks SKIPPED: Banks not supported
Yaesu FT-1D R Detect PASSED: All tests
Yaesu FT-1D R Settings PASSED: All tests
Yaesu FT-1D R Clone PASSED: All tests
Yaesu FT-1D R Edges PASSED: All tests
Yaesu FT-1D R BruteForce PASSED: All tests
Yaesu FT-1D R CopyAll PASSED: All tests
Yaesu FT-1D R Banks PASSED: All tests
Yaesu FT-2800M Detect PASSED: All tests
Yaesu FT-2800M Settings SKIPPED: Settings not supported
Yaesu FT-2800M Clone PASSED: All tests
Yaesu FT-2800M Edges PASSED: All tests
Yaesu FT-2800M BruteForce PASSED: All tests
Yaesu FT-2800M CopyAll PASSED: All tests
Yaesu FT-2800M Banks SKIPPED: Banks not supported
Yaesu FT-60 Detect PASSED: All tests
Yaesu FT-60 Settings PASSED: All tests
Yaesu FT-60 Clone PASSED: All tests
Yaesu FT-60 Edges PASSED: All tests
Yaesu FT-60 BruteForce PASSED: All tests
Yaesu FT-60 CopyAll PASSED: All tests
Yaesu FT-60 Banks PASSED: All tests
Yaesu FT-7800/7900 Detect PASSED: All tests
Yaesu FT-7800/7900 Settings PASSED: All tests
Yaesu FT-7800/7900 Clone PASSED: All tests
Yaesu FT-7800/7900 Edges PASSED: All tests
Yaesu FT-7800/7900 BruteForce PASSED: All tests
Yaesu FT-7800/7900 CopyAll PASSED: All tests
Yaesu FT-7800/7900 Banks PASSED: All tests
Yaesu FT-817 Detect PASSED: All tests
Yaesu FT-817 Settings PASSED: All tests
Yaesu FT-817 Clone PASSED: All tests
Yaesu FT-817 Edges PASSED: All tests
Yaesu FT-817 BruteForce PASSED: All tests
Yaesu FT-817 CopyAll PASSED: All tests
Yaesu FT-817 Banks SKIPPED: Banks not supported
Yaesu FT-817ND Detect PASSED: All tests
Yaesu FT-817ND Settings PASSED: All tests
Yaesu FT-817ND Clone PASSED: All tests
Yaesu FT-817ND Edges PASSED: All tests
Yaesu FT-817ND BruteForce PASSED: All tests
Yaesu FT-817ND CopyAll PASSED: All tests
Yaesu FT-817ND Banks SKIPPED: Banks not supported
Yaesu FT-817ND (US) Detect PASSED: All tests
Yaesu FT-817ND (US) Settings PASSED: All tests
Yaesu FT-817ND (US) Clone PASSED: All tests
Yaesu FT-817ND (US) Edges PASSED: All tests
Yaesu FT-817ND (US) BruteForce PASSED: All tests
Yaesu FT-817ND (US) CopyAll PASSED: All tests
Yaesu FT-817ND (US) Banks SKIPPED: Banks not supported
Yaesu FT-857/897 Detect PASSED: All tests
Yaesu FT-857/897 Settings PASSED: All tests
Yaesu FT-857/897 Clone PASSED: All tests
Yaesu FT-857/897 Edges PASSED: All tests
Yaesu FT-857/897 BruteForce PASSED: All tests
Yaesu FT-857/897 CopyAll PASSED: All tests
Yaesu FT-857/897 Banks SKIPPED: Banks not supported
Yaesu FT-857/897 (U Detect PASSED: All tests
Yaesu FT-857/897 (U Settings PASSED: All tests
Yaesu FT-857/897 (U Clone PASSED: All tests
Yaesu FT-857/897 (U Edges PASSED: All tests
Yaesu FT-857/897 (U BruteForce PASSED: All tests
Yaesu FT-857/897 (U CopyAll PASSED: All tests
Yaesu FT-857/897 (U Banks SKIPPED: Banks not supported
Yaesu FT-8800 Left Detect PASSED: All tests
Yaesu FT-8800 Left Settings SKIPPED: Settings not supported
Yaesu FT-8800 Left Clone PASSED: All tests
Yaesu FT-8800 Left Edges PASSED: All tests
Yaesu FT-8800 Left BruteForce PASSED: All tests
Yaesu FT-8800 Left CopyAll PASSED: All tests
Yaesu FT-8800 Left Banks PASSED: All tests
Yaesu FT-8800 Right Detect PASSED: All tests
Yaesu FT-8800 Right Settings SKIPPED: Settings not supported
Yaesu FT-8800 Right Clone PASSED: All tests
Yaesu FT-8800 Right Edges PASSED: All tests
Yaesu FT-8800 Right BruteForce PASSED: All tests
Yaesu FT-8800 Right CopyAll PASSED: All tests
Yaesu FT-8800 Right Banks PASSED: All tests
Yaesu FT-8900 Detect PASSED: All tests
Yaesu FT-8900 Settings SKIPPED: Settings not supported
Yaesu FT-8900 Clone PASSED: All tests
Yaesu FT-8900 Edges PASSED: All tests
Yaesu FT-8900 BruteForce PASSED: All tests
Yaesu FT-8900 CopyAll PASSED: All tests
Yaesu FT-8900 Banks SKIPPED: Banks not supported
Yaesu FTM-350 Left Detect PASSED: All tests
Yaesu FTM-350 Left Settings PASSED: All tests
Yaesu FTM-350 Left Clone PASSED: All tests
Yaesu FTM-350 Left Edges PASSED: All tests
Yaesu FTM-350 Left BruteForce PASSED: All tests
Yaesu FTM-350 Left CopyAll PASSED: All tests
Yaesu FTM-350 Left Banks SKIPPED: Banks not supported
Yaesu FTM-350 Right Detect PASSED: All tests
Yaesu FTM-350 Right Settings SKIPPED: Settings not supported
Yaesu FTM-350 Right Clone PASSED: All tests
Yaesu FTM-350 Right Edges PASSED: All tests
Yaesu FTM-350 Right BruteForce PASSED: All tests
Yaesu FTM-350 Right CopyAll PASSED: All tests
Yaesu FTM-350 Right Banks SKIPPED: Banks not supported
Yaesu VX-2 Detect PASSED: All tests
Yaesu VX-2 Settings PASSED: All tests
Yaesu VX-2 Clone PASSED: All tests
Yaesu VX-2 Edges PASSED: All tests
Yaesu VX-2 BruteForce PASSED: All tests
Yaesu VX-2 CopyAll PASSED: All tests
Yaesu VX-2 Banks PASSED: All tests
Yaesu VX-3 Detect PASSED: All tests
Yaesu VX-3 Settings PASSED: All tests
Yaesu VX-3 Clone PASSED: All tests
Yaesu VX-3 Edges PASSED: All tests
Yaesu VX-3 BruteForce PASSED: All tests
Yaesu VX-3 CopyAll PASSED: All tests
Yaesu VX-3 Banks PASSED: All tests
Yaesu VX-5 Detect PASSED: All tests
Yaesu VX-5 Settings SKIPPED: Settings not supported
Yaesu VX-5 Clone PASSED: All tests
Yaesu VX-5 Edges PASSED: All tests
Yaesu VX-5 BruteForce PASSED: All tests
Yaesu VX-5 CopyAll PASSED: All tests
Yaesu VX-5 Banks PASSED: All tests
Yaesu VX-6 Detect PASSED: All tests
Yaesu VX-6 Settings SKIPPED: Settings not supported
Yaesu VX-6 Clone PASSED: All tests
Yaesu VX-6 Edges PASSED: All tests
Yaesu VX-6 BruteForce PASSED: All tests
Yaesu VX-6 CopyAll PASSED: All tests
Yaesu VX-6 Banks PASSED: All tests
Yaesu VX-7 Detect PASSED: All tests
Yaesu VX-7 Settings SKIPPED: Settings not supported
Yaesu VX-7 Clone PASSED: All tests
Yaesu VX-7 Edges PASSED: All tests
Yaesu VX-7 BruteForce PASSED: All tests
Yaesu VX-7 CopyAll PASSED: All tests
Yaesu VX-7 Banks PASSED: All tests
Yaesu VX-8 R Detect PASSED: All tests
Yaesu VX-8 R Settings SKIPPED: Settings not supported
Yaesu VX-8 R Clone PASSED: All tests
Yaesu VX-8 R Edges PASSED: All tests
Yaesu VX-8 R BruteForce PASSED: All tests
Yaesu VX-8 R CopyAll PASSED: All tests
Yaesu VX-8 R Banks PASSED: All tests
----------------------------------------------------------------------
Results:
TOTAL : 448
FAILED : 0
SKIPPED: 72
PASSED : 376
CRASHED: 0
Registered Icom_IC-2820H = IC2820Radio
Registered TYT_TH-UVF8D = TYTUVF8DRadio
Registered AnyTone_5888UV = AnyTone5888UVRadio
Registered Intek_HR-2040 = IntekHR2040Radio
Registered Polmar_DB-50M = PolmarDB50MRadio
Registered Powerwerx_DB-750X = PowerwerxDB750XRadio
Registered Icom_IC-2200H = IC2200Radio
Registered Yaesu_FT-2800M = FT2800Radio
Registered Yaesu_VX-3 = VX3Radio
Registered Icom_IC-2100H = IC2100Radio
Registered Yaesu_FTM-350 = FTM350Radio
Registered Icom_IC-V82_U82 = ICx8xRadio
Registered Yaesu_VX-6 = VX6Radio
Registered TYT_TH-UV3R = TYTUV3RRadio
Registered TYT_TH-UV3R-25 = TYTUV3R25Radio
Registered Yaesu_VX-5 = VX5Radio
Registered Yaesu_FT-60 = FT60Radio
Registered Yaesu_VX-7 = VX7Radio
Registered Sainsonic_AP510 = AP510Radio
Registered Baofeng_UV-5R = BaofengUV5R
Registered Baofeng_F-11 = BaofengF11Radio
Registered Baofeng_UV-82 = BaofengUV82Radio
Registered Baofeng_UV-6 = BaofengUV6Radio
Registered Intek_KT-980HP = IntekKT980Radio
Registered Baofeng_BF-F8HP = BaofengBFF8HPRadio
Registered Yaesu_FT-1802M = FT1802Radio
Registered Kenwood_TK-7102 = KenwoodTK7102Radio
Registered Kenwood_TK-8102 = KenwoodTK8102Radio
Registered Kenwood_TK-7108 = KenwoodTK7108Radio
Registered Kenwood_TK-8108 = KenwoodTK8108Radio
Registered Icom_ID-31A = ID31Radio
Registered Icom_ID-51A = ID51Radio
Registered Icom_IC-2720H = IC2720Radio
Registered Icom_IC-T8A = ICT8ARadio
Registered Wouxun_KG-UVD1P = KGUVD1PRadio
Registered Wouxun_KG-UV6 = KGUV6DRadio
Registered Wouxun_KG-816 = KG816Radio
Registered Wouxun_KG-818 = KG818Radio
Registered TYT_TH-UVF1 = TYTTHUVF1Radio
Registered Yaesu_FT-90 = FT90Radio
Registered Generic_CSV = CSVRadio
Registered Commander_KG-UV = CommanderCSVRadio
Registered RT_Systems_CSV = RTCSVRadio
Registered Kenwood_ITM = ITMRadio
Registered TYT_TH-9800_File = TYTTH9800File
Registered TYT_TH-9800 = TYTTH9800Radio
Registered Alinco_DR03T = DR03Radio
Registered Alinco_DR06T = DR06Radio
Registered Alinco_DR135T = DR135Radio
Registered Alinco_DR235T = DR235Radio
Registered Alinco_DR435T = DR435Radio
Registered Alinco_DJ596 = DJ596Radio
Registered Jetstream_JT220M = JT220MRadio
Registered Alinco_DJ175 = DJ175Radio
Registered Kenwood_TH-D7 = THD7Radio
Registered Kenwood_TH-D7G = THD7GRadio
Registered Kenwood_TM-D700 = TMD700Radio
Registered Kenwood_TM-V7 = TMV7Radio
Registered Kenwood_TM-G707 = TMG707Radio
Registered Kenwood_TH-G71 = THG71Radio
Registered Kenwood_TH-F6 = THF6ARadio
Registered Kenwood_TH-F7 = THF7ERadio
Registered Kenwood_TM-D710 = TMD710Radio
Registered Kenwood_TH-D72_live_mode = THD72Radio
Registered Kenwood_TM-V71 = TMV71Radio
Registered Kenwood_TM-D710G = TMD710GRadio
Registered Kenwood_TH-K2 = THK2Radio
Registered Kenwood_TM-271 = TM271Radio
Registered Kenwood_TM-281 = TM281Radio
Registered Kenwood_TM-471 = TM471Radio
Registered Yaesu_FT-1D_R = FT1Radio
Registered Wouxun_KG-UV8D = KGUV8DRadio
Registered Yaesu_VX-8_R = VX8Radio
Registered Yaesu_VX-8_DR = VX8DRadio
Registered Yaesu_VX-8_GE = VX8GERadio
Registered Icom_IC-T7H = ICT7HRadio
Registered Icom_IC-Q7A = ICQ7Radio
Registered Baofeng_UV-B5 = BaofengUVB5
Registered Generic_XML = XMLRadio
Registered Kenwood_HMK = HMKRadio
Registered Kenwood_TH-D72_clone_mode = THD72Radio
Registered Icom_IC-91_92AD = IC9xRadio
Registered Icom_IC-T70 = ICT70Radio
Registered Icom_IC-208H = IC208Radio
Registered Leixen_VV-898 = LeixenVV898Radio
Registered Jetstream_JT270M = JetstreamJT270MRadio
Registered Icom_ID-800H_v2 = ID800v2Radio
Registered Icom_7200 = Icom7200Radio
Registered Icom_7000 = Icom7000Radio
Registered Icom_746 = Icom746Radio
Registered ARRL_Travel_Plus = TpeRadio
Registered Vertex_Standard_VXA-700 = VXA700Radio
Registered Icom_IC-W32A = ICW32ARadio
Registered Baofeng_UV-3R = UV3RRadio
Registered Yaesu_VX-2 = VX2Radio
Registered Puxing_PX-777 = Puxing777Radio
Registered Puxing_PX-2R = Puxing2RRadio
Registered Baojie_BJ-UV55 = BaojieBJUV55Radio
Registered Baofeng_BF-888 = H777Radio
Registered Yaesu_FT-7800_7900 = FT7800Radio
Registered Yaesu_FT-8800 = FT8800Radio
Registered Yaesu_FT-8900 = FT8900Radio
Registered KYD_NC-630A = NC630aRadio
Registered Yaesu_FT-817 = FT817Radio
Registered Yaesu_FT-817ND = FT817NDRadio
Registered Yaesu_FT-817ND_US = FT817NDUSRadio
Registered Yaesu_FT-857_897 = FT857Radio
Registered Yaesu_FT-857_897_US = FT857USRadio
Registered Yaesu_VX-170 = VX170Radio
Registered Icom_ID-880H = ID880Radio
Registered Icom_ID-80H = ID80Radio
Patch 'tip' is OK
================================================
Tests OK
Email was triggered for: Success
Sending email for trigger: Success
1
0
# HG changeset patch
# User K. Arvanitis <kosta(a)alumni.uvic.ca>
# Date 1424938909 28800
# Thu Feb 26 00:21:49 2015 -0800
# Node ID 51e10c5f7447b6b025514d75d03215b9d4088479
# Parent 81465a9a288b84f8fd835ceaaf8e3eb249d5bbd0
[FT-60] Adding support for PMS channels
Added special channel support for yasue programmable memory scan channels:
L1 - L50 and U1 - U50.
Bug #2367
diff -r 81465a9a288b -r 51e10c5f7447 chirp/ft60.py
--- a/chirp/ft60.py Wed Feb 25 08:17:24 2015 -0800
+++ b/chirp/ft60.py Thu Feb 26 00:21:49 2015 -0800
@@ -204,8 +204,7 @@
#seekto 0x09E;
ul16 mbs;
-#seekto 0x0248;
-struct {
+struct mem {
u8 used:1,
unknown1:1,
isnarrow:1,
@@ -224,7 +223,13 @@
u8 unknown5[2];
u8 offset;
u8 unknown6[3];
-} memory[1000];
+};
+
+#seekto 0x0248;
+struct mem memory[1000];
+
+#seekto 0x40c8;
+struct mem pms[100];
#seekto 0x6EC8;
// skips:2 for Memory M in [1, 1000] is in flags[(M-1)/4].skip((M-1)%4).
@@ -263,6 +268,8 @@
STEPS = [5.0, 10.0, 12.5, 15.0, 20.0, 25.0, 50.0, 100.0]
SKIPS = ["", "S", "P"]
CHARSET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ [?]^__|`?$%&-()*+,-,/|;/=>?@"
+SPECIALS = ["%s%d" % (c,i+1) for i in range(0, 50) for c in ('L', 'U') ]
+
class FT60BankModel(chirp_common.BankModel):
def get_num_mappings(self):
@@ -346,6 +353,7 @@
rf.valid_power_levels = POWER_LEVELS
rf.valid_tuning_steps = STEPS
rf.valid_skips = SKIPS
+ rf.valid_special_chans = SPECIALS
rf.valid_characters = CHARSET
rf.valid_name_length = 6
rf.valid_modes = ["FM", "NFM", "AM"]
@@ -629,14 +637,28 @@
repr(self._memobj.names[number - 1])
def get_memory(self, number):
- _mem = self._memobj.memory[number - 1]
- _skp = self._memobj.flags[(number - 1) / 4]
- _nam = self._memobj.names[number - 1]
+
+ mem = chirp_common.Memory()
- skip = _skp["skip%i" % ((number - 1) % 4)]
-
- mem = chirp_common.Memory()
- mem.number = number
+ if isinstance(number, str):
+ # pms channel
+ mem.number = 1001 + SPECIALS.index(number)
+ mem.extd_number = number
+ mem.immutable = ["number", "extd_number", "name", "skip"]
+ _mem = self._memobj.pms[mem.number - 1001]
+ _nam = _skp = None
+ elif number > 1000:
+ # pms channel
+ mem.number = number
+ mem.extd_number = SPECIALS[number - 1001]
+ mem.immutable = ["number", "extd_number", "name", "skip"]
+ _mem = self._memobj.pms[mem.number - 1001]
+ _nam = _skp = None
+ else:
+ mem.number = number
+ _mem = self._memobj.memory[mem.number - 1]
+ _nam = self._memobj.names[mem.number - 1]
+ _skp = self._memobj.flags[(mem.number - 1) / 4]
if not _mem.used:
mem.empty = True
@@ -644,7 +666,6 @@
mem.freq = _decode_freq(_mem.freq)
mem.offset = int(_mem.offset) * 50000
-
mem.duplex = DUPLEX[_mem.duplex]
if mem.duplex == "split":
mem.offset = _decode_freq(_mem.tx_freq)
@@ -654,26 +675,36 @@
mem.power = POWER_LEVELS[_mem.power]
mem.mode = _mem.isam and "AM" or _mem.isnarrow and "NFM" or "FM"
mem.tuning_step = STEPS[_mem.step]
- mem.skip = SKIPS[skip]
- if _nam.use_name and _nam.valid:
- mem.name = _decode_name(_nam.name).rstrip()
+ if not _skp is None:
+ skip = _skp["skip%i" % ((mem.number - 1) % 4)]
+ mem.skip = SKIPS[skip]
+
+ if not _nam is None:
+ if _nam.use_name and _nam.valid:
+ mem.name = _decode_name(_nam.name).rstrip()
return mem
def set_memory(self, mem):
- _mem = self._memobj.memory[mem.number - 1]
- _skp = self._memobj.flags[(mem.number - 1) / 4]
- _nam = self._memobj.names[mem.number - 1]
+ if mem.number > 1000:
+ # pms channel
+ _mem = self._memobj.pms[mem.number - 1001]
+ _nam = _skp = None
+ else:
+ _mem = self._memobj.memory[mem.number - 1]
+ _nam = self._memobj.names[mem.number - 1]
+ _skp = self._memobj.flags[(mem.number - 1) / 4]
+
+ assert(_mem)
if mem.empty:
_mem.used = False
return
-
+
if not _mem.used:
_mem.set_raw("\x00" * 16)
_mem.used = 1
- print "Wiped"
_mem.freq, flags = _encode_freq(mem.freq)
_mem.freq[0].set_bits(flags)
@@ -693,8 +724,10 @@
_mem.isam = mem.mode == "AM"
_mem.step = STEPS.index(mem.tuning_step)
- _skp["skip%i" % ((mem.number - 1) % 4)] = SKIPS.index(mem.skip)
+ if not _skp is None:
+ _skp["skip%i" % ((mem.number - 1) % 4)] = SKIPS.index(mem.skip)
- _nam.name = _encode_name(mem.name)
- _nam.use_name = mem.name.strip() and True or False
- _nam.valid = _nam.use_name
+ if not _nam is None:
+ _nam.name = _encode_name(mem.name)
+ _nam.use_name = mem.name.strip() and True or False
+ _nam.valid = _nam.use_name
3
2
26 Feb '15
Hello!
I'm Rich Cochran, AG6QR. I've worked as a software developer for many
years, using many languages and tools, but not too much with Python or
Mercurial yet.
For quite some time, I've been meaning to write a driver to support the
Yaesu FT-2900 radio. I had entered comments on issues #328 and #925
regarding support of this radio. But between work, kids, and other
things, progress had been stalled until a couple of weeks ago.
Now I'm happy to report that I have a working driver that can upload and
download memories, supporting frequency, name, tone, DCS, squelch type,
skip, step size, offset, and duplex fields. I basically took the
existing FT-2800 driver, and I support everything it supports, plus step
size (but the internal memory layout is very different between the
FT-2900 and FT-2800). I can add new memories, delete them, move them
around, edit all the fields, and upload/download to and from the radio.
I do not support banks (yet), nor do I support global radio settings,
and there are a few esoteric features, like odd splits or separate CTCSS
tones for transmit vs receive, which are still lacking. I'd like to
continue enhancing the driver in the future, but I think it offers
enough solid functionality now to be useful to many people.
When I put an image in the test directory, my driver now passes all the
tests (the tests found an issue with 12.5kHz step size which I have
since fixed -- thanks to whomever thought to include that).
I haven't yet run my source through the pep8 checker script, and the
source tree where I've done the driver development is a couple of weeks
old. I intend to grab the latest source, run my code through pep8,
verify that it's all still working, and I think I'll be ready to submit.
Have I missed anything? If not, I'll e-mail the .img file as an
attachment to this list, and email the new ft2900.py as a Mercurial
patch. It'll take me at least another evening or two to do this.
--Rich Cochran/AG6QR
2
1