not1mm 24.10.27.2__tar.gz → 24.11.3__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.10.27.2 → not1mm-24.11.3}/PKG-INFO +17 -33
- {not1mm-24.10.27.2 → not1mm-24.11.3}/README.md +16 -32
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/__main__.py +114 -3
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/configuration.ui +617 -612
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/main.ui +34 -7
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/new_contest.ui +5 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/database.py +97 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/settings.py +8 -1
- not1mm-24.11.3/not1mm/lib/version.py +3 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/arrl_ss_cw.py +10 -0
- not1mm-24.11.3/not1mm/plugins/raem.py +592 -0
- not1mm-24.11.3/not1mm/test.py +61 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm.egg-info/PKG-INFO +17 -33
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm.egg-info/SOURCES.txt +1 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm.egg-info/top_level.txt +0 -1
- {not1mm-24.10.27.2 → not1mm-24.11.3}/pyproject.toml +2 -2
- not1mm-24.10.27.2/not1mm/lib/version.py +0 -3
- not1mm-24.10.27.2/not1mm/test.py +0 -11
- {not1mm-24.10.27.2 → not1mm-24.11.3}/LICENSE +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/__init__.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/bandmap.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/checkwindow.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/MASTER.SCP +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/about.ui +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/alpha bravo charlie delta.txt +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/bandmap.ui +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/check.png +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/checkwindow.ui +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/contests.sql +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/cty.json +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/cwmacros.txt +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/donors.html +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/editcontact.ui +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/editmacro.ui +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/greendot.png +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/k6gte-not1mm.desktop +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/k6gte.not1mm-128.png +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/k6gte.not1mm-32.png +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/k6gte.not1mm-64.png +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/logwindow.ui +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/logwindowx.ui +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/not1mm.html +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/opon.ui +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/0.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/1.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/2.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/3.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/4.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/5.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/6.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/7.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/73.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/8.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/9.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/a.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/again.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/b.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/c.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/contest.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/cq.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/cq2.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/d.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/e.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/f.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/g.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/h.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/i.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/j.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/k.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/k6gte.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/l.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/m.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/mynumber.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/n.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/nil.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/o.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/p.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/q.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/r.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/roger.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/s.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/space.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/t.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/thankyou.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/u.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/v.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/w.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/x.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/y.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/yourcall.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/phonetics/z.wav +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/pickcontest.ui +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/radio_green.png +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/radio_grey.png +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/radio_red.png +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/reddot.png +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/rttymacros.txt +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/settings.ui +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/splash.png +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/ssbmacros.txt +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/data/vfo.ui +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/fsutils.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/__init__.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/about.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/cat_interface.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/cwinterface.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/edit_contact.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/edit_macro.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/edit_opon.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/edit_station.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/fldigi_sendstring.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/fldigi_watcher.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/ft8_watcher.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/ham_utility.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/lookup.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/multicast.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/n1mm.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/new_contest.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/playsound.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/plugin_common.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/select_contest.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/super_check_partial.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lib/versiontest.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/logwindow.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/lookupservice.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/10_10_fall_cw.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/10_10_spring_cw.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/10_10_summer_phone.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/10_10_winter_phone.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/__init__.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/arrl_10m.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/arrl_dx_cw.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/arrl_dx_ssb.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/arrl_field_day.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/arrl_rtty_ru.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/arrl_ss_phone.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/arrl_vhf_jan.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/arrl_vhf_jun.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/arrl_vhf_sep.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/canada_day.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/cq_160_cw.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/cq_160_ssb.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/cq_wpx_cw.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/cq_wpx_rtty.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/cq_wpx_ssb.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/cq_ww_cw.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/cq_ww_rtty.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/cq_ww_ssb.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/cwt.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/general_logging.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/helvetia.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/iaru_hf.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/icwc_mst.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/jidx_cw.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/jidx_ph.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/k1usn_sst.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/naqp_cw.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/naqp_rtty.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/naqp_ssb.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/phone_weekly_test.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/ref_cw.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/ref_ssb.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/stew_perry_topband.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/weekly_rtty.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/plugins/winter_field_day.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/radio.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/vfo.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm/voice_keying.py +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm.egg-info/dependency_links.txt +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm.egg-info/entry_points.txt +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/not1mm.egg-info/requires.txt +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/setup.cfg +0 -0
- {not1mm-24.10.27.2 → not1mm-24.11.3}/test/contests.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.
|
3
|
+
Version: 24.11.3
|
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
|
@@ -118,7 +118,7 @@ Requires-Dist: Levenshtein
|
|
118
118
|
- [Cabrillo](#cabrillo)
|
119
119
|
- [ADIF](#adif)
|
120
120
|
- [Recalulate Mults](#recalulate-mults)
|
121
|
-
- [
|
121
|
+
- [ESM](#esm)
|
122
122
|
- [Run States](#run-states)
|
123
123
|
- [CQ](#cq)
|
124
124
|
- [Call Entered send His Call and the Exchange](#call-entered-send-his-call-and-the-exchange)
|
@@ -128,10 +128,12 @@ Requires-Dist: Levenshtein
|
|
128
128
|
- [With his call entered, Send your call](#with-his-call-entered-send-your-call)
|
129
129
|
- [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
|
130
130
|
- [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
|
131
|
+
- [Call History Files](#call-history-files)
|
131
132
|
- [Contest specific notes](#contest-specific-notes)
|
132
133
|
- [ARRL Sweekstakes](#arrl-sweekstakes)
|
133
134
|
- [The exchange parser](#the-exchange-parser)
|
134
135
|
- [The exchange](#the-exchange)
|
136
|
+
- [RAEM](#raem)
|
135
137
|
|
136
138
|
## What and why is Not1MM
|
137
139
|
|
@@ -224,6 +226,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
224
226
|
- **K1USN Slow Speed Test**
|
225
227
|
- **NAQP CW, RTTY, SSB**
|
226
228
|
- Phone Weekly Test
|
229
|
+
- **RAEM**
|
227
230
|
- **RAC Canada Day**
|
228
231
|
- **REF CW, SSB**
|
229
232
|
- Stew Perry Topband
|
@@ -232,36 +235,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
232
235
|
|
233
236
|
## Recent Changes (Polishing the Turd)
|
234
237
|
|
235
|
-
- [24-
|
236
|
-
- [24-
|
237
|
-
- [24-10-27] Fix bug where a contacts info could be carried over to new contact if no new value was written.
|
238
|
-
- [24-10-26] Clear inputs when seeking to a call from the bandmap via the arrow up and down. Fixed bandmap crash from bad telnet data. Drop beacons from bandmap.
|
239
|
-
- [24-10-25] Add File Menu option to create either an ASCII or UTF8 Cabrillo.
|
240
|
-
- [24-10-24-1] Make all Cabrillo files with UTF-8.
|
241
|
-
- [24-10-24] Forgot to convert the VFO dockwidget along with the rest. CQ WW CW, Dupes now score 0.
|
242
|
-
- [24-10-23] Remove duplicate marked calls in the bandmap.
|
243
|
-
- [24-10-22] Added ESM to RAC Canada Day. Added French REF.
|
244
|
-
- [24-10-21] Scaled back the hits returned from the check window from 25 to 20. Seems less resource hungry now.
|
245
|
-
- [24-10-20-1] ReWrote how the widgets interact. I probably broke a thing or two. Let me know.
|
246
|
-
- [24-10-20] Add ESM to ARRL DX.
|
247
|
-
- [24-10-19-1] Rewrite part of CAT control.
|
248
|
-
- [24-10-19] Change ESM button states when the run state is toggled. Add ESM to ARRL Field Day and Winter Field Day.
|
249
|
-
- [24-10-18] Fixed marked spots showing the correct time.
|
250
|
-
- [24-10-17-2] Add ESM to ARRL Sweepstakes.
|
251
|
-
- [24-10-17-1] Fix dupe check. Reordered change mode and interface update sequence. Resend mode if rigctld does not report back `RPRT 0`
|
252
|
-
- [24-10-17] Increased max CW speed to 99, 'cause people be crazy. Trying smaller timeout for the rigctlsocket. Not having the checkwindow process events while not visible since it's a resource hog.
|
253
|
-
- [24-10-15-1] Fix callsigns with a slash failing check during ESM.
|
254
|
-
- [24-10-15] Add NAQP RTTY, Added ESM to NAQP.
|
255
|
-
- [24-10-14] Add ESM to CQ WPX.
|
256
|
-
- [24-10-13] Added ESM to Weekly RTTY, K1USN and CWT.
|
257
|
-
- [24-10-11] added ESM to CQWW SSB and RTTY.
|
258
|
-
- [24-10-10] Add ESM to CQ WW CW to test it out.
|
259
|
-
- [24-10-8] Fix crash on Tune to spot. Change placeholder text for the CW port for those unable to read documentation.
|
260
|
-
- [24-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
|
261
|
-
- [24-10-5-1] Store the bandmap spots age timer in the preferences.
|
262
|
-
- [24-10-5] Force reselction of contest after different DB opened.
|
263
|
-
- [24-10-2] Add WPX RTTY.
|
264
|
-
- [24-10-1] Merged PR removing leading zeros from serial numbers. Merged PR correcting the parsing of lookups for previous name and state in the CWT.
|
238
|
+
- [24-11-3] Added RAEM contest
|
239
|
+
- [24-11-2] Add beginning of call history files. Add command buttons.
|
265
240
|
|
266
241
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
267
242
|
|
@@ -865,7 +840,7 @@ After editing a contact and before generating a Cabrillo file. There is a Misc
|
|
865
840
|
menu option that will recalculate the multipliers incase an edit had caused a
|
866
841
|
change.
|
867
842
|
|
868
|
-
##
|
843
|
+
## ESM
|
869
844
|
|
870
845
|
I caved and started working on ESM or Enter Sends Message. To test it out you can
|
871
846
|
go to `FILE -> Configuration Settings`
|
@@ -912,6 +887,10 @@ QRZ (for Run) or Exchange (for S&P) is sent.
|
|
912
887
|
|
913
888
|

|
914
889
|
|
890
|
+
## Call History Files
|
891
|
+
|
892
|
+
I've started work on using 'call history files'.
|
893
|
+
|
915
894
|
## Contest specific notes
|
916
895
|
|
917
896
|
I found it might be beneficial to have a section devoted to wierd quirky things
|
@@ -954,3 +933,8 @@ In the `Sent Exchange` field of the New Contest dialog put in the Precidence,
|
|
954
933
|
Call, Check and Section. Example: `A K6GTE 17 ORG`.
|
955
934
|
|
956
935
|
For the Run Exchange macro I'd put `{HISCALL} {SENTNR} {EXCH}`.
|
936
|
+
|
937
|
+
### RAEM
|
938
|
+
|
939
|
+
In the New/Edit Contest dialog, in the exchange field put just your Lat and Lon.
|
940
|
+
for me 33N117W. And in the exchange macro put `# {EXCH}`.
|
@@ -87,7 +87,7 @@
|
|
87
87
|
- [Cabrillo](#cabrillo)
|
88
88
|
- [ADIF](#adif)
|
89
89
|
- [Recalulate Mults](#recalulate-mults)
|
90
|
-
- [
|
90
|
+
- [ESM](#esm)
|
91
91
|
- [Run States](#run-states)
|
92
92
|
- [CQ](#cq)
|
93
93
|
- [Call Entered send His Call and the Exchange](#call-entered-send-his-call-and-the-exchange)
|
@@ -97,10 +97,12 @@
|
|
97
97
|
- [With his call entered, Send your call](#with-his-call-entered-send-your-call)
|
98
98
|
- [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
|
99
99
|
- [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
|
100
|
+
- [Call History Files](#call-history-files)
|
100
101
|
- [Contest specific notes](#contest-specific-notes)
|
101
102
|
- [ARRL Sweekstakes](#arrl-sweekstakes)
|
102
103
|
- [The exchange parser](#the-exchange-parser)
|
103
104
|
- [The exchange](#the-exchange)
|
105
|
+
- [RAEM](#raem)
|
104
106
|
|
105
107
|
## What and why is Not1MM
|
106
108
|
|
@@ -193,6 +195,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
193
195
|
- **K1USN Slow Speed Test**
|
194
196
|
- **NAQP CW, RTTY, SSB**
|
195
197
|
- Phone Weekly Test
|
198
|
+
- **RAEM**
|
196
199
|
- **RAC Canada Day**
|
197
200
|
- **REF CW, SSB**
|
198
201
|
- Stew Perry Topband
|
@@ -201,36 +204,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
201
204
|
|
202
205
|
## Recent Changes (Polishing the Turd)
|
203
206
|
|
204
|
-
- [24-
|
205
|
-
- [24-
|
206
|
-
- [24-10-27] Fix bug where a contacts info could be carried over to new contact if no new value was written.
|
207
|
-
- [24-10-26] Clear inputs when seeking to a call from the bandmap via the arrow up and down. Fixed bandmap crash from bad telnet data. Drop beacons from bandmap.
|
208
|
-
- [24-10-25] Add File Menu option to create either an ASCII or UTF8 Cabrillo.
|
209
|
-
- [24-10-24-1] Make all Cabrillo files with UTF-8.
|
210
|
-
- [24-10-24] Forgot to convert the VFO dockwidget along with the rest. CQ WW CW, Dupes now score 0.
|
211
|
-
- [24-10-23] Remove duplicate marked calls in the bandmap.
|
212
|
-
- [24-10-22] Added ESM to RAC Canada Day. Added French REF.
|
213
|
-
- [24-10-21] Scaled back the hits returned from the check window from 25 to 20. Seems less resource hungry now.
|
214
|
-
- [24-10-20-1] ReWrote how the widgets interact. I probably broke a thing or two. Let me know.
|
215
|
-
- [24-10-20] Add ESM to ARRL DX.
|
216
|
-
- [24-10-19-1] Rewrite part of CAT control.
|
217
|
-
- [24-10-19] Change ESM button states when the run state is toggled. Add ESM to ARRL Field Day and Winter Field Day.
|
218
|
-
- [24-10-18] Fixed marked spots showing the correct time.
|
219
|
-
- [24-10-17-2] Add ESM to ARRL Sweepstakes.
|
220
|
-
- [24-10-17-1] Fix dupe check. Reordered change mode and interface update sequence. Resend mode if rigctld does not report back `RPRT 0`
|
221
|
-
- [24-10-17] Increased max CW speed to 99, 'cause people be crazy. Trying smaller timeout for the rigctlsocket. Not having the checkwindow process events while not visible since it's a resource hog.
|
222
|
-
- [24-10-15-1] Fix callsigns with a slash failing check during ESM.
|
223
|
-
- [24-10-15] Add NAQP RTTY, Added ESM to NAQP.
|
224
|
-
- [24-10-14] Add ESM to CQ WPX.
|
225
|
-
- [24-10-13] Added ESM to Weekly RTTY, K1USN and CWT.
|
226
|
-
- [24-10-11] added ESM to CQWW SSB and RTTY.
|
227
|
-
- [24-10-10] Add ESM to CQ WW CW to test it out.
|
228
|
-
- [24-10-8] Fix crash on Tune to spot. Change placeholder text for the CW port for those unable to read documentation.
|
229
|
-
- [24-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
|
230
|
-
- [24-10-5-1] Store the bandmap spots age timer in the preferences.
|
231
|
-
- [24-10-5] Force reselction of contest after different DB opened.
|
232
|
-
- [24-10-2] Add WPX RTTY.
|
233
|
-
- [24-10-1] Merged PR removing leading zeros from serial numbers. Merged PR correcting the parsing of lookups for previous name and state in the CWT.
|
207
|
+
- [24-11-3] Added RAEM contest
|
208
|
+
- [24-11-2] Add beginning of call history files. Add command buttons.
|
234
209
|
|
235
210
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
236
211
|
|
@@ -834,7 +809,7 @@ After editing a contact and before generating a Cabrillo file. There is a Misc
|
|
834
809
|
menu option that will recalculate the multipliers incase an edit had caused a
|
835
810
|
change.
|
836
811
|
|
837
|
-
##
|
812
|
+
## ESM
|
838
813
|
|
839
814
|
I caved and started working on ESM or Enter Sends Message. To test it out you can
|
840
815
|
go to `FILE -> Configuration Settings`
|
@@ -881,6 +856,10 @@ QRZ (for Run) or Exchange (for S&P) is sent.
|
|
881
856
|
|
882
857
|

|
883
858
|
|
859
|
+
## Call History Files
|
860
|
+
|
861
|
+
I've started work on using 'call history files'.
|
862
|
+
|
884
863
|
## Contest specific notes
|
885
864
|
|
886
865
|
I found it might be beneficial to have a section devoted to wierd quirky things
|
@@ -923,3 +902,8 @@ In the `Sent Exchange` field of the New Contest dialog put in the Precidence,
|
|
923
902
|
Call, Check and Section. Example: `A K6GTE 17 ORG`.
|
924
903
|
|
925
904
|
For the Run Exchange macro I'd put `{HISCALL} {SENTNR} {EXCH}`.
|
905
|
+
|
906
|
+
### RAEM
|
907
|
+
|
908
|
+
In the New/Edit Contest dialog, in the exchange field put just your Lat and Lon.
|
909
|
+
for me 33N117W. And in the exchange macro put `# {EXCH}`.
|
@@ -164,6 +164,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
164
164
|
text_color = QColorConstants.Black
|
165
165
|
current_palette = None
|
166
166
|
use_esm = False
|
167
|
+
use_call_history = False
|
167
168
|
esm_dict = {}
|
168
169
|
|
169
170
|
radio_thread = QThread()
|
@@ -199,6 +200,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
199
200
|
self.setCorner(Qt.Corner.TopLeftCorner, Qt.DockWidgetArea.LeftDockWidgetArea)
|
200
201
|
self.setCorner(Qt.Corner.BottomLeftCorner, Qt.DockWidgetArea.LeftDockWidgetArea)
|
201
202
|
uic.loadUi(fsutils.APP_DATA_PATH / "main.ui", self)
|
203
|
+
self.history_info.hide()
|
202
204
|
QApplication.instance().focusObjectChanged.connect(self.on_focus_changed)
|
203
205
|
self.inputs_dict = {
|
204
206
|
self.callsign: "callsign",
|
@@ -224,12 +226,15 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
224
226
|
|
225
227
|
self.actionCW_Macros.triggered.connect(self.cw_macros_state_changed)
|
226
228
|
self.actionDark_Mode_2.triggered.connect(self.dark_mode_state_changed)
|
227
|
-
self.
|
229
|
+
self.actionCommand_Buttons_2.triggered.connect(
|
230
|
+
self.command_buttons_state_change
|
231
|
+
)
|
228
232
|
self.actionLog_Window.triggered.connect(self.launch_log_window)
|
229
233
|
self.actionBandmap.triggered.connect(self.launch_bandmap_window)
|
230
234
|
self.actionCheck_Window.triggered.connect(self.launch_check_window)
|
231
235
|
self.actionVFO.triggered.connect(self.launch_vfo)
|
232
236
|
self.actionRecalculate_Mults.triggered.connect(self.recalculate_mults)
|
237
|
+
self.actionLoad_Call_History_File.triggered.connect(self.load_call_history)
|
233
238
|
|
234
239
|
self.actionGenerate_Cabrillo_ASCII.triggered.connect(
|
235
240
|
lambda x: self.generate_cabrillo("ascii")
|
@@ -290,6 +295,12 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
290
295
|
self.radio_green = QtGui.QPixmap(str(icon_path / "radio_green.png"))
|
291
296
|
self.radio_icon.setPixmap(self.radio_grey)
|
292
297
|
|
298
|
+
self.log_it.clicked.connect(self.save_contact)
|
299
|
+
self.wipe.clicked.connect(self.clearinputs)
|
300
|
+
self.esc_stop.clicked.connect(self.stop_cw)
|
301
|
+
self.mark.clicked.connect(self.mark_spot)
|
302
|
+
self.spot_it.clicked.connect(self.spot_dx)
|
303
|
+
|
293
304
|
self.F1.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
|
294
305
|
self.F1.customContextMenuRequested.connect(lambda x: self.edit_macro(self.F1))
|
295
306
|
self.F1.clicked.connect(lambda x: self.process_function_key(self.F1))
|
@@ -703,6 +714,45 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
703
714
|
"You can udate to the current version by using:\npip install -U not1mm"
|
704
715
|
)
|
705
716
|
|
717
|
+
def load_call_history(self) -> None:
|
718
|
+
""""""
|
719
|
+
filename = self.filepicker("other")
|
720
|
+
if filename:
|
721
|
+
self.database.create_callhistory_table()
|
722
|
+
self.database.delete_callhistory()
|
723
|
+
|
724
|
+
try:
|
725
|
+
with open(filename, "rt", encoding="utf-8") as file_descriptor:
|
726
|
+
lines = file_descriptor.readlines()
|
727
|
+
if "!!Order!!" in lines[0]:
|
728
|
+
item_names = lines[0].strip().split(",")
|
729
|
+
# ['!!Order!!', 'Call', 'Sect', 'State', 'CK', 'UserText', '']
|
730
|
+
item_names = item_names[1:-1]
|
731
|
+
# ['Call', 'Sect', 'State', 'CK', 'UserText']
|
732
|
+
lines = lines[1:]
|
733
|
+
group_list = []
|
734
|
+
for line in lines:
|
735
|
+
if line.startswith("#"):
|
736
|
+
continue
|
737
|
+
group = {}
|
738
|
+
fields = line.strip().split(",")
|
739
|
+
# ['4U1WB','MDC','DC','89','']
|
740
|
+
count = 0
|
741
|
+
try:
|
742
|
+
for item in item_names:
|
743
|
+
if item == "":
|
744
|
+
continue
|
745
|
+
group[item] = fields[count]
|
746
|
+
count += 1
|
747
|
+
group_list.append(group)
|
748
|
+
# database.add_callhistory_item(group)
|
749
|
+
# print(f"{group=}")
|
750
|
+
except IndexError:
|
751
|
+
...
|
752
|
+
self.database.add_callhistory_items(group_list)
|
753
|
+
except FileNotFoundError as err:
|
754
|
+
self.show_message_box(f"{err}")
|
755
|
+
|
706
756
|
def on_focus_changed(self, new):
|
707
757
|
""""""
|
708
758
|
if self.use_esm:
|
@@ -1728,6 +1778,14 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1728
1778
|
"Database (*.db)",
|
1729
1779
|
options=options,
|
1730
1780
|
)
|
1781
|
+
if action == "other":
|
1782
|
+
file, _ = QFileDialog.getOpenFileName(
|
1783
|
+
self,
|
1784
|
+
"Choose a File",
|
1785
|
+
"~/",
|
1786
|
+
"Any (*.*)",
|
1787
|
+
options=options,
|
1788
|
+
)
|
1731
1789
|
return file
|
1732
1790
|
|
1733
1791
|
def recalculate_mults(self) -> None:
|
@@ -1907,6 +1965,43 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1907
1965
|
if self.rig_control.interface == "flrig":
|
1908
1966
|
self.rig_control.cat.set_flrig_cw_speed(self.cw_speed.value())
|
1909
1967
|
|
1968
|
+
def stop_cw(self):
|
1969
|
+
""""""
|
1970
|
+
if self.cw is not None:
|
1971
|
+
if self.cw.servertype == 1:
|
1972
|
+
self.cw.sendcw("\x1b4")
|
1973
|
+
return
|
1974
|
+
if self.rig_control:
|
1975
|
+
if self.rig_control.online:
|
1976
|
+
if self.pref.get("cwtype") == 3 and self.rig_control is not None:
|
1977
|
+
if self.rig_control.interface == "flrig":
|
1978
|
+
self.rig_control.cat.set_flrig_cw_send(False)
|
1979
|
+
self.rig_control.cat.set_flrig_cw_send(True)
|
1980
|
+
|
1981
|
+
def mark_spot(self):
|
1982
|
+
""""""
|
1983
|
+
freq = self.radio_state.get("vfoa")
|
1984
|
+
dx = self.callsign.text()
|
1985
|
+
if freq and dx:
|
1986
|
+
cmd = {}
|
1987
|
+
cmd["cmd"] = "MARKDX"
|
1988
|
+
cmd["dx"] = dx
|
1989
|
+
cmd["freq"] = float(int(freq) / 1000)
|
1990
|
+
if self.bandmap_window:
|
1991
|
+
self.bandmap_window.msg_from_main(cmd)
|
1992
|
+
|
1993
|
+
def spot_dx(self):
|
1994
|
+
""""""
|
1995
|
+
freq = self.radio_state.get("vfoa")
|
1996
|
+
dx = self.callsign.text()
|
1997
|
+
if freq and dx:
|
1998
|
+
cmd = {}
|
1999
|
+
cmd["cmd"] = "SPOTDX"
|
2000
|
+
cmd["dx"] = dx
|
2001
|
+
cmd["freq"] = float(int(freq) / 1000)
|
2002
|
+
if self.bandmap_window:
|
2003
|
+
self.bandmap_window.msg_from_main(cmd)
|
2004
|
+
|
1910
2005
|
def keyPressEvent(self, event) -> None: # pylint: disable=invalid-name
|
1911
2006
|
"""
|
1912
2007
|
This overrides Qt key event.
|
@@ -1921,6 +2016,12 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1921
2016
|
None
|
1922
2017
|
"""
|
1923
2018
|
modifier = event.modifiers()
|
2019
|
+
if (
|
2020
|
+
event.key() == Qt.Key.Key_Equal
|
2021
|
+
and modifier == Qt.KeyboardModifier.ControlModifier
|
2022
|
+
):
|
2023
|
+
self.save_contact()
|
2024
|
+
return
|
1924
2025
|
if event.key() == Qt.Key.Key_K:
|
1925
2026
|
self.toggle_cw_entry()
|
1926
2027
|
return
|
@@ -2193,7 +2294,10 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2193
2294
|
score = self.contest.calc_score(self)
|
2194
2295
|
self.score.setText(str(score))
|
2195
2296
|
self.contest.reset_label(self)
|
2196
|
-
if
|
2297
|
+
if (
|
2298
|
+
self.contest.name != "ICWC Medium Speed Test"
|
2299
|
+
and self.contest.name != "RAEM"
|
2300
|
+
):
|
2197
2301
|
if self.current_mode in ("CW", "RTTY"):
|
2198
2302
|
self.sent.setText("599")
|
2199
2303
|
self.receive.setText("599")
|
@@ -2901,6 +3005,9 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2901
3005
|
"DISABLED": None,
|
2902
3006
|
}
|
2903
3007
|
|
3008
|
+
self.use_call_history = self.pref.get("use_call_history", False)
|
3009
|
+
if self.use_call_history:
|
3010
|
+
self.history_info.show()
|
2904
3011
|
self.use_esm = self.pref.get("use_esm", False)
|
2905
3012
|
self.esm_dict["CQ"] = fkey_dict.get(self.pref.get("esm_cq", "DISABLED"))
|
2906
3013
|
self.esm_dict["EXCH"] = fkey_dict.get(self.pref.get("esm_exch", "DISABLED"))
|
@@ -2968,7 +3075,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2968
3075
|
None
|
2969
3076
|
"""
|
2970
3077
|
|
2971
|
-
self.pref["command_buttons"] = self.
|
3078
|
+
self.pref["command_buttons"] = self.actionCommand_Buttons_2.isChecked()
|
2972
3079
|
self.write_preference()
|
2973
3080
|
self.show_command_buttons()
|
2974
3081
|
|
@@ -3125,6 +3232,10 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3125
3232
|
self.lookup_service.msg_from_main(cmd)
|
3126
3233
|
self.next_field.setFocus()
|
3127
3234
|
if self.contest:
|
3235
|
+
if self.use_call_history and hasattr(
|
3236
|
+
self.contest, "check_call_history"
|
3237
|
+
):
|
3238
|
+
self.contest.check_call_history(self)
|
3128
3239
|
if "CQ WW" in self.contest.name or "IARU HF" in self.contest.name:
|
3129
3240
|
self.contest.prefill(self)
|
3130
3241
|
return
|