not1mm 24.11.3__tar.gz → 24.11.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {not1mm-24.11.3 → not1mm-24.11.3.1}/PKG-INFO +13 -3
- {not1mm-24.11.3 → not1mm-24.11.3.1}/README.md +12 -2
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/__main__.py +8 -2
- not1mm-24.11.3.1/not1mm/lib/version.py +3 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/10_10_fall_cw.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/10_10_spring_cw.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/10_10_summer_phone.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/10_10_winter_phone.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/arrl_10m.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/arrl_dx_cw.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/arrl_dx_ssb.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/arrl_field_day.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/arrl_ss_cw.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/arrl_ss_phone.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/arrl_vhf_jan.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/arrl_vhf_jun.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/arrl_vhf_sep.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/canada_day.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/cq_160_cw.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/cq_160_ssb.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/cq_wpx_cw.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/cq_wpx_rtty.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/cq_wpx_ssb.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/cq_ww_rtty.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/cq_ww_ssb.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/cwt.py +16 -9
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/helvetia.py +102 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/iaru_fieldday_r1_cw.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/iaru_fieldday_r1_ssb.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/iaru_hf.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/icwc_mst.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/jidx_cw.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/jidx_ph.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/k1usn_sst.py +13 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/naqp_cw.py +13 -4
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/naqp_rtty.py +13 -6
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/naqp_ssb.py +13 -4
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/phone_weekly_test.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/ref_cw.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/ref_ssb.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/stew_perry_topband.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/weekly_rtty.py +1 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/winter_field_day.py +13 -1
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm.egg-info/PKG-INFO +13 -3
- {not1mm-24.11.3 → not1mm-24.11.3.1}/pyproject.toml +1 -1
- not1mm-24.11.3/not1mm/lib/version.py +0 -3
- {not1mm-24.11.3 → not1mm-24.11.3.1}/LICENSE +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/__init__.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/bandmap.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/checkwindow.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/MASTER.SCP +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/about.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/alpha bravo charlie delta.txt +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/bandmap.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/check.png +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/checkwindow.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/configuration.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/contests.sql +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/cty.json +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/cwmacros.txt +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/donors.html +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/editcontact.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/editmacro.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/greendot.png +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/k6gte-not1mm.desktop +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/k6gte.not1mm-128.png +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/k6gte.not1mm-32.png +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/k6gte.not1mm-64.png +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/logwindow.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/logwindowx.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/main.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/new_contest.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/not1mm.html +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/opon.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/0.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/1.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/2.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/3.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/4.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/5.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/6.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/7.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/73.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/8.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/9.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/a.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/again.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/b.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/c.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/contest.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/cq.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/cq2.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/d.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/e.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/f.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/g.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/h.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/i.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/j.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/k.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/k6gte.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/l.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/m.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/mynumber.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/n.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/nil.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/o.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/p.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/q.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/r.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/roger.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/s.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/space.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/t.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/thankyou.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/u.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/v.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/w.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/x.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/y.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/yourcall.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/phonetics/z.wav +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/pickcontest.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/radio_green.png +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/radio_grey.png +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/radio_red.png +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/reddot.png +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/rttymacros.txt +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/settings.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/splash.png +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/ssbmacros.txt +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/data/vfo.ui +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/fsutils.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/__init__.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/about.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/cat_interface.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/cwinterface.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/database.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/edit_contact.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/edit_macro.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/edit_opon.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/edit_station.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/fldigi_sendstring.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/fldigi_watcher.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/ft8_watcher.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/ham_utility.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/lookup.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/multicast.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/n1mm.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/new_contest.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/playsound.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/plugin_common.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/select_contest.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/settings.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/super_check_partial.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lib/versiontest.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/logwindow.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/lookupservice.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/__init__.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/arrl_rtty_ru.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/cq_ww_cw.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/general_logging.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/plugins/raem.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/radio.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/test.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/vfo.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm/voice_keying.py +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm.egg-info/SOURCES.txt +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm.egg-info/dependency_links.txt +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm.egg-info/entry_points.txt +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm.egg-info/requires.txt +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/not1mm.egg-info/top_level.txt +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/setup.cfg +0 -0
- {not1mm-24.11.3 → not1mm-24.11.3.1}/test/contests.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.11.3
|
3
|
+
Version: 24.11.3.1
|
4
4
|
Summary: NOT1MM Logger
|
5
5
|
Author-email: Michael Bridak <michael.bridak@gmail.com>
|
6
6
|
Project-URL: Homepage, https://github.com/mbridak/not1mm
|
@@ -100,6 +100,7 @@ Requires-Dist: Levenshtein
|
|
100
100
|
- [Cluster](#cluster)
|
101
101
|
- [N1MM Packets](#n1mm-packets)
|
102
102
|
- [Bands](#bands)
|
103
|
+
- [Options](#options)
|
103
104
|
- [Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts](#logging-wsjt-x-ft8ft4etc-and-fldigi-rtty-contacts)
|
104
105
|
- [Sending CW](#sending-cw)
|
105
106
|
- [Editing macro keys](#editing-macro-keys)
|
@@ -183,7 +184,7 @@ when the program craps the bed. I'm only one guy, so if you see a bug let me kno
|
|
183
184
|
|
184
185
|
I've recently added portions of code to watch for WSTJ-X and fldigi QSOs. I've added
|
185
186
|
the Weekly RTTY Test, So RTTY could be tested. Also added FT8/4 and RTTY to ARRL Field
|
186
|
-
Day and ARRL VHF. Found works better if you don't use FlDigi for making the QSO at all.
|
187
|
+
Day and ARRL VHF. Found it works better if you don't use FlDigi for making the QSO at all.
|
187
188
|
Rather just using it as a RTTY modem and sending the text for it to send from Not1MM
|
188
189
|
using the function keys or ESM.
|
189
190
|
|
@@ -218,7 +219,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
218
219
|
- **CQ WPX CW, RTTY, SSB**
|
219
220
|
- **CQ World Wide CW, RTTY, SSB**
|
220
221
|
- **CWOps CWT**
|
221
|
-
- Helvetia
|
222
|
+
- **Helvetia**
|
222
223
|
- IARU Fieldday R1 CW, SSB
|
223
224
|
- IARU HF
|
224
225
|
- ICWC MST
|
@@ -235,6 +236,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
235
236
|
|
236
237
|
## Recent Changes (Polishing the Turd)
|
237
238
|
|
239
|
+
- [24-11-3-1] Fixed CWT ESM, Add Call History to CWT, Helvetia, WFD, NAQP, K1USN. Add ESM Helvetia.
|
238
240
|
- [24-11-3] Added RAEM contest
|
239
241
|
- [24-11-2] Add beginning of call history files. Add command buttons.
|
240
242
|
|
@@ -611,6 +613,13 @@ appear. Those without will not.
|
|
611
613
|
|
612
614
|

|
613
615
|
|
616
|
+
### Options
|
617
|
+
|
618
|
+
On the Options TAB you can select to use Enter Sends Message (ESM), configure its function keys.
|
619
|
+
Select whether or not to use Call History info.
|
620
|
+
|
621
|
+

|
622
|
+
|
614
623
|
## Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts
|
615
624
|
|
616
625
|
**Digital modes only working for:**
|
@@ -737,6 +746,7 @@ is this has happened, since the gridsquare will replace the word "Regional".
|
|
737
746
|
| [CTRL-M] | Mark Callsign to the bandmap window to work later. |
|
738
747
|
| [CTRL-G] | Tune to a spot matching partial text in the callsign entry field (CAT Required). |
|
739
748
|
| [CTRL-SHIFT-K] | Open CW text input field. |
|
749
|
+
| [CTRL-=] | Log the contact without sending the ESM macros.|
|
740
750
|
|
741
751
|
### The Log Window
|
742
752
|
|
@@ -69,6 +69,7 @@
|
|
69
69
|
- [Cluster](#cluster)
|
70
70
|
- [N1MM Packets](#n1mm-packets)
|
71
71
|
- [Bands](#bands)
|
72
|
+
- [Options](#options)
|
72
73
|
- [Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts](#logging-wsjt-x-ft8ft4etc-and-fldigi-rtty-contacts)
|
73
74
|
- [Sending CW](#sending-cw)
|
74
75
|
- [Editing macro keys](#editing-macro-keys)
|
@@ -152,7 +153,7 @@ when the program craps the bed. I'm only one guy, so if you see a bug let me kno
|
|
152
153
|
|
153
154
|
I've recently added portions of code to watch for WSTJ-X and fldigi QSOs. I've added
|
154
155
|
the Weekly RTTY Test, So RTTY could be tested. Also added FT8/4 and RTTY to ARRL Field
|
155
|
-
Day and ARRL VHF. Found works better if you don't use FlDigi for making the QSO at all.
|
156
|
+
Day and ARRL VHF. Found it works better if you don't use FlDigi for making the QSO at all.
|
156
157
|
Rather just using it as a RTTY modem and sending the text for it to send from Not1MM
|
157
158
|
using the function keys or ESM.
|
158
159
|
|
@@ -187,7 +188,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
187
188
|
- **CQ WPX CW, RTTY, SSB**
|
188
189
|
- **CQ World Wide CW, RTTY, SSB**
|
189
190
|
- **CWOps CWT**
|
190
|
-
- Helvetia
|
191
|
+
- **Helvetia**
|
191
192
|
- IARU Fieldday R1 CW, SSB
|
192
193
|
- IARU HF
|
193
194
|
- ICWC MST
|
@@ -204,6 +205,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
204
205
|
|
205
206
|
## Recent Changes (Polishing the Turd)
|
206
207
|
|
208
|
+
- [24-11-3-1] Fixed CWT ESM, Add Call History to CWT, Helvetia, WFD, NAQP, K1USN. Add ESM Helvetia.
|
207
209
|
- [24-11-3] Added RAEM contest
|
208
210
|
- [24-11-2] Add beginning of call history files. Add command buttons.
|
209
211
|
|
@@ -580,6 +582,13 @@ appear. Those without will not.
|
|
580
582
|
|
581
583
|

|
582
584
|
|
585
|
+
### Options
|
586
|
+
|
587
|
+
On the Options TAB you can select to use Enter Sends Message (ESM), configure its function keys.
|
588
|
+
Select whether or not to use Call History info.
|
589
|
+
|
590
|
+

|
591
|
+
|
583
592
|
## Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts
|
584
593
|
|
585
594
|
**Digital modes only working for:**
|
@@ -706,6 +715,7 @@ is this has happened, since the gridsquare will replace the word "Regional".
|
|
706
715
|
| [CTRL-M] | Mark Callsign to the bandmap window to work later. |
|
707
716
|
| [CTRL-G] | Tune to a spot matching partial text in the callsign entry field (CAT Required). |
|
708
717
|
| [CTRL-SHIFT-K] | Open CW text input field. |
|
718
|
+
| [CTRL-=] | Log the contact without sending the ESM macros.|
|
709
719
|
|
710
720
|
### The Log Window
|
711
721
|
|
@@ -737,12 +737,16 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
737
737
|
group = {}
|
738
738
|
fields = line.strip().split(",")
|
739
739
|
# ['4U1WB','MDC','DC','89','']
|
740
|
+
number_of_fields = len(fields)
|
740
741
|
count = 0
|
741
742
|
try:
|
742
743
|
for item in item_names:
|
743
744
|
if item == "":
|
744
745
|
continue
|
745
|
-
|
746
|
+
if count < number_of_fields:
|
747
|
+
group[item] = fields[count]
|
748
|
+
else:
|
749
|
+
group[item] = ""
|
746
750
|
count += 1
|
747
751
|
group_list.append(group)
|
748
752
|
# database.add_callhistory_item(group)
|
@@ -1736,13 +1740,14 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1736
1740
|
"[Shift-Tab]\tMove cursor left One field.\n"
|
1737
1741
|
"[SPACE]\tWhen in the callsign field, will move the input to the\n"
|
1738
1742
|
"\tfirst field needed for the exchange.\n"
|
1739
|
-
"[Enter]\tSubmits the fields to the log.\n"
|
1743
|
+
"[Enter]\tSubmits the fields to the log. Unless ESM is enabled.\n"
|
1740
1744
|
"[F1-F12]\tSend (CW or Voice) macros.\n"
|
1741
1745
|
"[CTRL-G]\tTune to a spot matching partial text in the callsign\n"
|
1742
1746
|
"\tentry field (CAT Required).\n"
|
1743
1747
|
"[CTRL-M]\tMark Callsign to the bandmap window to work later."
|
1744
1748
|
"[CTRL-S]\tSpot Callsign to the cluster.\n"
|
1745
1749
|
"[CTRL-SHIFT-K] Open CW text input field.\n"
|
1750
|
+
"[CTRL-=]\tLog the contact without sending the ESM macros.\n"
|
1746
1751
|
)
|
1747
1752
|
|
1748
1753
|
def filepicker(self, action: str) -> str:
|
@@ -2284,6 +2289,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2284
2289
|
self.dupe_indicator.hide()
|
2285
2290
|
self.contact = self.database.empty_contact.copy()
|
2286
2291
|
self.heading_distance.setText("")
|
2292
|
+
self.history_info.setText("")
|
2287
2293
|
self.dx_entity.setText("")
|
2288
2294
|
|
2289
2295
|
if self.contest:
|
@@ -194,7 +194,7 @@ def cabrillo(self, file_encoding):
|
|
194
194
|
logger.debug("%s", filename)
|
195
195
|
log = self.database.fetch_all_contacts_asc()
|
196
196
|
try:
|
197
|
-
with open(filename, "w", encoding=
|
197
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
198
198
|
output_cabrillo_line(
|
199
199
|
"START-OF-LOG: 3.0",
|
200
200
|
"\r\n",
|
@@ -193,7 +193,7 @@ def cabrillo(self, file_encoding):
|
|
193
193
|
logger.debug("%s", filename)
|
194
194
|
log = self.database.fetch_all_contacts_asc()
|
195
195
|
try:
|
196
|
-
with open(filename, "w", encoding=
|
196
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
197
197
|
output_cabrillo_line(
|
198
198
|
"START-OF-LOG: 3.0",
|
199
199
|
"\r\n",
|
@@ -195,7 +195,7 @@ def cabrillo(self, file_encoding):
|
|
195
195
|
logger.debug("%s", filename)
|
196
196
|
log = self.database.fetch_all_contacts_asc()
|
197
197
|
try:
|
198
|
-
with open(filename, "w", encoding=
|
198
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
199
199
|
output_cabrillo_line(
|
200
200
|
"START-OF-LOG: 3.0",
|
201
201
|
"\r\n",
|
@@ -195,7 +195,7 @@ def cabrillo(self, file_encoding):
|
|
195
195
|
logger.debug("%s", filename)
|
196
196
|
log = self.database.fetch_all_contacts_asc()
|
197
197
|
try:
|
198
|
-
with open(filename, "w", encoding=
|
198
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
199
199
|
output_cabrillo_line(
|
200
200
|
"START-OF-LOG: 3.0",
|
201
201
|
"\r\n",
|
@@ -277,7 +277,7 @@ def cabrillo(self, file_encoding):
|
|
277
277
|
logger.debug("%s", filename)
|
278
278
|
log = self.database.fetch_all_contacts_asc()
|
279
279
|
try:
|
280
|
-
with open(filename, "w", encoding=
|
280
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
281
281
|
output_cabrillo_line(
|
282
282
|
"START-OF-LOG: 3.0",
|
283
283
|
"\r\n",
|
@@ -219,7 +219,7 @@ def cabrillo(self, file_encoding):
|
|
219
219
|
logger.debug("%s", filename)
|
220
220
|
log = self.database.fetch_all_contacts_asc()
|
221
221
|
try:
|
222
|
-
with open(filename, "w", encoding=
|
222
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
223
223
|
output_cabrillo_line(
|
224
224
|
"START-OF-LOG: 3.0",
|
225
225
|
"\r\n",
|
@@ -219,7 +219,7 @@ def cabrillo(self, file_encoding):
|
|
219
219
|
logger.debug("%s", filename)
|
220
220
|
log = self.database.fetch_all_contacts_asc()
|
221
221
|
try:
|
222
|
-
with open(filename, "w", encoding=
|
222
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
223
223
|
output_cabrillo_line(
|
224
224
|
"START-OF-LOG: 3.0",
|
225
225
|
"\r\n",
|
@@ -173,7 +173,7 @@ def cabrillo(self, file_encoding):
|
|
173
173
|
logger.debug("%s", filename)
|
174
174
|
log = self.database.fetch_all_contacts_asc()
|
175
175
|
try:
|
176
|
-
with open(filename, "w", encoding=
|
176
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
177
177
|
output_cabrillo_line(
|
178
178
|
"START-OF-LOG: 3.0",
|
179
179
|
"\r\n",
|
@@ -216,7 +216,7 @@ def cabrillo(self, file_encoding):
|
|
216
216
|
logger.debug("%s", filename)
|
217
217
|
log = self.database.fetch_all_contacts_asc()
|
218
218
|
try:
|
219
|
-
with open(filename, "w", encoding=
|
219
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
220
220
|
output_cabrillo_line(
|
221
221
|
"START-OF-LOG: 3.0",
|
222
222
|
"\r\n",
|
@@ -206,7 +206,7 @@ def cabrillo(self, file_encoding):
|
|
206
206
|
logger.debug("%s", filename)
|
207
207
|
log = self.database.fetch_all_contacts_asc()
|
208
208
|
try:
|
209
|
-
with open(filename, "w", encoding=
|
209
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
210
210
|
output_cabrillo_line(
|
211
211
|
"START-OF-LOG: 3.0",
|
212
212
|
"\r\n",
|
@@ -256,7 +256,7 @@ def cabrillo(self, file_encoding):
|
|
256
256
|
logger.debug("%s", filename)
|
257
257
|
log = self.database.fetch_all_contacts_asc()
|
258
258
|
try:
|
259
|
-
with open(filename, "w", encoding=
|
259
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
260
260
|
output_cabrillo_line(
|
261
261
|
"START-OF-LOG: 3.0",
|
262
262
|
"\r\n",
|
@@ -224,7 +224,7 @@ def cabrillo(self, file_encoding):
|
|
224
224
|
logger.debug("%s", filename)
|
225
225
|
log = self.database.fetch_all_contacts_asc()
|
226
226
|
try:
|
227
|
-
with open(filename, "w", encoding=
|
227
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
228
228
|
output_cabrillo_line(
|
229
229
|
"START-OF-LOG: 3.0",
|
230
230
|
"\r\n",
|
@@ -224,7 +224,7 @@ def cabrillo(self, file_encoding):
|
|
224
224
|
logger.debug("%s", filename)
|
225
225
|
log = self.database.fetch_all_contacts_asc()
|
226
226
|
try:
|
227
|
-
with open(filename, "w", encoding=
|
227
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
228
228
|
output_cabrillo_line(
|
229
229
|
"START-OF-LOG: 3.0",
|
230
230
|
"\r\n",
|
@@ -247,7 +247,7 @@ def cabrillo(self, file_encoding):
|
|
247
247
|
logger.debug("%s", filename)
|
248
248
|
log = self.database.fetch_all_contacts_asc()
|
249
249
|
try:
|
250
|
-
with open(filename, "w", encoding=
|
250
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
251
251
|
output_cabrillo_line(
|
252
252
|
"START-OF-LOG: 3.0",
|
253
253
|
"\r\n",
|
@@ -234,7 +234,7 @@ def cabrillo(self, file_encoding):
|
|
234
234
|
logger.debug("%s", filename)
|
235
235
|
log = self.database.fetch_all_contacts_asc()
|
236
236
|
try:
|
237
|
-
with open(filename, "w", encoding=
|
237
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
238
238
|
output_cabrillo_line(
|
239
239
|
"START-OF-LOG: 3.0",
|
240
240
|
"\r\n",
|
@@ -234,7 +234,7 @@ def cabrillo(self, file_encoding):
|
|
234
234
|
logger.debug("%s", filename)
|
235
235
|
log = self.database.fetch_all_contacts_asc()
|
236
236
|
try:
|
237
|
-
with open(filename, "w", encoding=
|
237
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
238
238
|
output_cabrillo_line(
|
239
239
|
"START-OF-LOG: 3.0",
|
240
240
|
"\r\n",
|
@@ -266,7 +266,7 @@ def cabrillo(self, file_encoding):
|
|
266
266
|
logger.debug("%s", filename)
|
267
267
|
log = self.database.fetch_all_contacts_asc()
|
268
268
|
try:
|
269
|
-
with open(filename, "w", encoding=
|
269
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
270
270
|
output_cabrillo_line(
|
271
271
|
"START-OF-LOG: 3.0",
|
272
272
|
"\r\n",
|
@@ -265,7 +265,7 @@ def cabrillo(self, file_encoding):
|
|
265
265
|
logger.debug("%s", filename)
|
266
266
|
log = self.database.fetch_all_contacts_asc()
|
267
267
|
try:
|
268
|
-
with open(filename, "w", encoding=
|
268
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
269
269
|
output_cabrillo_line(
|
270
270
|
"START-OF-LOG: 3.0",
|
271
271
|
"\r\n",
|
@@ -231,7 +231,7 @@ def cabrillo(self, file_encoding):
|
|
231
231
|
logger.debug("%s", filename)
|
232
232
|
log = self.database.fetch_all_contacts_asc()
|
233
233
|
try:
|
234
|
-
with open(filename, "w", encoding=
|
234
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
235
235
|
output_cabrillo_line(
|
236
236
|
"START-OF-LOG: 3.0",
|
237
237
|
"\r\n",
|
@@ -254,7 +254,7 @@ def cabrillo(self, file_encoding):
|
|
254
254
|
logger.debug("%s", filename)
|
255
255
|
log = self.database.fetch_all_contacts_asc()
|
256
256
|
try:
|
257
|
-
with open(filename, "w", encoding=
|
257
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
258
258
|
output_cabrillo_line(
|
259
259
|
"START-OF-LOG: 3.0",
|
260
260
|
"\r\n",
|
@@ -230,7 +230,7 @@ def cabrillo(self, file_encoding):
|
|
230
230
|
logger.debug("%s", filename)
|
231
231
|
log = self.database.fetch_all_contacts_asc()
|
232
232
|
try:
|
233
|
-
with open(filename, "w", encoding=
|
233
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
234
234
|
output_cabrillo_line(
|
235
235
|
"START-OF-LOG: 3.0",
|
236
236
|
"\r\n",
|
@@ -224,7 +224,7 @@ def cabrillo(self, file_encoding):
|
|
224
224
|
logger.debug("%s", filename)
|
225
225
|
log = self.database.fetch_all_contacts_asc()
|
226
226
|
try:
|
227
|
-
with open(filename, "w", encoding=
|
227
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
228
228
|
output_cabrillo_line(
|
229
229
|
"START-OF-LOG: 3.0",
|
230
230
|
"\r\n",
|
@@ -478,13 +478,11 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
|
|
478
478
|
if self.other_2.text() == "" or self.other_1.text() == "":
|
479
479
|
self.make_button_green(self.esm_dict["AGN"])
|
480
480
|
buttons_to_send.append(self.esm_dict["AGN"])
|
481
|
-
|
481
|
+
else:
|
482
482
|
self.make_button_green(self.esm_dict["QRZ"])
|
483
483
|
buttons_to_send.append(self.esm_dict["QRZ"])
|
484
484
|
buttons_to_send.append("LOGIT")
|
485
|
-
|
486
|
-
self.make_button_green(self.esm_dict["AGN"])
|
487
|
-
buttons_to_send.append(self.esm_dict["AGN"])
|
485
|
+
|
488
486
|
if with_enter is True and bool(len(buttons_to_send)):
|
489
487
|
for button in buttons_to_send:
|
490
488
|
if button:
|
@@ -502,13 +500,11 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
|
|
502
500
|
if self.other_2.text() == "" or self.other_1.text() == "":
|
503
501
|
self.make_button_green(self.esm_dict["AGN"])
|
504
502
|
buttons_to_send.append(self.esm_dict["AGN"])
|
505
|
-
|
503
|
+
else:
|
506
504
|
self.make_button_green(self.esm_dict["EXCH"])
|
507
505
|
buttons_to_send.append(self.esm_dict["EXCH"])
|
508
506
|
buttons_to_send.append("LOGIT")
|
509
|
-
|
510
|
-
self.make_button_green(self.esm_dict["AGN"])
|
511
|
-
buttons_to_send.append(self.esm_dict["AGN"])
|
507
|
+
|
512
508
|
if with_enter is True and bool(len(buttons_to_send)):
|
513
509
|
for button in buttons_to_send:
|
514
510
|
if button:
|
@@ -516,3 +512,14 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
|
|
516
512
|
self.save_contact()
|
517
513
|
continue
|
518
514
|
self.process_function_key(button)
|
515
|
+
|
516
|
+
|
517
|
+
def check_call_history(self):
|
518
|
+
""""""
|
519
|
+
result = self.database.fetch_call_history(self.callsign.text())
|
520
|
+
if result:
|
521
|
+
self.history_info.setText(f"{result.get('UserText','')}")
|
522
|
+
if self.other_1.text() == "":
|
523
|
+
self.other_1.setText(f"{result.get('Name', '')}")
|
524
|
+
if self.other_2.text() == "":
|
525
|
+
self.other_2.setText(f"{result.get('Exch1', '')}")
|
@@ -349,7 +349,7 @@ def cabrillo(self, file_encoding):
|
|
349
349
|
logger.debug("%s", filename)
|
350
350
|
log = self.database.fetch_all_contacts_asc()
|
351
351
|
try:
|
352
|
-
with open(filename, "w", encoding=
|
352
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
353
353
|
output_cabrillo_line(
|
354
354
|
"START-OF-LOG: 3.0",
|
355
355
|
"\r\n",
|
@@ -522,3 +522,104 @@ def cabrillo(self, file_encoding):
|
|
522
522
|
logger.critical("cabrillo: IO error: %s, writing to %s", exception, filename)
|
523
523
|
self.show_message_box(f"Error saving Cabrillo: {exception} {filename}")
|
524
524
|
return
|
525
|
+
|
526
|
+
|
527
|
+
def check_call_history(self):
|
528
|
+
""""""
|
529
|
+
result = self.database.fetch_call_history(self.callsign.text())
|
530
|
+
print(f"{result=}")
|
531
|
+
if result:
|
532
|
+
self.history_info.setText(f"{result.get('UserText','')}")
|
533
|
+
if self.other_2.text() == "":
|
534
|
+
self.other_2.setText(f"{result.get('Exch1', '')}")
|
535
|
+
|
536
|
+
|
537
|
+
def process_esm(self, new_focused_widget=None, with_enter=False):
|
538
|
+
"""ESM State Machine"""
|
539
|
+
|
540
|
+
# self.pref["run_state"]
|
541
|
+
|
542
|
+
# -----===== Assigned F-Keys =====-----
|
543
|
+
# self.esm_dict["CQ"]
|
544
|
+
# self.esm_dict["EXCH"]
|
545
|
+
# self.esm_dict["QRZ"]
|
546
|
+
# self.esm_dict["AGN"]
|
547
|
+
# self.esm_dict["HISCALL"]
|
548
|
+
# self.esm_dict["MYCALL"]
|
549
|
+
# self.esm_dict["QSOB4"]
|
550
|
+
|
551
|
+
# ----==== text fields ====----
|
552
|
+
# self.callsign
|
553
|
+
# self.sent
|
554
|
+
# self.receive
|
555
|
+
# self.other_1
|
556
|
+
# self.other_2
|
557
|
+
|
558
|
+
if new_focused_widget is not None:
|
559
|
+
self.current_widget = self.inputs_dict.get(new_focused_widget)
|
560
|
+
|
561
|
+
# print(f"checking esm {self.current_widget=} {with_enter=} {self.pref.get("run_state")=}")
|
562
|
+
|
563
|
+
for a_button in [
|
564
|
+
self.esm_dict["CQ"],
|
565
|
+
self.esm_dict["EXCH"],
|
566
|
+
self.esm_dict["QRZ"],
|
567
|
+
self.esm_dict["AGN"],
|
568
|
+
self.esm_dict["HISCALL"],
|
569
|
+
self.esm_dict["MYCALL"],
|
570
|
+
self.esm_dict["QSOB4"],
|
571
|
+
]:
|
572
|
+
if a_button is not None:
|
573
|
+
self.restore_button_color(a_button)
|
574
|
+
|
575
|
+
buttons_to_send = []
|
576
|
+
|
577
|
+
if self.pref.get("run_state"):
|
578
|
+
if self.current_widget == "callsign":
|
579
|
+
if len(self.callsign.text()) < 3:
|
580
|
+
self.make_button_green(self.esm_dict["CQ"])
|
581
|
+
buttons_to_send.append(self.esm_dict["CQ"])
|
582
|
+
elif len(self.callsign.text()) > 2:
|
583
|
+
self.make_button_green(self.esm_dict["HISCALL"])
|
584
|
+
self.make_button_green(self.esm_dict["EXCH"])
|
585
|
+
buttons_to_send.append(self.esm_dict["HISCALL"])
|
586
|
+
buttons_to_send.append(self.esm_dict["EXCH"])
|
587
|
+
|
588
|
+
elif self.current_widget == "other_2":
|
589
|
+
if self.other_2.text() == "":
|
590
|
+
self.make_button_green(self.esm_dict["AGN"])
|
591
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
592
|
+
else:
|
593
|
+
self.make_button_green(self.esm_dict["QRZ"])
|
594
|
+
buttons_to_send.append(self.esm_dict["QRZ"])
|
595
|
+
buttons_to_send.append("LOGIT")
|
596
|
+
|
597
|
+
if with_enter is True and bool(len(buttons_to_send)):
|
598
|
+
for button in buttons_to_send:
|
599
|
+
if button:
|
600
|
+
if button == "LOGIT":
|
601
|
+
self.save_contact()
|
602
|
+
continue
|
603
|
+
self.process_function_key(button)
|
604
|
+
else:
|
605
|
+
if self.current_widget == "callsign":
|
606
|
+
if len(self.callsign.text()) > 2:
|
607
|
+
self.make_button_green(self.esm_dict["MYCALL"])
|
608
|
+
buttons_to_send.append(self.esm_dict["MYCALL"])
|
609
|
+
|
610
|
+
elif self.current_widget == "other_2":
|
611
|
+
if self.other_2.text() == "":
|
612
|
+
self.make_button_green(self.esm_dict["AGN"])
|
613
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
614
|
+
else:
|
615
|
+
self.make_button_green(self.esm_dict["EXCH"])
|
616
|
+
buttons_to_send.append(self.esm_dict["EXCH"])
|
617
|
+
buttons_to_send.append("LOGIT")
|
618
|
+
|
619
|
+
if with_enter is True and bool(len(buttons_to_send)):
|
620
|
+
for button in buttons_to_send:
|
621
|
+
if button:
|
622
|
+
if button == "LOGIT":
|
623
|
+
self.save_contact()
|
624
|
+
continue
|
625
|
+
self.process_function_key(button)
|
@@ -256,7 +256,7 @@ def cabrillo(self, file_encoding):
|
|
256
256
|
logger.debug("%s", filename)
|
257
257
|
log = self.database.fetch_all_contacts_asc()
|
258
258
|
try:
|
259
|
-
with open(filename, "w", encoding=
|
259
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
260
260
|
output_cabrillo_line(
|
261
261
|
"START-OF-LOG: 3.0",
|
262
262
|
"\r\n",
|
@@ -256,7 +256,7 @@ def cabrillo(self, file_encoding):
|
|
256
256
|
logger.debug("%s", filename)
|
257
257
|
log = self.database.fetch_all_contacts_asc()
|
258
258
|
try:
|
259
|
-
with open(filename, "w", encoding=
|
259
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
260
260
|
output_cabrillo_line(
|
261
261
|
"START-OF-LOG: 3.0",
|
262
262
|
"\r\n",
|
@@ -213,7 +213,7 @@ def cabrillo(self, file_encoding):
|
|
213
213
|
logger.debug("%s", filename)
|
214
214
|
log = self.database.fetch_all_contacts_asc()
|
215
215
|
try:
|
216
|
-
with open(filename, "w", encoding=
|
216
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
217
217
|
output_cabrillo_line(
|
218
218
|
"START-OF-LOG: 3.0",
|
219
219
|
"\r\n",
|
@@ -209,7 +209,7 @@ def cabrillo(self, file_encoding):
|
|
209
209
|
logger.debug("%s", filename)
|
210
210
|
log = self.database.fetch_all_contacts_asc()
|
211
211
|
try:
|
212
|
-
with open(filename, "w", encoding=
|
212
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
213
213
|
output_cabrillo_line(
|
214
214
|
"START-OF-LOG: 3.0",
|
215
215
|
"\r\n",
|
@@ -272,7 +272,7 @@ def cabrillo(self, file_encoding):
|
|
272
272
|
mults = show_mults(self)
|
273
273
|
log = self.database.fetch_all_contacts_asc()
|
274
274
|
try:
|
275
|
-
with open(filename, "w", encoding=
|
275
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
276
276
|
output_cabrillo_line(
|
277
277
|
"START-OF-LOG: 2.0", "\r\n", file_descriptor, file_encoding
|
278
278
|
)
|
@@ -243,7 +243,7 @@ def cabrillo(self, file_encoding):
|
|
243
243
|
mults = show_mults(self)
|
244
244
|
log = self.database.fetch_all_contacts_asc()
|
245
245
|
try:
|
246
|
-
with open(filename, "w", encoding=
|
246
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
247
247
|
output_cabrillo_line(
|
248
248
|
"START-OF-LOG: 2.0", "\r\n", file_descriptor, file_encoding
|
249
249
|
)
|
@@ -193,7 +193,7 @@ def cabrillo(self, file_encoding):
|
|
193
193
|
logger.debug("%s", filename)
|
194
194
|
log = self.database.fetch_all_contacts_asc()
|
195
195
|
try:
|
196
|
-
with open(filename, "w", encoding=
|
196
|
+
with open(filename, "w", encoding=file_encoding) as file_descriptor:
|
197
197
|
output_cabrillo_line(
|
198
198
|
"START-OF-LOG: 3.0",
|
199
199
|
"\r\n",
|
@@ -491,3 +491,15 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
|
|
491
491
|
self.save_contact()
|
492
492
|
continue
|
493
493
|
self.process_function_key(button)
|
494
|
+
|
495
|
+
|
496
|
+
def check_call_history(self):
|
497
|
+
""""""
|
498
|
+
result = self.database.fetch_call_history(self.callsign.text())
|
499
|
+
print(f"{result=}")
|
500
|
+
if result:
|
501
|
+
self.history_info.setText(f"{result.get('UserText','')}")
|
502
|
+
if self.other_1.text() == "":
|
503
|
+
self.other_1.setText(f"{result.get('Name', '')}")
|
504
|
+
if self.other_2.text() == "":
|
505
|
+
self.other_2.setText(f"{result.get('Exch1', '')}")
|