not1mm 25.1.15__tar.gz → 25.1.23.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-25.1.15 → not1mm-25.1.23.1}/PKG-INFO +20 -20
- {not1mm-25.1.15 → not1mm-25.1.23.1}/README.md +19 -19
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/__main__.py +40 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/main.ui +14 -0
- not1mm-25.1.23.1/not1mm/data/ratewindow.ui +1185 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/database.py +4 -0
- not1mm-25.1.23.1/not1mm/lib/version.py +3 -0
- not1mm-25.1.23.1/not1mm/ratewindow.py +263 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm.egg-info/PKG-INFO +20 -20
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm.egg-info/SOURCES.txt +2 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/pyproject.toml +1 -1
- not1mm-25.1.15/not1mm/lib/version.py +0 -3
- {not1mm-25.1.15 → not1mm-25.1.23.1}/LICENSE +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/__init__.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/bandmap.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/checkwindow.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/MASTER.SCP +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/about.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/alpha bravo charlie delta.txt +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/bandmap.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/check.png +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/checkwindow.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/configuration.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/contests.sql +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/cty.json +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/cwmacros.txt +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/donors.html +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/editcontact.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/editmacro.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/greendot.png +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/k6gte-not1mm.desktop +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/k6gte.not1mm-128.png +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/k6gte.not1mm-32.png +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/k6gte.not1mm-64.png +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/logwindow.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/logwindowx.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/new_contest.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/not1mm.html +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/opon.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/0.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/1.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/2.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/3.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/4.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/5.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/6.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/7.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/73.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/8.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/9.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/a.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/again.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/b.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/c.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/contest.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/cq.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/cq2.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/d.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/e.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/f.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/g.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/h.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/i.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/j.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/k.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/k6gte.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/l.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/m.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/mynumber.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/n.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/nil.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/o.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/p.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/q.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/r.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/roger.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/s.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/space.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/t.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/thankyou.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/u.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/v.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/w.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/x.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/y.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/yourcall.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/phonetics/z.wav +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/pickcontest.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/radio_green.png +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/radio_grey.png +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/radio_red.png +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/reddot.png +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/rttymacros.txt +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/settings.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/splash.png +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/ssbmacros.txt +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/data/vfo.ui +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/fsutils.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/__init__.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/about.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/cat_interface.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/cwinterface.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/edit_contact.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/edit_macro.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/edit_opon.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/edit_station.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/fldigi_sendstring.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/ft8_watcher.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/ham_utility.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/lookup.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/multicast.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/n1mm.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/new_contest.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/plugin_common.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/select_contest.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/settings.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/super_check_partial.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lib/versiontest.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/logwindow.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/lookupservice.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/10_10_fall_cw.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/10_10_spring_cw.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/10_10_summer_phone.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/10_10_winter_phone.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/__init__.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/arrl_10m.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/arrl_160m.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/arrl_dx_cw.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/arrl_dx_ssb.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/arrl_field_day.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/arrl_rtty_ru.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/arrl_ss_cw.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/arrl_ss_phone.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/arrl_vhf_jan.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/arrl_vhf_jun.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/arrl_vhf_sep.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/canada_day.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/cq_160_cw.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/cq_160_ssb.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/cq_wpx_cw.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/cq_wpx_rtty.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/cq_wpx_ssb.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/cq_ww_cw.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/cq_ww_rtty.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/cq_ww_ssb.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/cwt.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/darc_xmas.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/general_logging.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/helvetia.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/iaru_hf.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/icwc_mst.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/jidx_cw.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/jidx_ph.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/k1usn_sst.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/lz-dx.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/naqp_cw.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/naqp_rtty.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/naqp_ssb.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/phone_weekly_test.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/raem.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/ref_cw.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/ref_ssb.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/stew_perry_topband.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/weekly_rtty.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/plugins/winter_field_day.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/radio.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/rtc_service.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/test.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/vfo.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm/voice_keying.py +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm.egg-info/dependency_links.txt +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm.egg-info/entry_points.txt +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm.egg-info/requires.txt +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/not1mm.egg-info/top_level.txt +0 -0
- {not1mm-25.1.15 → not1mm-25.1.23.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: not1mm
|
3
|
-
Version: 25.1.
|
3
|
+
Version: 25.1.23.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
|
@@ -51,7 +51,6 @@ Requires-Dist: Levenshtein
|
|
51
51
|
- [The What](#the-what)
|
52
52
|
- [Target Environment](#target-environment)
|
53
53
|
- [The Why](#the-why)
|
54
|
-
- [General logging](#general-logging)
|
55
54
|
- [Current state](#current-state)
|
56
55
|
- [Code maturity](#code-maturity)
|
57
56
|
- [Data and RTTY](#data-and-rtty)
|
@@ -115,6 +114,7 @@ Requires-Dist: Levenshtein
|
|
115
114
|
- [Editing a contact](#editing-a-contact)
|
116
115
|
- [The Bandmap Window](#the-bandmap-window)
|
117
116
|
- [The Check Window](#the-check-window)
|
117
|
+
- [The Rate Window](#the-rate-window)
|
118
118
|
- [The Remote VFO Window](#the-remote-vfo-window)
|
119
119
|
- [Cabrillo](#cabrillo)
|
120
120
|
- [ADIF](#adif)
|
@@ -164,11 +164,6 @@ I'm a casual contester and could not find any contesting software for Linux that
|
|
164
164
|
I wanted to use. There is [Tucnak](http://tucnak.nagano.cz/) which is very robust
|
165
165
|
and mature. It just wasn't for me.
|
166
166
|
|
167
|
-
### General logging
|
168
|
-
|
169
|
-
In short... Don't. There are much better general purpose QSO logging programs.
|
170
|
-
Try QLog or CQRLog.
|
171
|
-
|
172
167
|
## Current state
|
173
168
|
|
174
169
|
### Code maturity
|
@@ -240,6 +235,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
240
235
|
|
241
236
|
## Recent Changes (Polishing the Turd)
|
242
237
|
|
238
|
+
- [25-1-23] Added a basic rate window. Changed DB to WAL mode.
|
243
239
|
- [25-1-15] Fix bug in ADIF output where mode showed as CW-R and not CW.
|
244
240
|
- [25-1-6] Altered RTTY RU UDP ADIF parse.
|
245
241
|
- [25-1-1] Added ARRL RTTY RU.
|
@@ -248,7 +244,7 @@ See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
|
248
244
|
|
249
245
|
## Flatpak
|
250
246
|
|
251
|
-
I've tried for a couple days to get
|
247
|
+
I've tried for a couple days to get Not1MM to build as a flatpak. I've failed.
|
252
248
|
It keeps failing at building numpy. If you happen to be a flatpak savant, please
|
253
249
|
feel free to look at com.github.mbridak.not1mm.yaml and python3-modules.yaml and
|
254
250
|
clue me into the black magic needed to get it to work.
|
@@ -257,7 +253,7 @@ clue me into the black magic needed to get it to work.
|
|
257
253
|
|
258
254
|
### Prerequisites
|
259
255
|
|
260
|
-
|
256
|
+
Not1MM requires:
|
261
257
|
|
262
258
|
- Python 3.9+
|
263
259
|
- PyQt6
|
@@ -269,7 +265,7 @@ You should install these through your distribution's package manager before cont
|
|
269
265
|
### Common installation recipes for Ubuntu and Fedora
|
270
266
|
|
271
267
|
I've taken the time to install some common Linux distributions into a VM and
|
272
|
-
noted the minimum steps needed to install
|
268
|
+
noted the minimum steps needed to install Not1MM.
|
273
269
|
|
274
270
|
<details>
|
275
271
|
|
@@ -393,14 +389,14 @@ python3 -m pipx ensurepath
|
|
393
389
|
|
394
390
|
#### Installing with pipx
|
395
391
|
|
396
|
-
Then installing
|
392
|
+
Then installing Not1MM is as simple as:
|
397
393
|
|
398
394
|
```bash
|
399
395
|
# Install not1mm
|
400
396
|
pipx install not1mm
|
401
397
|
```
|
402
398
|
|
403
|
-
If you need to later update
|
399
|
+
If you need to later update Not1MM, you can do so with:
|
404
400
|
|
405
401
|
```bash
|
406
402
|
# Update not1mm
|
@@ -423,7 +419,7 @@ source rebuild.sh
|
|
423
419
|
```
|
424
420
|
|
425
421
|
from the root directory. This installs a build chain and a local editable copy
|
426
|
-
of
|
422
|
+
of Not1MM.
|
427
423
|
|
428
424
|
There's two ways to launch the program from the local editable copy.
|
429
425
|
|
@@ -626,14 +622,10 @@ On the Options TAB you can:
|
|
626
622
|
|
627
623
|
## Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts
|
628
624
|
|
629
|
-
|
630
|
-
No setup is needed to be done on
|
625
|
+
Not1MM listens for WSJT-X UDP traffic on the Multicast address 224.0.0.1:2237.
|
626
|
+
No setup is needed to be done on Not1MM's side. That's good because I'm lazy.
|
631
627
|
|
632
|
-
|
633
|
-
way. It just keeps asking what was the last QSO and compares it to the previous response.
|
634
|
-
If it's different, it's new.~~
|
635
|
-
|
636
|
-
not1mm watches for fldigi qso's by watching for UDP traffic from fldigi on 127.0.0.1:9876.
|
628
|
+
Not1MM watches for fldigi qso's by watching for UDP traffic from fldigi on 127.0.0.1:9876.
|
637
629
|
|
638
630
|

|
639
631
|
|
@@ -811,6 +803,14 @@ Clicking on any of these items will change the callsign field.
|
|
811
803
|
|
812
804
|

|
813
805
|
|
806
|
+
### The Rate Window
|
807
|
+
|
808
|
+
`Window`>`Rate Window`
|
809
|
+
|
810
|
+
This window contains QSO rates and counts.
|
811
|
+
|
812
|
+

|
813
|
+
|
814
814
|
### The Remote VFO Window
|
815
815
|
|
816
816
|
You can control the VFO on a remote rig by following the directions listed in
|
@@ -20,7 +20,6 @@
|
|
20
20
|
- [The What](#the-what)
|
21
21
|
- [Target Environment](#target-environment)
|
22
22
|
- [The Why](#the-why)
|
23
|
-
- [General logging](#general-logging)
|
24
23
|
- [Current state](#current-state)
|
25
24
|
- [Code maturity](#code-maturity)
|
26
25
|
- [Data and RTTY](#data-and-rtty)
|
@@ -84,6 +83,7 @@
|
|
84
83
|
- [Editing a contact](#editing-a-contact)
|
85
84
|
- [The Bandmap Window](#the-bandmap-window)
|
86
85
|
- [The Check Window](#the-check-window)
|
86
|
+
- [The Rate Window](#the-rate-window)
|
87
87
|
- [The Remote VFO Window](#the-remote-vfo-window)
|
88
88
|
- [Cabrillo](#cabrillo)
|
89
89
|
- [ADIF](#adif)
|
@@ -133,11 +133,6 @@ I'm a casual contester and could not find any contesting software for Linux that
|
|
133
133
|
I wanted to use. There is [Tucnak](http://tucnak.nagano.cz/) which is very robust
|
134
134
|
and mature. It just wasn't for me.
|
135
135
|
|
136
|
-
### General logging
|
137
|
-
|
138
|
-
In short... Don't. There are much better general purpose QSO logging programs.
|
139
|
-
Try QLog or CQRLog.
|
140
|
-
|
141
136
|
## Current state
|
142
137
|
|
143
138
|
### Code maturity
|
@@ -209,6 +204,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
209
204
|
|
210
205
|
## Recent Changes (Polishing the Turd)
|
211
206
|
|
207
|
+
- [25-1-23] Added a basic rate window. Changed DB to WAL mode.
|
212
208
|
- [25-1-15] Fix bug in ADIF output where mode showed as CW-R and not CW.
|
213
209
|
- [25-1-6] Altered RTTY RU UDP ADIF parse.
|
214
210
|
- [25-1-1] Added ARRL RTTY RU.
|
@@ -217,7 +213,7 @@ See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
|
217
213
|
|
218
214
|
## Flatpak
|
219
215
|
|
220
|
-
I've tried for a couple days to get
|
216
|
+
I've tried for a couple days to get Not1MM to build as a flatpak. I've failed.
|
221
217
|
It keeps failing at building numpy. If you happen to be a flatpak savant, please
|
222
218
|
feel free to look at com.github.mbridak.not1mm.yaml and python3-modules.yaml and
|
223
219
|
clue me into the black magic needed to get it to work.
|
@@ -226,7 +222,7 @@ clue me into the black magic needed to get it to work.
|
|
226
222
|
|
227
223
|
### Prerequisites
|
228
224
|
|
229
|
-
|
225
|
+
Not1MM requires:
|
230
226
|
|
231
227
|
- Python 3.9+
|
232
228
|
- PyQt6
|
@@ -238,7 +234,7 @@ You should install these through your distribution's package manager before cont
|
|
238
234
|
### Common installation recipes for Ubuntu and Fedora
|
239
235
|
|
240
236
|
I've taken the time to install some common Linux distributions into a VM and
|
241
|
-
noted the minimum steps needed to install
|
237
|
+
noted the minimum steps needed to install Not1MM.
|
242
238
|
|
243
239
|
<details>
|
244
240
|
|
@@ -362,14 +358,14 @@ python3 -m pipx ensurepath
|
|
362
358
|
|
363
359
|
#### Installing with pipx
|
364
360
|
|
365
|
-
Then installing
|
361
|
+
Then installing Not1MM is as simple as:
|
366
362
|
|
367
363
|
```bash
|
368
364
|
# Install not1mm
|
369
365
|
pipx install not1mm
|
370
366
|
```
|
371
367
|
|
372
|
-
If you need to later update
|
368
|
+
If you need to later update Not1MM, you can do so with:
|
373
369
|
|
374
370
|
```bash
|
375
371
|
# Update not1mm
|
@@ -392,7 +388,7 @@ source rebuild.sh
|
|
392
388
|
```
|
393
389
|
|
394
390
|
from the root directory. This installs a build chain and a local editable copy
|
395
|
-
of
|
391
|
+
of Not1MM.
|
396
392
|
|
397
393
|
There's two ways to launch the program from the local editable copy.
|
398
394
|
|
@@ -595,14 +591,10 @@ On the Options TAB you can:
|
|
595
591
|
|
596
592
|
## Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts
|
597
593
|
|
598
|
-
|
599
|
-
No setup is needed to be done on
|
594
|
+
Not1MM listens for WSJT-X UDP traffic on the Multicast address 224.0.0.1:2237.
|
595
|
+
No setup is needed to be done on Not1MM's side. That's good because I'm lazy.
|
600
596
|
|
601
|
-
|
602
|
-
way. It just keeps asking what was the last QSO and compares it to the previous response.
|
603
|
-
If it's different, it's new.~~
|
604
|
-
|
605
|
-
not1mm watches for fldigi qso's by watching for UDP traffic from fldigi on 127.0.0.1:9876.
|
597
|
+
Not1MM watches for fldigi qso's by watching for UDP traffic from fldigi on 127.0.0.1:9876.
|
606
598
|
|
607
599
|

|
608
600
|
|
@@ -780,6 +772,14 @@ Clicking on any of these items will change the callsign field.
|
|
780
772
|
|
781
773
|

|
782
774
|
|
775
|
+
### The Rate Window
|
776
|
+
|
777
|
+
`Window`>`Rate Window`
|
778
|
+
|
779
|
+
This window contains QSO rates and counts.
|
780
|
+
|
781
|
+

|
782
|
+
|
783
783
|
### The Remote VFO Window
|
784
784
|
|
785
785
|
You can control the VFO on a remote rig by following the directions listed in
|
@@ -73,6 +73,7 @@ from not1mm.logwindow import LogWindow
|
|
73
73
|
from not1mm.checkwindow import CheckWindow
|
74
74
|
from not1mm.bandmap import BandMapWindow
|
75
75
|
from not1mm.vfo import VfoWindow
|
76
|
+
from not1mm.ratewindow import RateWindow
|
76
77
|
from not1mm.radio import Radio
|
77
78
|
from not1mm.voice_keying import Voice
|
78
79
|
from not1mm.lookupservice import LookupService
|
@@ -136,6 +137,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
136
137
|
"bandmapwindow": False,
|
137
138
|
"checkwindow": False,
|
138
139
|
"vfowindow": False,
|
140
|
+
"ratewindow": False,
|
139
141
|
"darkmode": True,
|
140
142
|
}
|
141
143
|
appstarted = False
|
@@ -180,6 +182,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
180
182
|
check_window = None
|
181
183
|
bandmap_window = None
|
182
184
|
vfo_window = None
|
185
|
+
rate_window = None
|
183
186
|
lookup_service = None
|
184
187
|
fldigi_util = None
|
185
188
|
rtc_service = None
|
@@ -236,6 +239,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
236
239
|
self.actionLog_Window.triggered.connect(self.launch_log_window)
|
237
240
|
self.actionBandmap.triggered.connect(self.launch_bandmap_window)
|
238
241
|
self.actionCheck_Window.triggered.connect(self.launch_check_window)
|
242
|
+
self.actionRate_Window.triggered.connect(self.launch_rate_window)
|
239
243
|
self.actionVFO.triggered.connect(self.launch_vfo)
|
240
244
|
self.actionRecalculate_Mults.triggered.connect(self.recalculate_mults)
|
241
245
|
self.actionLoad_Call_History_File.triggered.connect(self.load_call_history)
|
@@ -642,6 +646,15 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
642
646
|
self.check_window.hide()
|
643
647
|
self.check_window.message.connect(self.dockwidget_message)
|
644
648
|
|
649
|
+
self.show_splash_msg("Setting up RateWindow.")
|
650
|
+
self.rate_window = RateWindow()
|
651
|
+
self.rate_window.setObjectName("rate-window")
|
652
|
+
if os.environ.get("WAYLAND_DISPLAY") and old_Qt is True:
|
653
|
+
self.rate_window.setFeatures(dockfeatures)
|
654
|
+
self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.rate_window)
|
655
|
+
self.rate_window.hide()
|
656
|
+
self.rate_window.message.connect(self.dockwidget_message)
|
657
|
+
|
645
658
|
self.show_splash_msg("Setting up VFOWindow.")
|
646
659
|
self.vfo_window = VfoWindow()
|
647
660
|
self.vfo_window.setObjectName("vfo-window")
|
@@ -692,6 +705,14 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
692
705
|
self.check_window.hide()
|
693
706
|
self.check_window.setActive(False)
|
694
707
|
|
708
|
+
self.actionRate_Window.setChecked(self.pref.get("ratewindow", False))
|
709
|
+
if self.actionRate_Window.isChecked():
|
710
|
+
self.rate_window.show()
|
711
|
+
self.rate_window.setActive(True)
|
712
|
+
else:
|
713
|
+
self.rate_window.hide()
|
714
|
+
self.rate_window.setActive(False)
|
715
|
+
|
695
716
|
self.actionVFO.setChecked(self.pref.get("vfowindow", False))
|
696
717
|
if self.actionVFO.isChecked():
|
697
718
|
self.vfo_window.show()
|
@@ -966,6 +987,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
966
987
|
self.check_window.msg_from_main(cmd)
|
967
988
|
if self.vfo_window:
|
968
989
|
self.vfo_window.msg_from_main(cmd)
|
990
|
+
if self.rate_window:
|
991
|
+
self.rate_window.msg_from_main(cmd)
|
969
992
|
|
970
993
|
if setdarkmode:
|
971
994
|
darkPalette = QPalette()
|
@@ -1305,6 +1328,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1305
1328
|
cmd["cmd"] = "NEWDB"
|
1306
1329
|
if self.log_window:
|
1307
1330
|
self.log_window.msg_from_main(cmd)
|
1331
|
+
if self.rate_window:
|
1332
|
+
self.rate_window.msg_from_main(cmd)
|
1308
1333
|
self.clearinputs()
|
1309
1334
|
self.edit_station_settings()
|
1310
1335
|
|
@@ -1342,6 +1367,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1342
1367
|
cmd["cmd"] = "NEWDB"
|
1343
1368
|
if self.log_window:
|
1344
1369
|
self.log_window.msg_from_main(cmd)
|
1370
|
+
if self.rate_window:
|
1371
|
+
self.rate_window.msg_from_main(cmd)
|
1345
1372
|
self.clearinputs()
|
1346
1373
|
self.open_contest()
|
1347
1374
|
|
@@ -1632,6 +1659,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1632
1659
|
cmd["cmd"] = "NEWDB"
|
1633
1660
|
if self.log_window:
|
1634
1661
|
self.log_window.msg_from_main(cmd)
|
1662
|
+
if self.rate_window:
|
1663
|
+
self.rate_window.msg_from_main(cmd)
|
1635
1664
|
if hasattr(self.contest, "columns"):
|
1636
1665
|
cmd = {}
|
1637
1666
|
cmd["cmd"] = "SHOWCOLUMNS"
|
@@ -1841,6 +1870,17 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1841
1870
|
self.check_window.hide()
|
1842
1871
|
self.check_window.setActive(False)
|
1843
1872
|
|
1873
|
+
def launch_rate_window(self) -> None:
|
1874
|
+
"""Launch the check window"""
|
1875
|
+
self.pref["ratewindow"] = self.actionRate_Window.isChecked()
|
1876
|
+
self.write_preference()
|
1877
|
+
if self.actionRate_Window.isChecked():
|
1878
|
+
self.rate_window.show()
|
1879
|
+
self.rate_window.setActive(True)
|
1880
|
+
else:
|
1881
|
+
self.rate_window.hide()
|
1882
|
+
self.rate_window.setActive(False)
|
1883
|
+
|
1844
1884
|
def launch_vfo(self) -> None:
|
1845
1885
|
"""Launch the VFO window"""
|
1846
1886
|
self.pref["vfowindow"] = self.actionVFO.isChecked()
|
@@ -1513,6 +1513,7 @@
|
|
1513
1513
|
<addaction name="actionLog_Window"/>
|
1514
1514
|
<addaction name="actionBandmap"/>
|
1515
1515
|
<addaction name="actionCheck_Window"/>
|
1516
|
+
<addaction name="actionRate_Window"/>
|
1516
1517
|
<addaction name="actionVFO"/>
|
1517
1518
|
</widget>
|
1518
1519
|
<widget class="QMenu" name="menuOther">
|
@@ -1961,6 +1962,19 @@
|
|
1961
1962
|
</font>
|
1962
1963
|
</property>
|
1963
1964
|
</action>
|
1965
|
+
<action name="actionRate_Window">
|
1966
|
+
<property name="checkable">
|
1967
|
+
<bool>true</bool>
|
1968
|
+
</property>
|
1969
|
+
<property name="text">
|
1970
|
+
<string>Rate Window</string>
|
1971
|
+
</property>
|
1972
|
+
<property name="font">
|
1973
|
+
<font>
|
1974
|
+
<family>JetBrains Mono ExtraLight</family>
|
1975
|
+
</font>
|
1976
|
+
</property>
|
1977
|
+
</action>
|
1964
1978
|
<action name="actionVFO">
|
1965
1979
|
<property name="checkable">
|
1966
1980
|
<bool>true</bool>
|