Developers
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 3 participants
- 2964 discussions
Tested changes:
Changes for Build #887
[Jim Unroe <rock.unroe(a)gmail.com>] [UV-5R] Add support for XXX.XXX Work Mode Offsets
The original UV-5R only supported VFO offsets up to 69.95 MHz. Current models
support VFO offsets up to 999.999 MHz. This patch expands the Work Mode
Settings VFO A/B Offset settings to match the range of the current models.
fixes #6719
[Jim Unroe <rock.unroe(a)gmail.com>] [TI-F8+] Add support for TechSide TI-F8+
This patch adds support for the TechSide TI-F8+ (variant of Baofeng BF-F8HP)
related to #8187
[Kosta A. <ve7kcy(a)gmail.com>] [FT-60] Correct characterset to match radio segment display chars. Fixes #8189
[Rick DeWitt <aa0rd(a)yahoo.com>] [ic2730] Tone modes now CHIRP-compliant. Issue #8233
Adds full Cross mode tone>tone for rtcs/ctcs/dtcs
[Tom Hayward <tom(a)tomh.us>] [id880] Fix typo in charset definition. #281
[Tom Hayward <tom(a)tomh.us>] [thf6a] Support full charset (ASCII). Fixes #141
[Tom Hayward <tom(a)tomh.us>] [id880] Support full charset. Fixes #281
[Tom Hayward <tom(a)tomh.us>] [vx5] Support full charset (ASCII). Fixes #292
[Tom Hayward <tom(a)tomh.us>] [id31a] set used bit when creating new memory, clear when deleting. Fixes #269
[Tom Hayward <tom(a)tomh.us>] Support PyGTK < 2.22 in bank edit. Fixes #231
[Tom Hayward <tom(a)tomh.us>] [d710] [v71] [d72] Fix tone list (not all tones are supported). Fixes #212
[Dan Smith <dsmith(a)danplanet.com>] [vx7] Fix setting memory power levels on 220MHz band
Fixes #214
[Dan Smith <dsmith(a)danplanet.com>] fips: Pennsylvania FIPS code was wrong. #117
[Marco Filippi <iz3gme.marco(a)gmail.com>] Consider lower bound frequency of each valid_band as valid
Fix bug #181
[Tom Hayward <tom(a)tomh.us>] tmd700: allow 8-char names. Fixes #176
[Dan Smith <dsmith(a)danplanet.com>] Fix the "blind deletion" problem, as well as properly direct copy/paste
Fixes #172
[David Griffith <dave(a)661.org>] Bug #155 fix: VX-7 1.25m power levels
[David Griffith <dave(a)661.org>] New INSTALL and README files
Fixes #122
[Tom Hayward <tom(a)tomh.us>] thd72: only use hardware flow on OS X. Fixes #166
[Marco Filippi <iz3gme.marco(a)gmail.com>] [FT817] Tone freq not set correctly
Same as #88 for FT857, to avoid code duplication fix code have been moved from
ft857 to its ancestor class
Fix bug #163
[Tom Hayward <tom(a)tomh.us>] Fix Mac .app so paths with spaces work. Fixes Bug #145
Full log:
[...truncated 672 lines...]
test_copy_all (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M copy all ... ok
test_detect (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M detect ... ok
test_edges (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M edges ... ok
test_settings (tests.TestCase_PolmarDB50M)
Testing Polmar DB-50M settings ... ok
test_banks (tests.TestCase_AnyTone5888UV)
Testing AnyTone 5888UV banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_AnyTone5888UV)
Testing AnyTone 5888UV brute force ... ok
test_clone (tests.TestCase_AnyTone5888UV)
Testing AnyTone 5888UV clone ... ok
test_copy_all (tests.TestCase_AnyTone5888UV)
Testing AnyTone 5888UV copy all ... ok
test_detect (tests.TestCase_AnyTone5888UV)
Testing AnyTone 5888UV detect ... ok
test_edges (tests.TestCase_AnyTone5888UV)
Testing AnyTone 5888UV edges ... ok
test_settings (tests.TestCase_AnyTone5888UV)
Testing AnyTone 5888UV settings ... ok
test_banks (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R brute force ... ok
test_clone (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R clone ... ok
test_copy_all (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R copy all ... ok
test_detect (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R detect ... ok
test_edges (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R edges ... ok
test_settings (tests.TestCase_PuxingPX2R)
Testing Puxing PX-2R settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_AnyTone778UV)
Testing AnyTone 778UV banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_AnyTone778UV)
Testing AnyTone 778UV brute force ... ok
test_clone (tests.TestCase_AnyTone778UV)
Testing AnyTone 778UV clone ... ok
test_copy_all (tests.TestCase_AnyTone778UV)
Testing AnyTone 778UV copy all ... ok
test_detect (tests.TestCase_AnyTone778UV)
Testing AnyTone 778UV detect ... ok
test_edges (tests.TestCase_AnyTone778UV)
Testing AnyTone 778UV edges ... ok
test_settings (tests.TestCase_AnyTone778UV)
Testing AnyTone 778UV settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 brute force ... ok
test_clone (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 clone ... ok
test_copy_all (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 copy all ... ok
test_detect (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 detect ... ok
test_edges (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 edges ... ok
test_settings (tests.TestCase_TYTTH9000144)
Testing TYT TH9000_144 settings ... ok
test_banks (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 banks ... ok
test_brute_force (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 brute force ... ok
test_clone (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 clone ... ok
test_copy_all (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 copy all ... ok
test_detect (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 detect ... ok
test_edges (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 edges ... ok
test_settings (tests.TestCase_YaesuVX5)
Testing Yaesu VX-5 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 brute force ... ok
test_clone (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 clone ... ok
test_copy_all (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 copy all ... ok
test_detect (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 detect ... ok
test_edges (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 edges ... ok
test_settings (tests.TestCase_VertexStandardVXA700)
Testing Vertex Standard VXA-700 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 brute force ... ok
test_clone (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 clone ... ok
test_copy_all (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 copy all ... ok
test_detect (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 detect ... ok
test_edges (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 edges ... ok
test_settings (tests.TestCase_WACCOMMINI8900)
Testing WACCOM MINI-8900 settings ... ok
test_banks (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R banks ... ok
test_brute_force (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R brute force ... ok
test_clone (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R clone ... ok
test_copy_all (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R copy all ... ok
test_detect (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R detect ... ok
test_edges (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R edges ... ok
test_settings (tests.TestCase_YaesuFT2900R1900R)
Testing Yaesu FT-2900R/1900R settings ... ok
test_banks (tests.TestCase_AnyToneOBLTR8R)
Testing AnyTone OBLTR-8R banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_AnyToneOBLTR8R)
Testing AnyTone OBLTR-8R brute force ... ok
test_clone (tests.TestCase_AnyToneOBLTR8R)
Testing AnyTone OBLTR-8R clone ... ok
test_copy_all (tests.TestCase_AnyToneOBLTR8R)
Testing AnyTone OBLTR-8R copy all ... ok
test_detect (tests.TestCase_AnyToneOBLTR8R)
Testing AnyTone OBLTR-8R detect ... ok
test_edges (tests.TestCase_AnyToneOBLTR8R)
Testing AnyTone OBLTR-8R edges ... ok
test_settings (tests.TestCase_AnyToneOBLTR8R)
Testing AnyTone OBLTR-8R settings ... ok
test_banks (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D banks ... ok
test_brute_force (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D brute force ... ok
test_clone (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D clone ... ok
test_copy_all (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D copy all ... ok
test_detect (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D detect ... ok
test_edges (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D edges ... ok
test_settings (tests.TestCase_YaesuFT70D)
Testing Yaesu FT-70D settings ... ok
test_banks (tests.TestCase_IcomID880H)
Testing Icom ID-880H banks ... ok
test_brute_force (tests.TestCase_IcomID880H)
Testing Icom ID-880H brute force ... ok
test_clone (tests.TestCase_IcomID880H)
Testing Icom ID-880H clone ... ok
test_copy_all (tests.TestCase_IcomID880H)
Testing Icom ID-880H copy all ... ok
test_detect (tests.TestCase_IcomID880H)
Testing Icom ID-880H detect ... ok
test_edges (tests.TestCase_IcomID880H)
Testing Icom ID-880H edges ... ok
test_settings (tests.TestCase_IcomID880H)
Testing Icom ID-880H settings ... ok
test_banks (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 banks ... ok
test_brute_force (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 brute force ... ok
test_clone (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 clone ... ok
test_copy_all (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 copy all ... ok
test_detect (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 detect ... ok
test_edges (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 edges ... ok
test_settings (tests.TestCase_YaesuVX6)
Testing Yaesu VX-6 settings ... ok
test_banks (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D brute force ... ok
test_clone (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D clone ... ok
test_copy_all (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D copy all ... ok
test_detect (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D detect ... ok
test_edges (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D edges ... ok
test_settings (tests.TestCase_YaesuFT450D)
Testing Yaesu FT-450D settings ... ok
test_banks (tests.TestCase_BaofengBF888)
Testing Baofeng BF-888 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BaofengBF888)
Testing Baofeng BF-888 brute force ... ok
test_clone (tests.TestCase_BaofengBF888)
Testing Baofeng BF-888 clone ... ok
test_copy_all (tests.TestCase_BaofengBF888)
Testing Baofeng BF-888 copy all ... ok
test_detect (tests.TestCase_BaofengBF888)
Testing Baofeng BF-888 detect ... ok
test_edges (tests.TestCase_BaofengBF888)
Testing Baofeng BF-888 edges ... ok
test_settings (tests.TestCase_BaofengBF888)
Testing Baofeng BF-888 settings ... ok
test_banks (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H banks ... ok
test_brute_force (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H brute force ... ok
test_clone (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H clone ... ok
test_copy_all (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H copy all ... ok
test_detect (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H detect ... ok
test_edges (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H edges ... ok
test_settings (tests.TestCase_IcomIC2720H)
Testing Icom IC-2720H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M brute force ... ok
test_clone (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M clone ... ok
test_copy_all (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M copy all ... ok
test_detect (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M detect ... ok
test_edges (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M edges ... ok
test_settings (tests.TestCase_YaesuFT7100M)
Testing Yaesu FT-7100M settings ... ok
test_banks (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 brute force ... ok
test_clone (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 clone ... ok
test_copy_all (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 copy all ... ok
test_detect (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 detect ... ok
test_edges (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 edges ... ok
test_settings (tests.TestCase_WouxunKG816)
Testing Wouxun KG-816 settings ... ok
test_banks (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 brute force ... ok
test_clone (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 clone ... ok
test_copy_all (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 copy all ... ok
test_detect (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 detect ... ok
test_edges (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 edges ... ok
test_settings (tests.TestCase_PuxingPX777)
Testing Puxing PX-777 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_AnyToneTERMN8R)
Testing AnyTone TERMN-8R banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_AnyToneTERMN8R)
Testing AnyTone TERMN-8R brute force ... ok
test_clone (tests.TestCase_AnyToneTERMN8R)
Testing AnyTone TERMN-8R clone ... ok
test_copy_all (tests.TestCase_AnyToneTERMN8R)
Testing AnyTone TERMN-8R copy all ... ok
test_detect (tests.TestCase_AnyToneTERMN8R)
Testing AnyTone TERMN-8R detect ... ok
test_edges (tests.TestCase_AnyToneTERMN8R)
Testing AnyTone TERMN-8R edges ... ok
test_settings (tests.TestCase_AnyToneTERMN8R)
Testing AnyTone TERMN-8R settings ... ok
test_banks (tests.TestCase_YaesuFT4VR)
Testing Yaesu FT-4VR banks ... ok
test_brute_force (tests.TestCase_YaesuFT4VR)
Testing Yaesu FT-4VR brute force ... ok
test_clone (tests.TestCase_YaesuFT4VR)
Testing Yaesu FT-4VR clone ... ok
test_copy_all (tests.TestCase_YaesuFT4VR)
Testing Yaesu FT-4VR copy all ... ok
test_detect (tests.TestCase_YaesuFT4VR)
Testing Yaesu FT-4VR detect ... ok
test_edges (tests.TestCase_YaesuFT4VR)
Testing Yaesu FT-4VR edges ... ok
test_settings (tests.TestCase_YaesuFT4VR)
Testing Yaesu FT-4VR settings ... ok
test_banks (tests.TestCase_BaofengBFA58S)
Testing Baofeng BF-A58S banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BaofengBFA58S)
Testing Baofeng BF-A58S brute force ... ok
test_clone (tests.TestCase_BaofengBFA58S)
Testing Baofeng BF-A58S clone ... ok
test_copy_all (tests.TestCase_BaofengBFA58S)
Testing Baofeng BF-A58S copy all ... ok
test_detect (tests.TestCase_BaofengBFA58S)
Testing Baofeng BF-A58S detect ... ok
test_edges (tests.TestCase_BaofengBFA58S)
Testing Baofeng BF-A58S edges ... ok
test_settings (tests.TestCase_BaofengBFA58S)
Testing Baofeng BF-A58S settings ... ok
test_banks (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 banks ... ok
test_brute_force (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 brute force ... ok
test_clone (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 clone ... ok
test_copy_all (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 copy all ... ok
test_detect (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 detect ... ok
test_edges (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 edges ... ok
test_settings (tests.TestCase_YaesuVX7)
Testing Yaesu VX-7 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A banks ... ok
test_brute_force (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A brute force ... ok
test_clone (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A clone ... ok
test_copy_all (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A copy all ... ok
test_detect (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A detect ... ok
test_edges (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A edges ... ok
test_settings (tests.TestCase_IcomIC2730A)
Testing Icom IC-2730A settings ... ok
test_banks (tests.TestCase_YaesuFT4XE)
Testing Yaesu FT-4XE banks ... ok
test_brute_force (tests.TestCase_YaesuFT4XE)
Testing Yaesu FT-4XE brute force ... ok
test_clone (tests.TestCase_YaesuFT4XE)
Testing Yaesu FT-4XE clone ... ok
test_copy_all (tests.TestCase_YaesuFT4XE)
Testing Yaesu FT-4XE copy all ... ok
test_detect (tests.TestCase_YaesuFT4XE)
Testing Yaesu FT-4XE detect ... ok
test_edges (tests.TestCase_YaesuFT4XE)
Testing Yaesu FT-4XE edges ... ok
test_settings (tests.TestCase_YaesuFT4XE)
Testing Yaesu FT-4XE settings ... ok
test_banks (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M brute force ... ok
test_clone (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M clone ... ok
test_copy_all (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M copy all ... ok
test_detect (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M detect ... ok
test_edges (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M edges ... ok
test_settings (tests.TestCase_JetstreamJT220M)
Testing Jetstream JT220M settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_BaofengBFT1)
Testing Baofeng BF-T1 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BaofengBFT1)
Testing Baofeng BF-T1 brute force ... ok
test_clone (tests.TestCase_BaofengBFT1)
Testing Baofeng BF-T1 clone ... ok
test_copy_all (tests.TestCase_BaofengBFT1)
Testing Baofeng BF-T1 copy all ... ok
test_detect (tests.TestCase_BaofengBFT1)
Testing Baofeng BF-T1 detect ... ok
test_edges (tests.TestCase_BaofengBFT1)
Testing Baofeng BF-T1 edges ... ok
test_settings (tests.TestCase_BaofengBFT1)
Testing Baofeng BF-T1 settings ... ok
test_banks (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 brute force ... ok
test_clone (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 clone ... ok
test_copy_all (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 copy all ... ok
test_detect (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 detect ... ok
test_edges (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 edges ... ok
test_settings (tests.TestCase_WouxunKG818)
Testing Wouxun KG-818 settings ... ok
test_banks (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 banks ... ok
test_brute_force (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 brute force ... ok
test_clone (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 clone ... ok
test_copy_all (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 copy all ... ok
test_detect (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 detect ... ok
test_edges (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 edges ... ok
test_settings (tests.TestCase_YaesuFT78007900)
Testing Yaesu FT-7800/7900 settings ... ok
test_banks (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M brute force ... ok
test_clone (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M clone ... ok
test_copy_all (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M copy all ... ok
test_detect (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M detect ... ok
test_edges (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M edges ... ok
test_settings (tests.TestCase_JetstreamJT270M)
Testing Jetstream JT270M settings ... ok
test_banks (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H banks ... ok
test_brute_force (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H brute force ... ok
test_clone (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H clone ... ok
test_copy_all (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H copy all ... ok
test_detect (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H detect ... ok
test_edges (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H edges ... ok
test_settings (tests.TestCase_IcomIC2820H)
Testing Icom IC-2820H settings ... ok
test_banks (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K brute force ... ok
test_clone (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K clone ... ok
test_copy_all (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K copy all ... ok
test_detect (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K detect ... ok
test_edges (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K edges ... ok
test_settings (tests.TestCase_PuxingPX888K)
Testing Puxing PX-888K settings ... ok
test_banks (tests.TestCase_BTECHGMRS50X1)
Testing BTECH GMRS-50X1 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BTECHGMRS50X1)
Testing BTECH GMRS-50X1 brute force ... ok
test_clone (tests.TestCase_BTECHGMRS50X1)
Testing BTECH GMRS-50X1 clone ... ok
test_copy_all (tests.TestCase_BTECHGMRS50X1)
Testing BTECH GMRS-50X1 copy all ... ok
test_detect (tests.TestCase_BTECHGMRS50X1)
Testing BTECH GMRS-50X1 detect ... ok
test_edges (tests.TestCase_BTECHGMRS50X1)
Testing BTECH GMRS-50X1 edges ... ok
test_settings (tests.TestCase_BTECHGMRS50X1)
Testing BTECH GMRS-50X1 settings ... ok
test_banks (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR banks ... ok
test_brute_force (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR brute force ... ok
test_clone (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR clone ... ok
test_copy_all (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR copy all ... ok
test_detect (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR detect ... ok
test_edges (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR edges ... ok
test_settings (tests.TestCase_YaesuVX8DR)
Testing Yaesu VX-8DR settings ... ok
test_banks (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR banks ... ok
test_brute_force (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR brute force ... ok
test_clone (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR clone ... ok
test_copy_all (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR copy all ... ok
test_detect (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR detect ... ok
test_edges (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR edges ... ok
test_settings (tests.TestCase_YaesuFT4XR)
Testing Yaesu FT-4XR settings ... ok
test_banks (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH brute force ... ok
test_clone (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH clone ... ok
test_copy_all (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH copy all ... ok
test_detect (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH detect ... ok
test_edges (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH edges ... ok
test_settings (tests.TestCase_JetstreamJT270MH)
Testing Jetstream JT270MH settings ... ok
test_banks (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D brute force ... ok
test_clone (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D clone ... ok
test_copy_all (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D copy all ... ok
test_detect (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D detect ... ok
test_edges (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D edges ... ok
test_settings (tests.TestCase_QYTKT7900D)
Testing QYT KT7900D settings ... ok
test_banks (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 brute force ... ok
test_clone (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 copy all ... ok
test_detect (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 detect ... ok
test_edges (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 edges ... ok
test_settings (tests.TestCase_WouxunKGUV6)
Testing Wouxun KG-UV6 settings ... ok
test_banks (tests.TestCase_IcomICP7)
Testing Icom IC-P7 banks ... ok
test_brute_force (tests.TestCase_IcomICP7)
Testing Icom IC-P7 brute force ... ok
test_clone (tests.TestCase_IcomICP7)
Testing Icom IC-P7 clone ... ok
test_copy_all (tests.TestCase_IcomICP7)
Testing Icom IC-P7 copy all ... ok
test_detect (tests.TestCase_IcomICP7)
Testing Icom IC-P7 detect ... ok
test_edges (tests.TestCase_IcomICP7)
Testing Icom IC-P7 edges ... ok
test_settings (tests.TestCase_IcomICP7)
Testing Icom IC-P7 settings ... ok
test_banks (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 brute force ... ok
test_clone (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 clone ... ok
test_copy_all (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 copy all ... ok
test_detect (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 detect ... ok
test_edges (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 edges ... ok
test_settings (tests.TestCase_YaesuFT817)
Testing Yaesu FT-817 settings ... ok
test_banks (tests.TestCase_BaofengF11)
Testing Baofeng F-11 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BaofengF11)
Testing Baofeng F-11 brute force ... ok
test_clone (tests.TestCase_BaofengF11)
Testing Baofeng F-11 clone ... ok
test_copy_all (tests.TestCase_BaofengF11)
Testing Baofeng F-11 copy all ... ok
test_detect (tests.TestCase_BaofengF11)
Testing Baofeng F-11 detect ... ok
test_edges (tests.TestCase_BaofengF11)
Testing Baofeng F-11 edges ... ok
test_settings (tests.TestCase_BaofengF11)
Testing Baofeng F-11 settings ... ok
test_banks (tests.TestCase_KYDIP620)
Testing KYD IP-620 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KYDIP620)
Testing KYD IP-620 brute force ... ok
test_clone (tests.TestCase_KYDIP620)
Testing KYD IP-620 clone ... ok
test_copy_all (tests.TestCase_KYDIP620)
Testing KYD IP-620 copy all ... ok
test_detect (tests.TestCase_KYDIP620)
Testing KYD IP-620 detect ... ok
test_edges (tests.TestCase_KYDIP620)
Testing KYD IP-620 edges ... ok
test_settings (tests.TestCase_KYDIP620)
Testing KYD IP-620 settings ... ok
test_banks (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 brute force ... ok
test_clone (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 clone ... ok
test_copy_all (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 copy all ... ok
test_detect (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 detect ... ok
test_edges (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 edges ... ok
test_settings (tests.TestCase_YaesuFT50)
Testing Yaesu FT-50 settings ... ok
test_banks (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 banks ... ok
test_brute_force (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 brute force ... ok
test_clone (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 clone ... ok
test_copy_all (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 copy all ... ok
test_detect (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 detect ... ok
test_edges (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 edges ... ok
test_settings (tests.TestCase_YaesuFT60)
Testing Yaesu FT-60 settings ... ok
test_banks (tests.TestCase_YaesuFT65E)
Testing Yaesu FT-65E banks ... ok
test_brute_force (tests.TestCase_YaesuFT65E)
Testing Yaesu FT-65E brute force ... ok
test_clone (tests.TestCase_YaesuFT65E)
Testing Yaesu FT-65E clone ... ok
test_copy_all (tests.TestCase_YaesuFT65E)
Testing Yaesu FT-65E copy all ... ok
test_detect (tests.TestCase_YaesuFT65E)
Testing Yaesu FT-65E detect ... ok
test_edges (tests.TestCase_YaesuFT65E)
Testing Yaesu FT-65E edges ... ok
test_settings (tests.TestCase_YaesuFT65E)
Testing Yaesu FT-65E settings ... ok
test_banks (tests.TestCase_BTECHGMRSV1)
Testing BTECH GMRS-V1 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BTECHGMRSV1)
Testing BTECH GMRS-V1 brute force ... ok
test_clone (tests.TestCase_BTECHGMRSV1)
Testing BTECH GMRS-V1 clone ... ok
test_copy_all (tests.TestCase_BTECHGMRSV1)
Testing BTECH GMRS-V1 copy all ... ok
test_detect (tests.TestCase_BTECHGMRSV1)
Testing BTECH GMRS-V1 detect ... ok
test_edges (tests.TestCase_BTECHGMRSV1)
Testing BTECH GMRS-V1 edges ... ok
test_settings (tests.TestCase_BTECHGMRSV1)
Testing BTECH GMRS-V1 settings ... ok
test_banks (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D brute force ... ok
test_clone (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D clone ... ok
test_copy_all (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D copy all ... ok
test_detect (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D detect ... ok
test_edges (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D edges ... ok
test_settings (tests.TestCase_WouxunKGUV8D)
Testing Wouxun KG-UV8D settings ... ok
test_banks (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D brute force ... ok
test_clone (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D clone ... ok
test_copy_all (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D copy all ... ok
test_detect (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D detect ... ok
test_edges (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D edges ... ok
test_settings (tests.TestCase_QYTKT8900D)
Testing QYT KT8900D settings ... ok
test_banks (tests.TestCase_BaofengUV3R)
Testing Baofeng UV-3R banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BaofengUV3R)
Testing Baofeng UV-3R brute force ... ok
test_clone (tests.TestCase_BaofengUV3R)
Testing Baofeng UV-3R clone ... ok
test_copy_all (tests.TestCase_BaofengUV3R)
Testing Baofeng UV-3R copy all ... ok
test_detect (tests.TestCase_BaofengUV3R)
Testing Baofeng UV-3R detect ... ok
test_edges (tests.TestCase_BaofengUV3R)
Testing Baofeng UV-3R edges ... ok
test_settings (tests.TestCase_BaofengUV3R)
Testing Baofeng UV-3R settings ... ok
test_banks (tests.TestCase_RadioddityGA510)
Testing Radioddity GA-510 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RadioddityGA510)
Testing Radioddity GA-510 brute force ... ok
test_clone (tests.TestCase_RadioddityGA510)
Testing Radioddity GA-510 clone ... ok
test_copy_all (tests.TestCase_RadioddityGA510)
Testing Radioddity GA-510 copy all ... ok
test_detect (tests.TestCase_RadioddityGA510)
Testing Radioddity GA-510 detect ... ok
test_edges (tests.TestCase_RadioddityGA510)
Testing Radioddity GA-510 edges ... ok
test_settings (tests.TestCase_RadioddityGA510)
Testing Radioddity GA-510 settings ... ok
test_banks (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND brute force ... ok
test_clone (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND clone ... ok
test_copy_all (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND copy all ... ok
test_detect (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND detect ... ok
test_edges (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND edges ... ok
test_settings (tests.TestCase_YaesuFT817ND)
Testing Yaesu FT-817ND settings ... ok
test_banks (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A brute force ... ok
test_clone (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A clone ... ok
test_copy_all (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A copy all ... ok
test_detect (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A detect ... ok
test_edges (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A edges ... ok
test_settings (tests.TestCase_IcomICQ7A)
Testing Icom IC-Q7A settings ... ok
test_banks (tests.TestCase_BTECHMURSV1)
Testing BTECH MURS-V1 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BTECHMURSV1)
Testing BTECH MURS-V1 brute force ... ok
test_clone (tests.TestCase_BTECHMURSV1)
Testing BTECH MURS-V1 clone ... ok
test_copy_all (tests.TestCase_BTECHMURSV1)
Testing BTECH MURS-V1 copy all ... ok
test_detect (tests.TestCase_BTECHMURSV1)
Testing BTECH MURS-V1 detect ... ok
test_edges (tests.TestCase_BTECHMURSV1)
Testing BTECH MURS-V1 edges ... skipped 'No mutable memory locations found'
test_settings (tests.TestCase_BTECHMURSV1)
Testing BTECH MURS-V1 settings ... ok
test_banks (tests.TestCase_RadioddityR2)
Testing Radioddity R2 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RadioddityR2)
Testing Radioddity R2 brute force ... ok
test_clone (tests.TestCase_RadioddityR2)
Testing Radioddity R2 clone ... ok
test_copy_all (tests.TestCase_RadioddityR2)
Testing Radioddity R2 copy all ... ok
test_detect (tests.TestCase_RadioddityR2)
Testing Radioddity R2 detect ... ok
test_edges (tests.TestCase_RadioddityR2)
Testing Radioddity R2 edges ... ok
test_settings (tests.TestCase_RadioddityR2)
Testing Radioddity R2 settings ... ok
test_banks (tests.TestCase_BTECHUV2501220)
Testing BTECH UV-2501+220 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BTECHUV2501220)
Testing BTECH UV-2501+220 brute force ... ok
test_clone (tests.TestCase_BTECHUV2501220)
Testing BTECH UV-2501+220 clone ... ok
test_copy_all (tests.TestCase_BTECHUV2501220)
Testing BTECH UV-2501+220 copy all ... ok
test_detect (tests.TestCase_BTECHUV2501220)
Testing BTECH UV-2501+220 detect ... ok
test_edges (tests.TestCase_BTECHUV2501220)
Testing BTECH UV-2501+220 edges ... ok
test_settings (tests.TestCase_BTECHUV2501220)
Testing BTECH UV-2501+220 settings ... ok
test_banks (tests.TestCase_RadtelT18)
Testing Radtel T18 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RadtelT18)
Testing Radtel T18 brute force ... ok
test_clone (tests.TestCase_RadtelT18)
Testing Radtel T18 clone ... ok
test_copy_all (tests.TestCase_RadtelT18)
Testing Radtel T18 copy all ... ok
test_detect (tests.TestCase_RadtelT18)
Testing Radtel T18 detect ... ok
test_edges (tests.TestCase_RadtelT18)
Testing Radtel T18 edges ... ok
test_settings (tests.TestCase_RadtelT18)
Testing Radtel T18 settings ... ok
test_banks (tests.TestCase_BTECHUV25X2)
Testing BTECH UV-25X2 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BTECHUV25X2)
Testing BTECH UV-25X2 brute force ... ok
test_clone (tests.TestCase_BTECHUV25X2)
Testing BTECH UV-25X2 clone ... ok
test_copy_all (tests.TestCase_BTECHUV25X2)
Testing BTECH UV-25X2 copy all ... ok
test_detect (tests.TestCase_BTECHUV25X2)
Testing BTECH UV-25X2 detect ... ok
test_edges (tests.TestCase_BTECHUV25X2)
Testing BTECH UV-25X2 edges ... ok
test_settings (tests.TestCase_BTECHUV25X2)
Testing BTECH UV-25X2 settings ... ok
test_banks (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE banks ... ok
test_brute_force (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE brute force ... ok
test_clone (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE clone ... ok
test_copy_all (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE copy all ... ok
test_detect (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE detect ... ok
test_edges (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE edges ... ok
test_settings (tests.TestCase_YaesuVX8GE)
Testing Yaesu VX-8GE settings ... ok
test_banks (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) brute force ... ok
test_clone (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) clone ... ok
test_copy_all (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) copy all ... ok
test_detect (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) detect ... ok
test_edges (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) edges ... ok
test_settings (tests.TestCase_YaesuFT817NDUS)
Testing Yaesu FT-817ND (US) settings ... ok
test_banks (tests.TestCase_KYDNC630A)
Testing KYD NC-630A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KYDNC630A)
Testing KYD NC-630A brute force ... ok
test_clone (tests.TestCase_KYDNC630A)
Testing KYD NC-630A clone ... ok
test_copy_all (tests.TestCase_KYDNC630A)
Testing KYD NC-630A copy all ... ok
test_detect (tests.TestCase_KYDNC630A)
Testing KYD NC-630A detect ... ok
test_edges (tests.TestCase_KYDNC630A)
Testing KYD NC-630A edges ... ok
test_settings (tests.TestCase_KYDNC630A)
Testing KYD NC-630A settings ... ok
test_banks (tests.TestCase_RetevisRT21)
Testing Retevis RT21 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT21)
Testing Retevis RT21 brute force ... ok
test_clone (tests.TestCase_RetevisRT21)
Testing Retevis RT21 clone ... ok
test_copy_all (tests.TestCase_RetevisRT21)
Testing Retevis RT21 copy all ... ok
test_detect (tests.TestCase_RetevisRT21)
Testing Retevis RT21 detect ... ok
test_edges (tests.TestCase_RetevisRT21)
Testing Retevis RT21 edges ... ok
test_settings (tests.TestCase_RetevisRT21)
Testing Retevis RT21 settings ... ok
test_banks (tests.TestCase_BaofengUV5R)
Testing Baofeng UV-5R banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BaofengUV5R)
Testing Baofeng UV-5R brute force ... ok
test_clone (tests.TestCase_BaofengUV5R)
Testing Baofeng UV-5R clone ... ok
test_copy_all (tests.TestCase_BaofengUV5R)
Testing Baofeng UV-5R copy all ... ok
test_detect (tests.TestCase_BaofengUV5R)
Testing Baofeng UV-5R detect ... ok
test_edges (tests.TestCase_BaofengUV5R)
Testing Baofeng UV-5R edges ... ok
test_settings (tests.TestCase_BaofengUV5R)
Testing Baofeng UV-5R settings ... ok
test_banks (tests.TestCase_IcomICT70)
Testing Icom IC-T70 banks ... ok
test_brute_force (tests.TestCase_IcomICT70)
Testing Icom IC-T70 brute force ... ok
test_clone (tests.TestCase_IcomICT70)
Testing Icom IC-T70 clone ... ok
test_copy_all (tests.TestCase_IcomICT70)
Testing Icom IC-T70 copy all ... ok
test_detect (tests.TestCase_IcomICT70)
Testing Icom IC-T70 detect ... ok
test_edges (tests.TestCase_IcomICT70)
Testing Icom IC-T70 edges ... ok
test_settings (tests.TestCase_IcomICT70)
Testing Icom IC-T70 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_BaofengUV6R)
Testing Baofeng UV-6R banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BaofengUV6R)
Testing Baofeng UV-6R brute force ... ok
test_clone (tests.TestCase_BaofengUV6R)
Testing Baofeng UV-6R clone ... ok
test_copy_all (tests.TestCase_BaofengUV6R)
Testing Baofeng UV-6R copy all ... ok
test_detect (tests.TestCase_BaofengUV6R)
Testing Baofeng UV-6R detect ... ok
test_edges (tests.TestCase_BaofengUV6R)
Testing Baofeng UV-6R edges ... ok
test_settings (tests.TestCase_BaofengUV6R)
Testing Baofeng UV-6R settings ... ok
test_banks (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H brute force ... ok
test_clone (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H clone ... ok
test_copy_all (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H copy all ... ok
test_detect (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H detect ... ok
test_edges (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H edges ... ok
test_settings (tests.TestCase_IcomICT7H)
Testing Icom IC-T7H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A brute force ... ok
test_clone (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A clone ... ok
test_copy_all (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A copy all ... ok
test_detect (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A detect ... ok
test_edges (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A edges ... ok
test_settings (tests.TestCase_IcomICT8A)
Testing Icom IC-T8A settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R banks ... ok
test_brute_force (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R brute force ... ok
test_clone (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R clone ... ok
test_copy_all (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R copy all ... ok
test_detect (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R detect ... ok
test_edges (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R edges ... ok
test_settings (tests.TestCase_YaesuVX8R)
Testing Yaesu VX-8R settings ... ok
test_banks (tests.TestCase_BaofengUVB5)
Testing Baofeng UV-B5 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BaofengUVB5)
Testing Baofeng UV-B5 brute force ... ok
test_clone (tests.TestCase_BaofengUVB5)
Testing Baofeng UV-B5 clone ... ok
test_copy_all (tests.TestCase_BaofengUVB5)
Testing Baofeng UV-B5 copy all ... ok
test_detect (tests.TestCase_BaofengUVB5)
Testing Baofeng UV-B5 detect ... ok
test_edges (tests.TestCase_BaofengUVB5)
Testing Baofeng UV-B5 edges ... ok
test_settings (tests.TestCase_BaofengUVB5)
Testing Baofeng UV-B5 settings ... ok
test_banks (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 banks ... ok
test_brute_force (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 brute force ... ok
test_clone (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 clone ... ok
test_copy_all (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 copy all ... ok
test_detect (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 detect ... ok
test_edges (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 edges ... ok
test_settings (tests.TestCase_IcomICV82U82)
Testing Icom IC-V82/U82 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_RetevisRT22)
Testing Retevis RT22 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT22)
Testing Retevis RT22 brute force ... ok
test_clone (tests.TestCase_RetevisRT22)
Testing Retevis RT22 clone ... ok
test_copy_all (tests.TestCase_RetevisRT22)
Testing Retevis RT22 copy all ... ok
test_detect (tests.TestCase_RetevisRT22)
Testing Retevis RT22 detect ... ok
test_edges (tests.TestCase_RetevisRT22)
Testing Retevis RT22 edges ... ok
test_settings (tests.TestCase_RetevisRT22)
Testing Retevis RT22 settings ... ok
test_banks (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) brute force ... ok
test_clone (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) clone ... ok
test_copy_all (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) copy all ... ok
test_detect (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) detect ... ok
test_edges (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) edges ... ok
test_settings (tests.TestCase_KenwoodTHD72clonemode)
Testing Kenwood TH-D72 (clone mode) settings ... ok
test_banks (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 brute force ... ok
test_clone (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 clone ... ok
test_copy_all (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 copy all ... ok
test_detect (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 detect ... ok
test_edges (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 edges ... ok
test_settings (tests.TestCase_YaesuFT818)
Testing Yaesu FT-818 settings ... ok
test_banks (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 brute force ... ok
test_clone (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 clone ... ok
test_copy_all (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 copy all ... ok
test_detect (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 detect ... ok
test_edges (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 edges ... ok
test_settings (tests.TestCase_BaojieBJ9900)
Testing Baojie BJ-9900 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_BTECHUV25X4)
Testing BTECH UV-25X4 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BTECHUV25X4)
Testing BTECH UV-25X4 brute force ... ok
test_clone (tests.TestCase_BTECHUV25X4)
Testing BTECH UV-25X4 clone ... ok
test_copy_all (tests.TestCase_BTECHUV25X4)
Testing BTECH UV-25X4 copy all ... ok
test_detect (tests.TestCase_BTECHUV25X4)
Testing BTECH UV-25X4 detect ... ok
test_edges (tests.TestCase_BTECHUV25X4)
Testing BTECH UV-25X4 edges ... ok
test_settings (tests.TestCase_BTECHUV25X4)
Testing BTECH UV-25X4 settings ... ok
test_banks (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A brute force ... ok
test_clone (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A clone ... ok
test_copy_all (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A copy all ... ok
test_detect (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A detect ... ok
test_edges (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A edges ... ok
test_settings (tests.TestCase_IcomICW32A)
Testing Icom IC-W32A settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G banks ... ok
test_brute_force (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G brute force ... ok
test_clone (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G clone ... ok
test_copy_all (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G copy all ... ok
test_detect (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G detect ... ok
test_edges (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G edges ... ok
test_settings (tests.TestCase_KenwoodTK272G)
Testing Kenwood TK-272G settings ... ok
test_banks (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 brute force ... ok
test_clone (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 clone ... ok
test_copy_all (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 copy all ... ok
test_detect (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 detect ... ok
test_edges (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 edges ... ok
test_settings (tests.TestCase_YaesuFT857897)
Testing Yaesu FT-857/897 settings ... ok
test_banks (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus brute force ... ok
test_clone (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus clone ... ok
test_copy_all (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus copy all ... ok
test_detect (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus detect ... ok
test_edges (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus edges ... ok
test_settings (tests.TestCase_BoblovX3Plus)
Testing Boblov X3Plus settings ... ok
test_banks (tests.TestCase_RetevisRT23)
Testing Retevis RT23 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT23)
Testing Retevis RT23 brute force ... ok
test_clone (tests.TestCase_RetevisRT23)
Testing Retevis RT23 clone ... ok
test_copy_all (tests.TestCase_RetevisRT23)
Testing Retevis RT23 copy all ... ok
test_detect (tests.TestCase_RetevisRT23)
Testing Retevis RT23 detect ... ok
test_edges (tests.TestCase_RetevisRT23)
Testing Retevis RT23 edges ... ok
test_settings (tests.TestCase_RetevisRT23)
Testing Retevis RT23 settings ... ok
test_banks (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) brute force ... ok
test_clone (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) clone ... ok
test_copy_all (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) copy all ... ok
test_detect (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) detect ... ok
test_edges (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) edges ... ok
test_settings (tests.TestCase_YaesuFT857897US)
Testing Yaesu FT-857/897 (US) settings ... ok
test_banks (tests.TestCase_RetevisRT26)
Testing Retevis RT26 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_RetevisRT26)
Testing Retevis RT26 brute force ... ok
test_clone (tests.TestCase_RetevisRT26)
Testing Retevis RT26 clone ... ok
test_copy_all (tests.TestCase_RetevisRT26)
Testing Retevis RT26 copy all ... ok
test_detect (tests.TestCase_RetevisRT26)
Testing Retevis RT26 detect ... ok
test_edges (tests.TestCase_RetevisRT26)
Testing Retevis RT26 edges ... ok
test_settings (tests.TestCase_RetevisRT26)
Testing Retevis RT26 settings ... ok
test_banks (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E brute force ... ok
test_clone (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E clone ... ok
test_copy_all (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E copy all ... ok
test_detect (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E detect ... ok
test_edges (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E edges ... ok
test_settings (tests.TestCase_IcomICW32E)
Testing Icom IC-W32E settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 banks ... ok
test_brute_force (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 brute force ... ok
test_clone (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 clone ... ok
test_copy_all (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 copy all ... ok
test_detect (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 detect ... ok
test_edges (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 edges ... ok
test_settings (tests.TestCase_YaesuFT8800)
Testing Yaesu FT-8800 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_BTECHUV5001)
Testing BTECH UV-5001 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BTECHUV5001)
Testing BTECH UV-5001 brute force ... ok
test_clone (tests.TestCase_BTECHUV5001)
Testing BTECH UV-5001 clone ... ok
test_copy_all (tests.TestCase_BTECHUV5001)
Testing BTECH UV-5001 copy all ... ok
test_detect (tests.TestCase_BTECHUV5001)
Testing BTECH UV-5001 detect ... ok
test_edges (tests.TestCase_BTECHUV5001)
Testing BTECH UV-5001 edges ... ok
test_settings (tests.TestCase_BTECHUV5001)
Testing BTECH UV-5001 settings ... ok
test_banks (tests.TestCase_CRTMicronUV)
Testing CRT Micron UV banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_CRTMicronUV)
Testing CRT Micron UV brute force ... ok
test_clone (tests.TestCase_CRTMicronUV)
Testing CRT Micron UV clone ... ok
test_copy_all (tests.TestCase_CRTMicronUV)
Testing CRT Micron UV copy all ... ok
test_detect (tests.TestCase_CRTMicronUV)
Testing CRT Micron UV detect ... ok
test_edges (tests.TestCase_CRTMicronUV)
Testing CRT Micron UV edges ... ok
test_settings (tests.TestCase_CRTMicronUV)
Testing CRT Micron UV settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_KenwoodTK3180K2)
Testing Kenwood TK-3180K2 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTK3180K2)
Testing Kenwood TK-3180K2 brute force ... ok
test_clone (tests.TestCase_KenwoodTK3180K2)
Testing Kenwood TK-3180K2 clone ... ok
test_copy_all (tests.TestCase_KenwoodTK3180K2)
Testing Kenwood TK-3180K2 copy all ... ok
test_detect (tests.TestCase_KenwoodTK3180K2)
Testing Kenwood TK-3180K2 detect ... ok
test_edges (tests.TestCase_KenwoodTK3180K2)
Testing Kenwood TK-3180K2 edges ... ok
test_settings (tests.TestCase_KenwoodTK3180K2)
Testing Kenwood TK-3180K2 settings ... ok
test_banks (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 brute force ... ok
test_clone (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 clone ... ok
test_copy_all (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 copy all ... ok
test_detect (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 detect ... ok
test_edges (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 edges ... ok
test_settings (tests.TestCase_YaesuFT8900)
Testing Yaesu FT-8900 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A brute force ... ok
test_clone (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A clone ... ok
test_copy_all (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A copy all ... ok
test_detect (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A detect ... ok
test_edges (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A edges ... ok
test_settings (tests.TestCase_FeidaxinFD268A)
Testing Feidaxin FD-268A settings ... ok
test_banks (tests.TestCase_BTECHUV50X2)
Testing BTECH UV-50X2 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BTECHUV50X2)
Testing BTECH UV-50X2 brute force ... ok
test_clone (tests.TestCase_BTECHUV50X2)
Testing BTECH UV-50X2 clone ... ok
test_copy_all (tests.TestCase_BTECHUV50X2)
Testing BTECH UV-50X2 copy all ... ok
test_detect (tests.TestCase_BTECHUV50X2)
Testing BTECH UV-50X2 detect ... ok
test_edges (tests.TestCase_BTECHUV50X2)
Testing BTECH UV-50X2 edges ... ok
test_settings (tests.TestCase_BTECHUV50X2)
Testing BTECH UV-50X2 settings ... ok
test_banks (tests.TestCase_IcomID31A)
Testing Icom ID-31A banks ... ok
test_brute_force (tests.TestCase_IcomID31A)
Testing Icom ID-31A brute force ... ok
test_clone (tests.TestCase_IcomID31A)
Testing Icom ID-31A clone ... ok
test_copy_all (tests.TestCase_IcomID31A)
Testing Icom ID-31A copy all ... ok
test_detect (tests.TestCase_IcomID31A)
Testing Icom ID-31A detect ... ok
test_edges (tests.TestCase_IcomID31A)
Testing Icom ID-31A edges ... ok
test_settings (tests.TestCase_IcomID31A)
Testing Icom ID-31A settings ... ok
test_banks (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G banks ... ok
test_brute_force (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G brute force ... ok
test_clone (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G clone ... ok
test_copy_all (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G copy all ... ok
test_detect (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G detect ... ok
test_edges (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G edges ... ok
test_settings (tests.TestCase_KenwoodTK760G)
Testing Kenwood TK-760G settings ... ok
test_banks (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B brute force ... ok
test_clone (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B clone ... ok
test_copy_all (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B copy all ... ok
test_detect (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B detect ... ok
test_edges (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B edges ... ok
test_settings (tests.TestCase_FeidaxinFD268B)
Testing Feidaxin FD-268B settings ... ok
test_banks (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 brute force ... ok
test_clone (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 clone ... ok
test_copy_all (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 copy all ... ok
test_detect (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 detect ... ok
test_edges (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 edges ... ok
test_settings (tests.TestCase_KenwoodTK8102)
Testing Kenwood TK-8102 settings ... ok
test_banks (tests.TestCase_BTECHUV50X3)
Testing BTECH UV-50X3 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_BTECHUV50X3)
Testing BTECH UV-50X3 brute force ... ok
test_clone (tests.TestCase_BTECHUV50X3)
Testing BTECH UV-50X3 clone ... ok
test_copy_all (tests.TestCase_BTECHUV50X3)
Testing BTECH UV-50X3 copy all ... ok
test_detect (tests.TestCase_BTECHUV50X3)
Testing BTECH UV-50X3 detect ... ok
test_edges (tests.TestCase_BTECHUV50X3)
Testing BTECH UV-50X3 edges ... ok
test_settings (tests.TestCase_BTECHUV50X3)
Testing BTECH UV-50X3 settings ... ok
test_banks (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D banks ... ok
test_brute_force (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D brute force ... ok
test_clone (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D clone ... ok
test_copy_all (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D copy all ... ok
test_detect (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D detect ... ok
test_edges (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D edges ... ok
test_settings (tests.TestCase_YaesuFT2D)
Testing Yaesu FT2D settings ... ok
test_banks (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B brute force ... ok
test_clone (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B clone ... ok
test_copy_all (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B copy all ... ok
test_detect (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B detect ... ok
test_edges (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B edges ... ok
test_settings (tests.TestCase_FeidaxinFD288B)
Testing Feidaxin FD-288B settings ... ok
test_banks (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 brute force ... ok
test_clone (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 clone ... ok
test_copy_all (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 copy all ... ok
test_detect (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 detect ... ok
test_edges (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 edges ... ok
test_settings (tests.TestCase_KenwoodTK8180)
Testing Kenwood TK-8180 settings ... ok
test_banks (tests.TestCase_IcomIC208H)
Testing Icom IC-208H banks ... ok
test_brute_force (tests.TestCase_IcomIC208H)
Testing Icom IC-208H brute force ... ok
test_clone (tests.TestCase_IcomIC208H)
Testing Icom IC-208H clone ... ok
test_copy_all (tests.TestCase_IcomIC208H)
Testing Icom IC-208H copy all ... ok
test_detect (tests.TestCase_IcomIC208H)
Testing Icom IC-208H detect ... ok
test_edges (tests.TestCase_IcomIC208H)
Testing Icom IC-208H edges ... ok
test_settings (tests.TestCase_IcomIC208H)
Testing Icom IC-208H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_IcomID51)
Testing Icom ID-51 banks ... ok
test_brute_force (tests.TestCase_IcomID51)
Testing Icom ID-51 brute force ... ok
test_clone (tests.TestCase_IcomID51)
Testing Icom ID-51 clone ... ok
test_copy_all (tests.TestCase_IcomID51)
Testing Icom ID-51 copy all ... ok
test_detect (tests.TestCase_IcomID51)
Testing Icom ID-51 detect ... ok
test_edges (tests.TestCase_IcomID51)
Testing Icom ID-51 edges ... ok
test_settings (tests.TestCase_IcomID51)
Testing Icom ID-51 settings ... ok
test_banks (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H brute force ... ok
test_clone (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H clone ... ok
test_copy_all (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H copy all ... ok
test_detect (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H detect ... ok
test_edges (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H edges ... ok
test_settings (tests.TestCase_IcomIC2100H)
Testing Icom IC-2100H settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_KenwoodTMD710GCloneMode)
Testing Kenwood TM-D710G_CloneMode banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTMD710GCloneMode)
Testing Kenwood TM-D710G_CloneMode brute force ... ok
test_clone (tests.TestCase_KenwoodTMD710GCloneMode)
Testing Kenwood TM-D710G_CloneMode clone ... ok
test_copy_all (tests.TestCase_KenwoodTMD710GCloneMode)
Testing Kenwood TM-D710G_CloneMode copy all ... ok
test_detect (tests.TestCase_KenwoodTMD710GCloneMode)
Testing Kenwood TM-D710G_CloneMode detect ... ok
test_edges (tests.TestCase_KenwoodTMD710GCloneMode)
Testing Kenwood TM-D710G_CloneMode edges ... ok
test_settings (tests.TestCase_KenwoodTMD710GCloneMode)
Testing Kenwood TM-D710G_CloneMode settings ... ok
test_banks (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D banks ... ok
test_brute_force (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D brute force ... ok
test_clone (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D clone ... ok
test_copy_all (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D copy all ... ok
test_detect (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D detect ... ok
test_edges (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D edges ... ok
test_settings (tests.TestCase_YaesuFT3D)
Testing Yaesu FT3D settings ... ok
test_banks (tests.TestCase_KenwoodTMD710CloneMode)
Testing Kenwood TM-D710_CloneMode banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTMD710CloneMode)
Testing Kenwood TM-D710_CloneMode brute force ... ok
test_clone (tests.TestCase_KenwoodTMD710CloneMode)
Testing Kenwood TM-D710_CloneMode clone ... ok
test_copy_all (tests.TestCase_KenwoodTMD710CloneMode)
Testing Kenwood TM-D710_CloneMode copy all ... ok
test_detect (tests.TestCase_KenwoodTMD710CloneMode)
Testing Kenwood TM-D710_CloneMode detect ... ok
test_edges (tests.TestCase_KenwoodTMD710CloneMode)
Testing Kenwood TM-D710_CloneMode edges ... ok
test_settings (tests.TestCase_KenwoodTMD710CloneMode)
Testing Kenwood TM-D710_CloneMode settings ... ok
test_banks (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus banks ... ok
test_brute_force (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus brute force ... ok
test_clone (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus clone ... ok
test_copy_all (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus copy all ... ok
test_detect (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus detect ... ok
test_edges (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus edges ... ok
test_settings (tests.TestCase_IcomID51Plus)
Testing Icom ID-51 Plus settings ... ok
test_banks (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D brute force ... ok
test_clone (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D clone ... ok
test_copy_all (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D copy all ... ok
test_detect (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D detect ... ok
test_edges (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D edges ... ok
test_settings (tests.TestCase_YaesuFTM3200D)
Testing Yaesu FTM-3200D settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode brute force ... ok
test_clone (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode clone ... ok
test_copy_all (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode copy all ... ok
test_detect (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode detect ... ok
test_edges (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode edges ... ok
test_settings (tests.TestCase_KenwoodTS480CloneMode)
Testing Kenwood TS-480_CloneMode settings ... ok
test_banks (tests.TestCase_IcomID800H)
Testing Icom ID-800H banks ... ok
test_brute_force (tests.TestCase_IcomID800H)
Testing Icom ID-800H brute force ... ok
test_clone (tests.TestCase_IcomID800H)
Testing Icom ID-800H clone ... ok
test_copy_all (tests.TestCase_IcomID800H)
Testing Icom ID-800H copy all ... ok
test_detect (tests.TestCase_IcomID800H)
Testing Icom ID-800H detect ... ok
test_edges (tests.TestCase_IcomID800H)
Testing Icom ID-800H edges ... ok
test_settings (tests.TestCase_IcomID800H)
Testing Icom ID-800H settings ... ok
test_banks (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode brute force ... ok
test_clone (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode clone ... ok
test_copy_all (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode copy all ... ok
test_detect (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode detect ... ok
test_edges (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode edges ... ok
test_settings (tests.TestCase_KenwoodTS590SGCloneMode)
Testing Kenwood TS-590SG_CloneMode settings ... ok
test_banks (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 brute force ... ok
test_clone (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 clone ... ok
test_copy_all (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 copy all ... ok
test_detect (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 detect ... ok
test_edges (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 edges ... ok
test_settings (tests.TestCase_YaesuFTM350)
Testing Yaesu FTM-350 settings ... skipped 'Settings not supported'
test_banks (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV brute force ... ok
test_clone (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV clone ... ok
test_copy_all (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV copy all ... ok
test_detect (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV detect ... ok
test_edges (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV edges ... ok
test_settings (tests.TestCase_LUITONLT725UV)
Testing LUITON LT-725UV settings ... ok
test_banks (tests.TestCase_YaesuFTM7250D)
Testing Yaesu FTM-7250D banks ... skipped 'Banks not supported'
test_brute_force (tests.TestCase_YaesuFTM7250D)
Testing Yaesu FTM-7250D brute force ... ok
test_clone (tests.TestCase_YaesuFTM7250D)
Testing Yaesu FTM-7250D clone ... ok
test_copy_all (tests.TestCase_YaesuFTM7250D)
Testing Yaesu FTM-7250D copy all ... ok
test_detect (tests.TestCase_YaesuFTM7250D)
Testing Yaesu FTM-7250D detect ... ok
test_edges (tests.TestCase_YaesuFTM7250D)
Testing Yaesu FTM-7250D edges ... ok
test_settings (tests.TestCase_YaesuFTM7250D)
Testing Yaesu FTM-7250D settings ... skipped 'Settings not supported'
----------------------------------------------------------------------
Ran 1001 tests in 403.135s
OK (skipped=141)
struct memory {
bbcd rx_freq[4];
bbcd tx_freq[4];
lbcd rx_tone[2];
lbcd tx_tone[2];
u8 unknown10:5,
highpower:1,
unknown11:2;
u8 unknown20:4,
narrow:1,
unknown21:3;
u8 unknown31:1,
scanadd:1,
unknown32:6;
u8 unknown4;
};
struct name {
char name[7];
};
#seekto 0x0010;
struct memory channels[128];
#seekto 0x08C0;
struct name names[128];
#seekto 0x2020;
struct memory vfo1;
struct memory vfo2;
style create: /chirp/.tox/style
style installdeps: pep8==1.6.2, future
style inst: /chirp/.tox/.tmp/package/1/chirp-0.3.0dev.zip
style installed: DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.,chirp==0.3.0.dev0,configparser==3.7.4,contextlib2==0.5.5,filelock==3.0.12,future==0.15.2,importlib-metadata==0.18,Mako==1.0.3,MarkupSafe==0.23,mercurial==3.7.3,packaging==19.0,pathlib2==2.3.4,pep8==1.6.2,pluggy==0.12.0,py==1.8.0,pygobject==3.20.0,pyparsing==2.4.0,pyserial==3.0.1,scandir==1.10.0,six==1.12.0,toml==0.10.0,tox==3.13.2,virtualenv==16.6.1,zipp==0.5.2
style run-test-pre: PYTHONHASHSEED='4278022488'
style run-test: commands[0] | python ./tools/cpep8.py
___________________________________ summary ____________________________________
unit: commands succeeded
driver: commands succeeded
style: commands succeeded
congratulations :)
Email was triggered for: Success
Sending email for trigger: Success
1
0
07 Oct '20
Hi all,
The attached patch adds support for Quansheng UV-R50 radios as requested in
#6129. I've added support for all documented options.
I hit a small issue in TestCopyAll as one of the test cases involves a
channel with a name containing spaces, and this radio doesn't know how to
encode a space in a channel name as far as I can tell, so I added support
in that test to ignore this narrow class of failures. I'm happy to change
for another approach if it is preferred.
As others on the list have noted, I had to
rm tests/images/Puxing_PX-777.img to make tests pass, but that failure
seems unrelated to my changes. Without that file, all tox tests pass.
Per guidelines I'm attaching Quansheng_UV-R50.img at
https://chirp.danplanet.com/issues/6129
Full commit message:
"""
[uvr50] New model: Quansheng UV-R50 (fixes #6129)
* Adds support for Quansheng UV-R50 radios.
* This may or may not support all UV-R50 radios, I only have one model
to try it with and information on variants is scarce.
* This supports all options documented in the manual.
* Fix TestCopyAll to not fail radios that don't support certain
characters in channel names, since this one doesn't do spaces.
"""
Best,
--
Uriel Corfa
2
1
[chirp_devel] [PATCH] Normalized dialog box affirmative buttons to follow gnome human interface guidelines and added alternative button order for other platforms. Fixes #8271
by Kosta A. 07 Oct '20
by Kosta A. 07 Oct '20
07 Oct '20
# HG changeset patch
# User Kosta A. <ve7kcy(a)gmail.com>
# Date 1600853926 25200
# Wed Sep 23 02:38:46 2020 -0700
# Node ID 42b1e50fcf7a40ab591074fba9f3808805590f2f
# Parent 1a49ad2e84e305b56a3bdeb823266e1219f34e02
Normalized dialog box affirmative buttons to follow gnome human interface guidelines and added alternative button order for other platforms. Fixes #8271.
diff --git a/chirp/ui/bandplans.py b/chirp/ui/bandplans.py
--- a/chirp/ui/bandplans.py
+++ b/chirp/ui/bandplans.py
@@ -47,7 +47,7 @@
# Check for duplicates.
duplicates = [x for x in plan.BANDS if x == band]
if len(duplicates) > 1:
- LOG.warn("Bandplan %s has duplicates %s" %
+ LOG.debug("Bandplan %s has duplicates %s" %
(name, duplicates))
# Add repeater inputs.
rpt_input = band.inverse()
diff --git a/chirp/ui/clone.py b/chirp/ui/clone.py
--- a/chirp/ui/clone.py
+++ b/chirp/ui/clone.py
@@ -44,13 +44,16 @@
class CloneSettingsDialog(gtk.Dialog):
- def __make_field(self, label, widget):
- l = gtk.Label(label)
- self.__table.attach(l, 0, 1, self.__row, self.__row+1)
- self.__table.attach(widget, 1, 2, self.__row, self.__row+1)
+ def __make_field(self, text, widget):
+ label = gtk.Label(text)
+ label.set_alignment(1.0, 0.5)
+ self.__table.attach(label, 0, 1, self.__row, self.__row+1,
+ xpadding=6, ypadding=3)
+ self.__table.attach(widget, 1, 2, self.__row, self.__row+1,
+ xpadding=6, ypadding=3)
self.__row += 1
- l.show()
+ label.show()
widget.show()
def __make_port(self, port):
@@ -123,17 +126,15 @@
def __make_ui(self, settings):
self.__table = gtk.Table(3, 2)
- self.__table.set_row_spacings(3)
- self.__table.set_col_spacings(10)
self.__row = 0
self.__port = self.__make_port(settings and settings.port or None)
self.__modl = self.__make_model()
self.__vend = self.__make_vendor(self.__modl)
- self.__make_field(_("Port"), self.__port)
- self.__make_field(_("Vendor"), self.__vend)
- self.__make_field(_("Model"), self.__modl)
+ self.__make_field(_("Serial Port:"), self.__port)
+ self.__make_field(_("Vendor:"), self.__vend)
+ self.__make_field(_("Model:"), self.__modl)
if settings and settings.radio_class:
common.combo_select(self.__vend, settings.radio_class.VENDOR)
@@ -144,21 +145,21 @@
self.__modl.set_sensitive(False)
self.__table.show()
- self.vbox.pack_start(self.__table, 1, 1, 1)
+ self.vbox.pack_start(self.__table, False, True, 2)
def __init__(self, settings=None, parent=None, title=_("Radio")):
buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_OK, gtk.RESPONSE_OK)
gtk.Dialog.__init__(self, title,
parent=parent,
+ buttons=buttons,
flags=gtk.DIALOG_MODAL)
+ self.set_default_response(gtk.RESPONSE_OK)
+ self.set_alternative_button_order([gtk.RESPONSE_OK,
+ gtk.RESPONSE_CANCEL])
+
self.__make_ui(settings)
- self.__cancel_button = self.add_button(gtk.STOCK_CANCEL,
- gtk.RESPONSE_CANCEL)
- self.__okay_button = self.add_button(gtk.STOCK_OK,
- gtk.RESPONSE_OK)
- self.__okay_button.grab_default()
- self.__okay_button.grab_focus()
+
def run(self):
r = gtk.Dialog.run(self)
diff --git a/chirp/ui/editorset.py b/chirp/ui/editorset.py
--- a/chirp/ui/editorset.py
+++ b/chirp/ui/editorset.py
@@ -276,7 +276,7 @@
choices = [x.VARIANT for x in devices]
d = inputdialog.ChoiceDialog(choices)
- text = _("The {vendor} {model} has multiple independent sub-devices")
+ text = _("The {vendor} {model} has multiple independent sub-devices.")
d.label.set_text(text.format(vendor=radio.VENDOR, model=radio.MODEL) +
os.linesep + _("Choose one to import from:"))
r = d.run()
diff --git a/chirp/ui/importdialog.py b/chirp/ui/importdialog.py
--- a/chirp/ui/importdialog.py
+++ b/chirp/ui/importdialog.py
@@ -396,19 +396,19 @@
all.connect("clicked", self.__select_all, True)
all.set_size_request(50, 25)
all.show()
- hbox.pack_start(all, 0, 0, 0)
+ hbox.pack_start(all, False, False, 1)
none = gtk.Button(_("None"))
none.connect("clicked", self.__select_all, False)
none.set_size_request(50, 25)
none.show()
- hbox.pack_start(none, 0, 0, 0)
+ hbox.pack_start(none, False, False, 1)
inv = gtk.Button(_("Inverse"))
inv.connect("clicked", self.__select_all, None)
inv.set_size_request(50, 25)
inv.show()
- hbox.pack_start(inv, 0, 0, 0)
+ hbox.pack_start(inv, False, False, 1)
frame = gtk.Frame(_("Select"))
frame.show()
@@ -424,49 +424,49 @@
incr.connect("clicked", self.__incrnew, 100)
incr.set_size_request(50, 25)
incr.show()
- hbox.pack_start(incr, 0, 0, 0)
+ hbox.pack_start(incr, False, False, 1)
incr = gtk.Button("+10")
incr.connect("clicked", self.__incrnew, 10)
incr.set_size_request(50, 25)
incr.show()
- hbox.pack_start(incr, 0, 0, 0)
+ hbox.pack_start(incr, False, False, 1)
incr = gtk.Button("+1")
incr.connect("clicked", self.__incrnew, 1)
incr.set_size_request(50, 25)
incr.show()
- hbox.pack_start(incr, 0, 0, 0)
+ hbox.pack_start(incr, False, False, 1)
decr = gtk.Button("-1")
decr.connect("clicked", self.__incrnew, -1)
decr.set_size_request(50, 25)
decr.show()
- hbox.pack_start(decr, 0, 0, 0)
+ hbox.pack_start(decr, False, False, 1)
decr = gtk.Button("-10")
decr.connect("clicked", self.__incrnew, -10)
decr.set_size_request(50, 25)
decr.show()
- hbox.pack_start(decr, 0, 0, 0)
+ hbox.pack_start(decr, False, False, 1)
decr = gtk.Button("-100")
decr.connect("clicked", self.__incrnew, -100)
decr.set_size_request(50, 25)
decr.show()
- hbox.pack_start(decr, 0, 0, 0)
+ hbox.pack_start(decr, False, False, 1)
auto = gtk.Button(_("Auto"))
auto.connect("clicked", self.__autonew)
auto.set_size_request(50, 25)
auto.show()
- hbox.pack_start(auto, 0, 0, 0)
+ hbox.pack_start(auto, False, False, 1)
revr = gtk.Button(_("Reverse"))
revr.connect("clicked", self.__revrnew)
revr.set_size_request(50, 25)
revr.show()
- hbox.pack_start(revr, 0, 0, 0)
+ hbox.pack_start(revr, False, False, 1)
frame = gtk.Frame(_("Adjust New Location"))
frame.show()
@@ -482,7 +482,7 @@
confirm.connect("toggled", __set_confirm)
confirm.show()
- hbox.pack_start(confirm, 0, 0, 0)
+ hbox.pack_start(confirm, False, False, 1)
frame = gtk.Frame(_("Options"))
frame.add(hbox)
@@ -494,16 +494,16 @@
def make_controls(self):
hbox = gtk.HBox(False, 2)
- hbox.pack_start(self.make_select(), 0, 0, 0)
- hbox.pack_start(self.make_adjust(), 0, 0, 0)
+ hbox.pack_start(self.make_select(), False, False, 1)
+ hbox.pack_start(self.make_adjust(), False, False, 1)
# hbox.pack_start(self.make_options(), 0, 0, 0)
hbox.show()
return hbox
def build_ui(self):
- self.vbox.pack_start(self.make_view(), 1, 1, 1)
- self.vbox.pack_start(self.make_controls(), 0, 0, 0)
+ self.vbox.pack_start(self.make_view(), True, True, 1)
+ self.vbox.pack_start(self.make_controls(), False, False, 0)
def record_use_of(self, number):
lo, hi = self.dst_radio.get_features().memory_bounds
@@ -578,12 +578,17 @@
ACTION = _("Import")
def __init__(self, src_radio, dst_radio, parent=None):
+ buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
+ gtk.STOCK_OK, gtk.RESPONSE_OK)
gtk.Dialog.__init__(self,
- buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
- gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL),
title=self.TITLE,
+ buttons=buttons,
parent=parent)
+ self.set_default_response(gtk.RESPONSE_OK)
+ self.set_alternative_button_order([gtk.RESPONSE_OK,
+ gtk.RESPONSE_CANCEL])
+
self.col_import = 0
self.col_nloc = 1
self.col_oloc = 2
diff --git a/chirp/ui/inputdialog.py b/chirp/ui/inputdialog.py
--- a/chirp/ui/inputdialog.py
+++ b/chirp/ui/inputdialog.py
@@ -22,69 +22,91 @@
LOG = logging.getLogger(__name__)
-class TextInputDialog(gtk.Dialog):
- def respond_ok(self, _):
- self.response(gtk.RESPONSE_OK)
+class ChoiceDialog(gtk.Dialog):
- def __init__(self, **args):
- buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OK, gtk.RESPONSE_OK)
- gtk.Dialog.__init__(self, buttons=buttons, **args)
+ def _make_ui(self, choices):
+ self._table = gtk.Table(1, 2)
self.label = gtk.Label()
- self.label.set_size_request(300, 100)
- # pylint: disable-msg=E1101
- self.vbox.pack_start(self.label, 1, 1, 0)
-
- self.text = gtk.Entry()
- self.text.connect("activate", self.respond_ok, None)
- # pylint: disable-msg=E1101
- self.vbox.pack_start(self.text, 1, 1, 0)
-
+ self.label.set_alignment(0.0, 0.5)
+ self.label.set_size_request(384, -1)
self.label.show()
- self.text.show()
-
-
-class ChoiceDialog(gtk.Dialog):
- editable = False
-
- def __init__(self, choices, **args):
- buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OK, gtk.RESPONSE_OK)
- gtk.Dialog.__init__(self, buttons=buttons, **args)
-
- self.label = gtk.Label()
- self.label.set_size_request(300, 100)
- # pylint: disable-msg=E1101
- self.vbox.pack_start(self.label, 1, 1, 0)
- self.label.show()
+ self._table.attach(self.label, 0, 1, 0, 1, xpadding=6, ypadding=3)
try:
default = choices[0]
except IndexError:
default = None
- self.choice = make_choice(sorted(choices), self.editable, default)
- # pylint: disable-msg=E1101
- self.vbox.pack_start(self.choice, 1, 1, 0)
+ self.choice = make_choice(sorted(choices), False, default)
self.choice.show()
+ self._table.attach(self.choice, 0, 1, 1, 2, xpadding=6, ypadding=3)
+
+ self._table.show()
+ self.vbox.pack_start(self._table, True, True, 2)
+
+ def __init__(self, choices, **args):
+ buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
+ gtk.STOCK_OK, gtk.RESPONSE_OK)
+ gtk.Dialog.__init__(self, buttons=buttons, **args)
self.set_default_response(gtk.RESPONSE_OK)
+ self.set_alternative_button_order([gtk.RESPONSE_OK,
+ gtk.RESPONSE_CANCEL])
+
+ self._make_ui(choices)
-class EditableChoiceDialog(ChoiceDialog):
- editable = True
+class FieldDialog(gtk.Dialog):
+
+ def _make_ui(self):
+ self._table = gtk.Table(1, 2)
+ self._table.show()
+ self._row = 0
+
+ self.vbox.pack_start(self._table, True, True, 2)
+
+ def __init__(self, **args):
+ buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
+ gtk.STOCK_OK, gtk.RESPONSE_OK)
+ gtk.Dialog.__init__(self, buttons=buttons, **args)
+ self.set_default_response(gtk.RESPONSE_OK)
+ self.set_alternative_button_order([gtk.RESPONSE_OK,
+ gtk.RESPONSE_CANCEL])
+
+ self._fields = {}
+
+ self._make_ui()
- def __init__(self, choices, **args):
- ChoiceDialog.__init__(self, choices, **args)
+ def response(self, _):
+ LOG.debug("Blocking response")
+ return
+
+ def add_field(self, name, widget, validator=None):
+ label = gtk.Label(name + ":")
+ label.set_alignment(1.0, 0.5)
+ label.show()
- self.choice.child.set_activates_default(True)
+ widget.set_size_request(160, -1)
+ widget.show()
+
+ self._table.attach(label, 0, 1, self._row, self._row+1,
+ xpadding=6, ypadding=3)
+ self._table.attach(widget, 1, 2, self._row, self._row+1,
+ xpadding=6, ypadding=3)
+ self._row += 1
+
+ self._fields[name] = widget
+
+ def get_field(self, name):
+ return self._fields.get(name, None)
class ExceptionDialog(gtk.MessageDialog):
def __init__(self, exception, **args):
gtk.MessageDialog.__init__(self, buttons=gtk.BUTTONS_OK,
type=gtk.MESSAGE_ERROR, **args)
+ self.set_default_response(gtk.RESPONSE_OK)
self.set_property("text", _("An error has occurred"))
self.format_secondary_text(str(exception))
@@ -94,64 +116,3 @@
LOG.error("--- Exception Dialog: %s ---" % exception)
LOG.error(traceback.format_exc(limit=100))
LOG.error("----------------------------")
-
-
-class FieldDialog(gtk.Dialog):
- def __init__(self, **kwargs):
- if "buttons" not in kwargs.keys():
- kwargs["buttons"] = (gtk.STOCK_OK, gtk.RESPONSE_OK,
- gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
-
- self.__fields = {}
- self.set_default_response(gtk.RESPONSE_OK)
-
- gtk.Dialog.__init__(self, **kwargs)
-
- def response(self, _):
- LOG.debug("Blocking response")
- return
-
- def add_field(self, label, widget, validator=None):
- box = gtk.HBox(True, 2)
-
- lab = gtk.Label(label)
- lab.show()
-
- widget.set_size_request(150, -1)
- widget.show()
-
- box.pack_start(lab, 0, 0, 0)
- box.pack_start(widget, 0, 0, 0)
- box.show()
-
- # pylint: disable-msg=E1101
- self.vbox.pack_start(box, 0, 0, 0)
-
- self.__fields[label] = widget
-
- def get_field(self, label):
- return self.__fields.get(label, None)
-
-
-class OverwriteDialog(gtk.MessageDialog):
- def __init__(self, filename):
- gtk.Dialog.__init__(self,
- buttons=(_("Overwrite"), gtk.RESPONSE_OK,
- gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
-
- self.set_property("text", _("File Exists"))
-
- text = \
- _("The file {name} already exists. "
- "Do you want to overwrite it?").format(name=filename)
-
- self.format_secondary_text(text)
-
-if __name__ == "__main__":
- # pylint: disable-msg=C0103
- d = FieldDialog(buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK))
- d.add_field("Foo", gtk.Entry())
- d.add_field("Bar", make_choice(["A", "B"]))
- d.run()
- gtk.main()
- d.destroy()
diff --git a/chirp/ui/mainapp.py b/chirp/ui/mainapp.py
--- a/chirp/ui/mainapp.py
+++ b/chirp/ui/mainapp.py
@@ -161,9 +161,12 @@
esets.append(self.tabs.get_nth_page(i))
d = gtk.Dialog(title="Diff Radios",
- buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
- gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL),
+ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
+ gtk.STOCK_OK, gtk.RESPONSE_OK),
parent=self)
+ d.set_default_response(gtk.RESPONSE_OK)
+ d.set_alternative_button_order([gtk.RESPONSE_OK,
+ gtk.RESPONSE_CANCEL])
label = gtk.Label("")
label.set_markup("<b>-1</b> for either Mem # does a full-file hex " +
@@ -296,8 +299,11 @@
choice = miscwidgets.make_choice(sorted(radiolist.keys()), False,
sorted(radiolist.keys())[0])
d = gtk.Dialog(title="Detection Failed",
- buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
- gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
+ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
+ gtk.STOCK_OK, gtk.RESPONSE_OK))
+ d.set_default_response(gtk.RESPONSE_OK)
+ d.set_alternative_button_order([gtk.RESPONSE_OK,
+ gtk.RESPONSE_CANCEL])
d.vbox.pack_start(lab, 0, 0, 0)
d.vbox.pack_start(choice, 0, 0, 0)
d.vbox.set_spacing(5)
@@ -481,10 +487,22 @@
return
if os.path.exists(fname):
- dlg = inputdialog.OverwriteDialog(fname)
- owrite = dlg.run()
+ dlg = miscwidgets.YesNoDialog(
+ title=_("Save As"),
+ parent=self,
+ buttons=(gtk.STOCK_NO, gtk.RESPONSE_NO,
+ gtk.STOCK_YES, gtk.RESPONSE_YES))
+ dlg.set_default_response(gtk.RESPONSE_NO)
+ dlg.set_alternative_button_order([gtk.RESPONSE_YES,
+ gtk.RESPONSE_NO])
+ dlg.set_text(
+ _("{name} already exists." + os.linesep +
+ "Do you want to replace it?").format(name=fname))
+
+ res = dlg.run()
dlg.destroy()
- if owrite == gtk.RESPONSE_OK:
+
+ if res == gtk.RESPONSE_OK:
break
else:
break
@@ -812,10 +830,16 @@
if eset.is_modified():
dlg = miscwidgets.YesNoDialog(
- title=_("Save Changes?"), parent=self,
- buttons=(gtk.STOCK_YES, gtk.RESPONSE_YES,
+ title=_("Save Changes"),
+ parent=self,
+ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_NO, gtk.RESPONSE_NO,
- gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
+ gtk.STOCK_YES, gtk.RESPONSE_YES))
+ dlg.set_default_response(gtk.RESPONSE_YES)
+ dlg.set_alternative_button_order([gtk.RESPONSE_YES,
+ gtk.RESPONSE_NO,
+ gtk.RESPONSE_CANCEL])
+
dlg.set_text(_("File is modified, save changes before closing?"))
res = dlg.run()
dlg.destroy()
@@ -1407,18 +1431,30 @@
else:
defname = "radio"
- filen = platform.get_platform().gui_save_file(default_name=defname,
+ fname = platform.get_platform().gui_save_file(default_name=defname,
types=types)
- if not filen:
+ if not fname:
return
- if os.path.exists(filen):
- dlg = inputdialog.OverwriteDialog(filen)
- owrite = dlg.run()
+ if os.path.exists(fname):
+ dlg = miscwidgets.YesNoDialog(
+ title=_("Export"),
+ parent=self,
+ buttons=(gtk.STOCK_NO, gtk.RESPONSE_NO,
+ gtk.STOCK_YES, gtk.RESPONSE_YES))
+ dlg.set_default_response(gtk.RESPONSE_NO)
+ dlg.set_alternative_button_order([gtk.RESPONSE_YES,
+ gtk.RESPONSE_NO])
+ dlg.set_text(
+ _("{name} already exists." + os.linesep +
+ "Do you want to replace it?").format(name=fname))
+
+ res = dlg.run()
dlg.destroy()
- if owrite != gtk.RESPONSE_OK:
+
+ if res != gtk.RESPONSE_OK:
return
- os.remove(filen)
+ os.remove(fname)
count = eset.do_export(filen)
reporting.report_model_usage(eset.rthread.radio, "export", count > 0)
@@ -1472,28 +1508,43 @@
radio_name = "%s %s %s" % (eset.rthread.radio.VENDOR,
eset.rthread.radio.MODEL,
eset.rthread.radio.VARIANT)
- d = gtk.Dialog(title=_("Select Columns"),
+ d = gtk.Dialog(title=_("Choose Columns"),
parent=self,
- buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
- gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
-
- vbox = gtk.VBox()
- vbox.show()
- sw = gtk.ScrolledWindow()
- sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- sw.add_with_viewport(vbox)
- sw.show()
- d.vbox.pack_start(sw, 1, 1, 1)
+ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
+ gtk.STOCK_OK, gtk.RESPONSE_OK))
+ d.set_default_response(gtk.RESPONSE_OK)
+ d.set_alternative_button_order([gtk.RESPONSE_OK,
+ gtk.RESPONSE_CANCEL])
d.set_size_request(-1, 300)
d.set_resizable(False)
- labelstr = _("Visible columns for {radio}").format(radio=radio_name)
- label = gtk.Label(labelstr)
+ text = _("Select the columns you want to display for {radio}.").format(radio=radio_name)
+ label = gtk.Label(text)
+ label.set_line_wrap(True)
+ label.set_size_request(240, -1)
label.show()
- vbox.pack_start(label)
+ d.vbox.pack_start(label, False, False, 2)
+
+ model = gtk.ListStore(bool, str)
+ view = gtk.TreeView(model)
+ view.set_headers_visible(False)
+ view.show()
- fields = []
- memedit = eset.get_current_editor() # .editors["memedit"]
+ def _toggle(rend, path, model, *ignore):
+ if path is not None:
+ itr = model.get_iter(path)
+ model[itr][0] = not model[itr][0]
+
+ rend = gtk.CellRendererToggle()
+ rend.connect("toggled", _toggle, model)
+ col = gtk.TreeViewColumn(None, rend, active=0)
+ view.append_column(col)
+
+ rend = gtk.CellRendererText()
+ col = gtk.TreeViewColumn(None, rend, text=1)
+ view.append_column(col)
+
+ memedit = eset.get_current_editor()
unsupported = memedit.get_unsupported_columns()
for colspec in memedit.cols:
if colspec[0].startswith("_"):
@@ -1502,20 +1553,22 @@
continue
label = colspec[0]
visible = memedit.get_column_visible(memedit.col(label))
- widget = gtk.CheckButton(label)
- widget.set_active(visible)
- fields.append(widget)
- vbox.pack_start(widget, 1, 1, 1)
- widget.show()
+ model.append([visible, label])
+
+ sw = gtk.ScrolledWindow()
+ sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+ sw.add_with_viewport(view)
+ sw.show()
+ d.vbox.pack_start(sw, True, True, 2)
res = d.run()
selected_columns = []
if res == gtk.RESPONSE_OK:
- for widget in fields:
- colnum = memedit.col(widget.get_label())
- memedit.set_column_visible(colnum, widget.get_active())
- if widget.get_active():
- selected_columns.append(widget.get_label())
+ for row in model:
+ colnum = memedit.col(row[1])
+ memedit.set_column_visible(colnum, row[0])
+ if row[0]:
+ selected_columns.append(row[1])
d.destroy()
@@ -1598,7 +1651,7 @@
d.label.set_text(_("Choose a language or Auto to use the "
"operating system default. You will need to "
"restart the application before the change "
- "will take effect"))
+ "will take effect."))
d.label.set_line_wrap(True)
r = d.run()
if r == gtk.RESPONSE_OK:
diff --git a/chirp/ui/memdetail.py b/chirp/ui/memdetail.py
--- a/chirp/ui/memdetail.py
+++ b/chirp/ui/memdetail.py
@@ -176,7 +176,7 @@
def _add(self, tab, row, name, editor, text, colindex=0):
label = gtk.Label(text + ":")
- label.set_alignment(0.0, 0.5)
+ label.set_alignment(1.0, 0.5)
label.show()
tab.attach(label, colindex, colindex + 1, row, row + 1,
xoptions=gtk.FILL, yoptions=0, xpadding=6, ypadding=3)
@@ -292,8 +292,12 @@
title="Memory Properties",
flags=gtk.DIALOG_MODAL,
parent=parent,
- buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
- gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
+ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
+ gtk.STOCK_OK, gtk.RESPONSE_OK))
+ self.set_default_response(gtk.RESPONSE_OK)
+ self.set_alternative_button_order([gtk.RESPONSE_OK,
+ gtk.RESPONSE_CANCEL])
+
self.set_size_request(-1, 500)
self._tips = gtk.Tooltips()
diff --git a/chirp/ui/memedit.py b/chirp/ui/memedit.py
--- a/chirp/ui/memedit.py
+++ b/chirp/ui/memedit.py
@@ -60,6 +60,8 @@
self.set_property("text", _("Invalid value for this field"))
self.format_secondary_text(str(exception))
+ self.set_default_response(gtk.RESPONSE_OK)
+
def iter_prev(store, iter):
row = store.get_path(iter)[0]
@@ -1477,20 +1479,28 @@
loc, filled = store.get(iter,
self.col(_("Loc")), self.col("_filled"))
if filled and not always:
- d = miscwidgets.YesNoDialog(title=_("Overwrite?"),
- buttons=(gtk.STOCK_YES, 1,
- gtk.STOCK_NO, 2,
- gtk.STOCK_CANCEL, 3,
- "All", 4))
+ d = miscwidgets.YesNoDialog(
+ title=_("Overwrite"),
+ parent=None,
+ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
+ gtk.STOCK_NO, gtk.RESPONSE_NO,
+ _("Yes to All"), gtk.RESPONSE_ACCEPT,
+ gtk.STOCK_YES, gtk.RESPONSE_YES))
+ d.set_default_response(gtk.RESPONSE_YES)
+ d.set_alternative_button_order([gtk.RESPONSE_YES,
+ gtk.RESPONSE_ACCEPT,
+ gtk.RESPONSE_NO,
+ gtk.RESPONSE_CANCEL])
+
d.set_text(
_("Overwrite location {number}?").format(number=loc))
r = d.run()
d.destroy()
- if r == 4:
+ if r == gtk.RESPONSE_ACCEPT:
always = True
- elif r == 3:
+ elif r == gtk.RESPONSE_CANCEL:
break
- elif r == 2:
+ elif r == gtk.RESPONSE_NO:
iter = store.iter_next(iter)
continue
@@ -1508,16 +1518,22 @@
errs = [x for x in msgs
if isinstance(x, chirp_common.ValidationError)]
if errs:
- d = miscwidgets.YesNoDialog(title=_("Incompatible Memory"),
- buttons=(gtk.STOCK_OK, 1,
- gtk.STOCK_CANCEL, 2))
+ d = miscwidgets.YesNoDialog(
+ title=_("Incompatible Memory"),
+ parent=None,
+ buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
+ gtk.STOCK_OK, gtk.RESPONSE_OK))
+ d.set_default_response(gtk.RESPONSE_OK)
+ d.set_alternative_button_order([gtk.RESPONSE_OK,
+ gtk.RESPONSE_CANCEL])
+
d.set_text(
_("Pasted memory {number} is not compatible with "
"this radio because:").format(number=src_number) +
os.linesep + os.linesep.join(msgs))
r = d.run()
d.destroy()
- if r == 2:
+ if r == gtk.RESPONSE_CANCEL:
break
else:
iter = store.iter_next(iter)
diff --git a/chirp/ui/miscwidgets.py b/chirp/ui/miscwidgets.py
--- a/chirp/ui/miscwidgets.py
+++ b/chirp/ui/miscwidgets.py
@@ -603,13 +603,24 @@
class YesNoDialog(gtk.Dialog):
def __init__(self, title="", parent=None, buttons=None):
- gtk.Dialog.__init__(self, title=title, parent=parent, buttons=buttons)
+ gtk.Dialog.__init__(self,
+ title=title,
+ parent=parent,
+ buttons=buttons)
+
+ self._table = gtk.Table(1, 2)
self._label = gtk.Label("")
+ self._label.set_alignment(0.0, 0.5)
+ self._label.set_line_wrap(True)
+ self._label.set_size_request(384, -1)
self._label.show()
+ self._table.attach(self._label, 0, 1, 0, 1,
+ xpadding=6, ypadding=3)
+ self._table.show()
# pylint: disable-msg=E1101
- self.vbox.pack_start(self._label, 1, 1, 1)
+ self.vbox.pack_start(self._table, True, True, 2)
def set_text(self, text):
self._label.set_text(text)
diff --git a/chirp/ui/settingsedit.py b/chirp/ui/settingsedit.py
--- a/chirp/ui/settingsedit.py
+++ b/chirp/ui/settingsedit.py
@@ -135,7 +135,7 @@
# Label
label = gtk.Label(element.get_shortname() + ":")
- label.set_alignment(0.0, 0.5)
+ label.set_alignment(1.0, 0.5)
label.show()
table.attach(label, 0, 1, row, row + 1,
diff --git a/chirp/ui/shiftdialog.py b/chirp/ui/shiftdialog.py
--- a/chirp/ui/shiftdialog.py
+++ b/chirp/ui/shiftdialog.py
@@ -30,6 +30,8 @@
title=_("Shift"),
buttons=(gtk.STOCK_CLOSE, gtk.RESPONSE_OK))
+ self.set_default_response(gtk.RESPONSE_OK)
+
self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
self.rthread = rthread
2
1
New IC-7300 driver, Issue #4013.
--
Rick DeWitt
AA0RD
Sequim, Washington, USA 98382
(360) 681-3494
2
1
Dan-
Could you please add these two friends of CHIRP to the Wiki Honor roll page-
Damon Schaefer (K9CQB) and the Loudoun County, VA ARES club - TYT-UV800D
(Graciously donated!)
Bill Peterson (K7WWP) - Icom IC-7300
And I suggest the following wording be changed on the
DevelopersToneModes page-
Under Radio Behavior, Icom/Kenwood style:
Change:
No Icom (that I'm aware of) can use the two values for separate TX and
RX tones, nor can *most* Kenwoods.
To:
So far, only the Icom IC-2730 supports the use of the two values for
separate TX and RX tones, called TON.TSQ mode in the radio menu. Most
Kenwood radios do not.
I can make these changes if you authorize it.
--
Rick DeWitt
AA0RD
Sequim, Washington, USA 98382
(360) 681-3494
2
1
26 Sep '20
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1601156825 14400
# Sat Sep 26 17:47:05 2020 -0400
# Node ID a5d8aac0f6bddaf098b798f01cfbcdc8193bae39
# Parent fbfbef9154def77ef9398dbe373df1640f5a6e2e
[UV-5R] Add support for XXX.XXX Work Mode Offsets
The original UV-5R only supported VFO offsets up to 69.95 MHz. Current models
support VFO offsets up to 999.999 MHz. This patch expands the Work Mode
Settings VFO A/B Offset settings to match the range of the current models.
fixes #6719
diff -r fbfbef9154de -r a5d8aac0f6bd chirp/drivers/uv5r.py
--- a/chirp/drivers/uv5r.py Sat Sep 26 15:03:50 2020 -0400
+++ b/chirp/drivers/uv5r.py Sat Sep 26 17:47:05 2020 -0400
@@ -152,9 +152,7 @@
#seekto 0x0F10;
struct {
u8 freq[8];
- u8 unknown1;
- u8 offset[4];
- u8 unknown2;
+ u8 offset[6];
ul16 rxtone;
ul16 txtone;
u8 unused1:7,
@@ -176,9 +174,7 @@
#seekto 0x0F30;
struct {
u8 freq[8];
- u8 unknown1;
- u8 offset[4];
- u8 unknown2;
+ u8 offset[6];
ul16 rxtone;
ul16 txtone;
u8 unused1:7,
@@ -1462,25 +1458,25 @@
real_offset = 0
for byte in bytes:
real_offset = (real_offset * 10) + byte
- return chirp_common.format_freq(real_offset * 10000)
+ return chirp_common.format_freq(real_offset * 1000)
def apply_offset(setting, obj):
- value = chirp_common.parse_freq(str(setting.value)) / 10000
- for i in range(3, -1, -1):
+ value = chirp_common.parse_freq(str(setting.value)) / 1000
+ for i in range(5, -1, -1):
obj.offset[i] = value % 10
value /= 10
val1a = RadioSettingValueString(
0, 10, convert_bytes_to_offset(_vfoa.offset))
rs = RadioSetting("vfoa.offset",
- "VFO A Offset (0.00-69.95)", val1a)
+ "VFO A Offset (0.0-999.999)", val1a)
rs.set_apply_callback(apply_offset, _vfoa)
workmode.append(rs)
val1b = RadioSettingValueString(
0, 10, convert_bytes_to_offset(_vfob.offset))
rs = RadioSetting("vfob.offset",
- "VFO B Offset (0.00-69.95)", val1b)
+ "VFO B Offset (0.0-999.999)", val1b)
rs.set_apply_callback(apply_offset, _vfob)
workmode.append(rs)
1
0
# HG changeset patch
# User Jim Unroe <rock.unroe(a)gmail.com>
# Date 1601147030 14400
# Sat Sep 26 15:03:50 2020 -0400
# Node ID fbfbef9154def77ef9398dbe373df1640f5a6e2e
# Parent 2d7b5508d8950df775754f0587b7c7856e1c2302
[TI-F8+] Add support for TechSide TI-F8+
This patch adds support for the TechSide TI-F8+ (variant of Baofeng BF-F8HP)
related to #8187
diff -r 2d7b5508d895 -r fbfbef9154de chirp/drivers/uv5r.py
--- a/chirp/drivers/uv5r.py Tue Sep 08 11:53:20 2020 -0700
+++ b/chirp/drivers/uv5r.py Sat Sep 26 15:03:50 2020 -0400
@@ -1173,10 +1173,11 @@
RadioSettingValueBoolean(_settings.voice))
advanced.append(rs)
else:
- rs = RadioSetting("voice", "Voice",
- RadioSettingValueList(
- VOICE_LIST, VOICE_LIST[_settings.voice]))
- advanced.append(rs)
+ if self.MODEL != "TI-F8+":
+ rs = RadioSetting("voice", "Voice",
+ RadioSettingValueList(
+ VOICE_LIST, VOICE_LIST[_settings.voice]))
+ advanced.append(rs)
rs = RadioSetting("screv", "Scan Resume",
RadioSettingValueList(
@@ -1886,11 +1887,16 @@
MODEL = "UV-5XP"
+class TSTIF8Alias(chirp_common.Alias):
+ VENDOR = "TechSide"
+ MODEL = "TI-F8+"
+
+
@directory.register
class BaofengBFF8HPRadio(BaofengUV5R):
VENDOR = "Baofeng"
MODEL = "BF-F8HP"
- ALIASES = [RT5_TPAlias, ROGA5SAlias, UV5XPAlias]
+ ALIASES = [RT5_TPAlias, ROGA5SAlias, UV5XPAlias, TSTIF8Alias]
_basetype = BASETYPE_F8HP
_idents = [UV5R_MODEL_291,
UV5R_MODEL_A58
1
0
[chirp_devel] [PATCH] Memory editor controls to use Gtk.Toolbar with collapsable overflow menu. Fixes 8259
by Kosta A. 18 Sep '20
by Kosta A. 18 Sep '20
18 Sep '20
# HG changeset patch
# User Kosta A. <ve7kcy(a)gmail.com>
# Date 1600414573 25200
# Fri Sep 18 00:36:13 2020 -0700
# Node ID 1a49ad2e84e305b56a3bdeb823266e1219f34e02
# Parent 2d7b5508d8950df775754f0587b7c7856e1c2302
Memory editor controls to use Gtk.Toolbar with collapsable overflow menu. Fixes 8259.
diff --git a/chirp/ui/memedit.py b/chirp/ui/memedit.py
--- a/chirp/ui/memedit.py
+++ b/chirp/ui/memedit.py
@@ -1178,11 +1178,16 @@
self._config.set_int(self._limit_key(which), int(sb.get_value()))
def make_controls(self, min, max):
+ vbox = gtk.VBox(False, 2)
+
+ toolbar = gtk.Toolbar()
+ toolbar.set_style(gtk.TOOLBAR_BOTH_HORIZ)
+ toolbar.set_show_arrow(True)
+
hbox = gtk.HBox(False, 2)
lab = gtk.Label(_("Memory Range:"))
- lab.show()
- hbox.pack_start(lab, 0, 0, 0)
+ hbox.pack_start(lab, False, False, 2)
lokey = self._limit_key("lo")
hikey = self._limit_key("hi")
@@ -1194,24 +1199,23 @@
self.lo_limit_adj = gtk.Adjustment(lostart, min, max-1, 1, 10)
lo = gtk.SpinButton(self.lo_limit_adj)
lo.connect("value-changed", self._store_limit, "lo")
- lo.show()
- hbox.pack_start(lo, 0, 0, 0)
-
- lab = gtk.Label(" - ")
- lab.show()
- hbox.pack_start(lab, 0, 0, 0)
+ hbox.pack_start(lo, False, False, 2)
self.hi_limit_adj = gtk.Adjustment(histart, min+1, max, 1, 10)
hi = gtk.SpinButton(self.hi_limit_adj)
hi.connect("value-changed", self._store_limit, "hi")
- hi.show()
- hbox.pack_start(hi, 0, 0, 0)
+ hbox.pack_start(hi, False, False, 2)
+
+ item = gtk.ToolItem()
+ item.add(hbox)
+ toolbar.add(item)
- refresh = gtk.Button(_("Refresh"))
- refresh.set_relief(gtk.RELIEF_NONE)
+ sep = gtk.SeparatorToolItem()
+ toolbar.add(sep)
+
+ refresh = gtk.ToolButton(gtk.STOCK_REFRESH)
refresh.connect("clicked", lambda x: self.prefill())
- refresh.show()
- hbox.pack_start(refresh, 0, 0, 0)
+ toolbar.add(refresh)
def activate_go(widget):
refresh.clicked()
@@ -1226,41 +1230,43 @@
lo.connect_after("activate", activate_go)
hi.connect_after("activate", activate_go)
- sep = gtk.VSeparator()
- sep.show()
- hbox.pack_start(sep, 0, 0, 2)
+ sep = gtk.SeparatorToolItem()
+ toolbar.add(sep)
- showspecial = gtk.ToggleButton(_("Special Channels"))
- showspecial.set_relief(gtk.RELIEF_NONE)
+ showspecial = gtk.ToggleToolButton()
+ showspecial.set_label(_("Special Channels"))
+ showspecial.set_stock_id(gtk.STOCK_ABOUT)
+ showspecial.set_is_important(True)
showspecial.set_active(self.show_special)
showspecial.connect("toggled",
lambda x: self.set_show_special(x.get_active()))
- showspecial.show()
- hbox.pack_start(showspecial, 0, 0, 0)
+ toolbar.add(showspecial)
- showempty = gtk.ToggleButton(_("Show Empty"))
- showempty.set_relief(gtk.RELIEF_NONE)
+ showempty = gtk.ToggleToolButton()
+ showempty.set_label(_("Empty Channels"))
+ showempty.set_stock_id(gtk.STOCK_SELECT_ALL)
+ showempty.set_is_important(True)
showempty.set_active(self.show_empty)
showempty.connect("toggled",
lambda x: self.set_show_empty(x.get_active()))
- showempty.show()
- hbox.pack_start(showempty, 0, 0, 0)
+ toolbar.add(showempty)
+
+ sep = gtk.SeparatorToolItem()
+ toolbar.add(sep)
- sep = gtk.VSeparator()
- sep.show()
- hbox.pack_start(sep, 0, 0, 2)
-
- props = gtk.Button(_("Properties"))
- props.set_relief(gtk.RELIEF_NONE)
- props.connect("clicked",
+ properties = gtk.ToolButton()
+ properties.set_stock_id(gtk.STOCK_PROPERTIES)
+ properties.set_label(_("Properties"))
+ properties.set_is_important(True)
+ properties.connect("clicked",
lambda x: self.hotkey(
gtk.Action("properties", "", "", 0)))
- props.show()
- hbox.pack_start(props, 0, 0, 0)
+ toolbar.add(properties)
- hbox.show()
+ vbox.pack_start(toolbar, False, False, 0)
+ vbox.show_all()
- return hbox
+ return vbox
def set_show_special(self, show):
self.show_special = show
1
0
[chirp_devel] [PATCH] [FT-60] Correct characterset to match radio segment display chars. Fixes #8189
by Kosta A. 17 Sep '20
by Kosta A. 17 Sep '20
17 Sep '20
# HG changeset patch
# User Kosta A. <ve7kcy(a)gmail.com>
# Date 1600406688 25200
# Thu Sep 17 22:24:48 2020 -0700
# Node ID ee83a0f7cfbb21413189bead37786c14e8b2c399
# Parent 2d7b5508d8950df775754f0587b7c7856e1c2302
[FT-60] Correct characterset to match radio segment display chars. Fixes #8189
diff --git a/chirp/drivers/ft60.py b/chirp/drivers/ft60.py
--- a/chirp/drivers/ft60.py
+++ b/chirp/drivers/ft60.py
@@ -286,7 +286,7 @@
STEPS = [5.0, 10.0, 12.5, 15.0, 20.0, 25.0, 50.0, 100.0]
SKIPS = ["", "S", "P"]
DTMF_CHARS = list("0123456789ABCD*#")
-CHARSET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ [?]^__|`?$%&-()*+,-,/|;/=>?@"
+CHARSET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ !`o$%&'()*+,-./|;/=>?@[u]^_"
SPECIALS = ["%s%d" % (c, i + 1) for i in range(0, 50) for c in ('L', 'U')]
1
0
Well, I have python 2 running well enough for an IC-7000 and IC-2820H but I get an error with my Alinco DJ-G7. Next to look at debug.log… um…
I don’t have ~/.chirp/debug.log. Did I break the debug log? Am I doing something silly like looking in the wrong place or for the wrong name?
Martin, thanks for offering the help. When I’m looking at the IC-7000 again, I’ll keep you in mind.
> On 6Sep2020, at 17:14, Martin Cooper <kd6yam(a)amsat.org> wrote:
>
> Hi Joseph,
>
> Welcome back! Just FYI, I'm the last one who was in the icomciv.py code, adding support for the IC-910H and fixing a bug in the IC-7100 code. Since, as you'll know, there's a lot of shared code amongst the CI-V radios, I just wanted to drop you a note and say: if you end up back in that code again, and have questions about what you see, please don't hesitate to ask. I'd be happy to help, if I can.
>
> Martin.
> KD6YAM
>
> On Sun, Sep 6, 2020 at 12:59 PM Joseph.P.Scanlan--- via chirp_devel <chirp_devel(a)intrepid.danplanet.com <mailto:chirp_devel@intrepid.danplanet.com>> wrote:
> The last few years have been a little… distracting but I’m anxious to get back to chirp. I did some work on the Icom IC-7000 driver in the past. So:
>
> How do I install python-libxslt1, python-gtk2, python-serial, and python-suds on Ubuntu Focal?
> Should I be looking at the Python 3 branch instead?
>
> — Joseph.P.Scanlan(a)n7xsd.us <mailto:Joseph.P.Scanlan@n7xsd.us>
> — n7xsd(a)arrl.net <mailto:n7xsd@arrl.net>
> — +1-702-896-0507
>
> _______________________________________________
> chirp_devel mailing list
> chirp_devel(a)intrepid.danplanet.com <mailto:chirp_devel@intrepid.danplanet.com>
> http://intrepid.danplanet.com/mailman/listinfo/chirp_devel <http://intrepid.danplanet.com/mailman/listinfo/chirp_devel>
> Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers <http://chirp.danplanet.com/projects/chirp/wiki/Developers>
1
0