not1mm 23.9.3.1__tar.gz → 23.10.31__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-23.9.3.1 → not1mm-23.10.31}/PKG-INFO +24 -6
- {not1mm-23.9.3.1 → not1mm-23.10.31}/README.md +14 -5
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/__main__.py +24 -12
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/bandmap.py +1 -1
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/MASTER.SCP +7871 -540
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/cty.json +1 -1
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/main.ui +11 -1
- not1mm-23.10.31/not1mm/data/radio_green.png +0 -0
- not1mm-23.10.31/not1mm/data/radio_grey.png +0 -0
- not1mm-23.10.31/not1mm/data/radio_red.png +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/cat_interface.py +58 -58
- not1mm-23.10.31/not1mm/lib/version.py +2 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm.egg-info/PKG-INFO +24 -6
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm.egg-info/SOURCES.txt +3 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/pyproject.toml +1 -1
- not1mm-23.10.31/testing/test.py +7 -0
- not1mm-23.9.3.1/not1mm/lib/version.py +0 -2
- not1mm-23.9.3.1/testing/test.py +0 -22
- {not1mm-23.9.3.1 → not1mm-23.10.31}/LICENSE +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/__init__.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/checkwindow.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/JetBrainsMono-Regular.ttf +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/about.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/alpha bravo charlie delta.txt +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/bandmap.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/check.png +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/checkwindow.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/configuration.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/contests.sql +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/cwmacros.txt +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/donors.html +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/editcontact.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/editmacro.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/greendot.png +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/k6gte-not1mm.desktop +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/k6gte.not1mm-128.png +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/k6gte.not1mm-32.png +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/k6gte.not1mm-64.png +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/logwindow.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/new_contest.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/not1mm.html +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/opon.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/0.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/1.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/2.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/3.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/4.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/5.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/6.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/7.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/73.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/8.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/9.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/a.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/again.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/b.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/c.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/contest.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/cq.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/d.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/e.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/f.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/g.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/h.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/i.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/j.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/k.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/k6gte.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/l.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/m.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/mynumber.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/n.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/nil.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/o.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/p.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/q.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/r.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/roger.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/s.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/space.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/t.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/thankyou.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/u.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/v.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/w.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/x.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/y.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/yourcall.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/phonetics/z.wav +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/pickcontest.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/reddot.png +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/settings.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/ssbmacros.txt +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/data/vfo.ui +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/__init__.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/about.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/cwinterface.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/database.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/edit_contact.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/edit_macro.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/edit_opon.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/edit_station.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/ham_utility.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/lookup.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/multicast.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/n1mm.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/new_contest.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/select_contest.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/settings.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/super_check_partial.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/lib/versiontest.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/logwindow.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/10_10_fall_cw.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/10_10_spring_cw.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/10_10_summer_phone.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/10_10_winter_phone.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/__init__.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/arrl_dx_cw.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/arrl_dx_ssb.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/arrl_field_day.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/arrl_rtty_ru.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/arrl_ss_cw.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/arrl_ss_phone.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/canada_day.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/cq_wpx_cw.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/cq_wpx_ssb.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/cq_ww_cw.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/cq_ww_ssb.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/cwt.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/general_logging.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/iaru_hf.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/jidx_cw.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/jidx_ph.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/naqp_cw.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/naqp_ssb.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/plugins/winter_field_day.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/testing/fakeflrig.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/testing/flrigclient.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/testing/multicast_listener.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/testing/n1mm_listener.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/testing/test.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm/vfo.py +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm.egg-info/dependency_links.txt +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm.egg-info/entry_points.txt +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm.egg-info/requires.txt +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/not1mm.egg-info/top_level.txt +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/setup.cfg +0 -0
- {not1mm-23.9.3.1 → not1mm-23.10.31}/usb_vfo_knob/code.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 23.
|
3
|
+
Version: 23.10.31
|
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
|
@@ -16,9 +16,20 @@ Classifier: Topic :: Communications :: Ham Radio
|
|
16
16
|
Requires-Python: >=3.9
|
17
17
|
Description-Content-Type: text/markdown
|
18
18
|
License-File: LICENSE
|
19
|
+
Requires-Dist: PyQt5
|
20
|
+
Requires-Dist: requests
|
21
|
+
Requires-Dist: dicttoxml
|
22
|
+
Requires-Dist: xmltodict
|
23
|
+
Requires-Dist: psutil
|
24
|
+
Requires-Dist: sounddevice
|
25
|
+
Requires-Dist: soundfile
|
26
|
+
Requires-Dist: numpy
|
27
|
+
Requires-Dist: notctyparser>=23.6.21
|
19
28
|
|
20
29
|
# Not1MM
|
21
30
|
|
31
|
+
The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<sup>
|
32
|
+
|
22
33
|
[](https://pypi.org/project/not1mm/)
|
23
34
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
24
35
|
[](https://www.python.org/downloads/)
|
@@ -143,6 +154,9 @@ I wish to thank those who've contributed to the project.
|
|
143
154
|
|
144
155
|
## Recent Changes
|
145
156
|
|
157
|
+
- [23-10-31] Fix crash if flrig wasn't running. Add CAT status icon.
|
158
|
+
- [23-10-28] Merged PR from #qsantos and #bseidenberg, fixing crash related to zombie processes.
|
159
|
+
- [23-10-22] Where've I been? Sorry, I've been caring for a family member. Be back soon.
|
146
160
|
- [23-9-3] Added some accessibility stuff for screen readers. Fixed crash when entering invalid frequency in log window. You can now edit cells in the focused half of the log window.
|
147
161
|
- [23-9-2] CTRL+SHIFT+K to open CW text entry field.
|
148
162
|
|
@@ -332,7 +346,7 @@ Choose the sound output device for the voice keyer.
|
|
332
346
|
|
333
347
|
### CAT
|
334
348
|
|
335
|
-
Under the `CAT` TAB, you can choose either `rigctld` normally with an IP of `127.0.0.1` and a port of `4532`. Or `flrig`, IP normally of `127.0.0.1` and a port of `12345`. `None` is always an option, but is it really?
|
349
|
+
Under the `CAT` TAB, you can choose either `rigctld` normally with an IP of `127.0.0.1` and a port of `4532`. Or `flrig`, IP normally of `127.0.0.1` and a port of `12345`. `None` is always an option, but is it really? There's an onscreen icon for CAT status. Green good, Red bad, Grey neither.
|
336
350
|
|
337
351
|
### CW Keyer interface
|
338
352
|
|
@@ -492,11 +506,15 @@ Click on `File` > `Generate Cabrillo`
|
|
492
506
|
|
493
507
|
The file will be placed in your home directory. The name will be in the format of:
|
494
508
|
|
495
|
-
`StationCall`_`
|
509
|
+
`StationCall`\_`ContestName`\_`CurrentDate`\_`CurrentTime`.log
|
510
|
+
|
511
|
+
So for me it would look like:
|
512
|
+
|
513
|
+
K6GTE_CANADA-DAY_2023-09-04_07-47-05.log
|
496
514
|
|
497
|
-
|
515
|
+
Look a log [eh](https://www.youtube.com/watch?v=El41sHXck-E)?.
|
498
516
|
|
499
|
-
|
517
|
+
[This](https://www.youtube.com/watch?v=oMI23JJUpGE) outlines some differences between ARRL Field Day and Canada Day.
|
500
518
|
|
501
519
|
## ADIF
|
502
520
|
|
@@ -504,7 +522,7 @@ K6GTE_CQ-WPX-SSB.log
|
|
504
522
|
|
505
523
|
Boom... ADIF
|
506
524
|
|
507
|
-
`StationCall`_`
|
525
|
+
`StationCall`\_`ContestName`\_`Date`\_`Time`.adi
|
508
526
|
|
509
527
|
## Dupe checking
|
510
528
|
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# Not1MM
|
2
2
|
|
3
|
+
The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<sup>
|
4
|
+
|
3
5
|
[](https://pypi.org/project/not1mm/)
|
4
6
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
5
7
|
[](https://www.python.org/downloads/)
|
@@ -124,6 +126,9 @@ I wish to thank those who've contributed to the project.
|
|
124
126
|
|
125
127
|
## Recent Changes
|
126
128
|
|
129
|
+
- [23-10-31] Fix crash if flrig wasn't running. Add CAT status icon.
|
130
|
+
- [23-10-28] Merged PR from #qsantos and #bseidenberg, fixing crash related to zombie processes.
|
131
|
+
- [23-10-22] Where've I been? Sorry, I've been caring for a family member. Be back soon.
|
127
132
|
- [23-9-3] Added some accessibility stuff for screen readers. Fixed crash when entering invalid frequency in log window. You can now edit cells in the focused half of the log window.
|
128
133
|
- [23-9-2] CTRL+SHIFT+K to open CW text entry field.
|
129
134
|
|
@@ -313,7 +318,7 @@ Choose the sound output device for the voice keyer.
|
|
313
318
|
|
314
319
|
### CAT
|
315
320
|
|
316
|
-
Under the `CAT` TAB, you can choose either `rigctld` normally with an IP of `127.0.0.1` and a port of `4532`. Or `flrig`, IP normally of `127.0.0.1` and a port of `12345`. `None` is always an option, but is it really?
|
321
|
+
Under the `CAT` TAB, you can choose either `rigctld` normally with an IP of `127.0.0.1` and a port of `4532`. Or `flrig`, IP normally of `127.0.0.1` and a port of `12345`. `None` is always an option, but is it really? There's an onscreen icon for CAT status. Green good, Red bad, Grey neither.
|
317
322
|
|
318
323
|
### CW Keyer interface
|
319
324
|
|
@@ -473,11 +478,15 @@ Click on `File` > `Generate Cabrillo`
|
|
473
478
|
|
474
479
|
The file will be placed in your home directory. The name will be in the format of:
|
475
480
|
|
476
|
-
`StationCall`_`
|
481
|
+
`StationCall`\_`ContestName`\_`CurrentDate`\_`CurrentTime`.log
|
482
|
+
|
483
|
+
So for me it would look like:
|
484
|
+
|
485
|
+
K6GTE_CANADA-DAY_2023-09-04_07-47-05.log
|
477
486
|
|
478
|
-
|
487
|
+
Look a log [eh](https://www.youtube.com/watch?v=El41sHXck-E)?.
|
479
488
|
|
480
|
-
|
489
|
+
[This](https://www.youtube.com/watch?v=oMI23JJUpGE) outlines some differences between ARRL Field Day and Canada Day.
|
481
490
|
|
482
491
|
## ADIF
|
483
492
|
|
@@ -485,7 +494,7 @@ K6GTE_CQ-WPX-SSB.log
|
|
485
494
|
|
486
495
|
Boom... ADIF
|
487
496
|
|
488
|
-
`StationCall`_`
|
497
|
+
`StationCall`\_`ContestName`\_`Date`\_`Time`.adi
|
489
498
|
|
490
499
|
## Dupe checking
|
491
500
|
|
@@ -101,9 +101,12 @@ def check_process(name: str) -> bool:
|
|
101
101
|
Bool
|
102
102
|
"""
|
103
103
|
for proc in psutil.process_iter():
|
104
|
-
|
105
|
-
if
|
106
|
-
|
104
|
+
try:
|
105
|
+
if len(proc.cmdline()) == 2:
|
106
|
+
if name in proc.cmdline()[1]:
|
107
|
+
return True
|
108
|
+
except (psutil.NoSuchProcess, psutil.ZombieProcess):
|
109
|
+
continue
|
107
110
|
return False
|
108
111
|
|
109
112
|
|
@@ -257,6 +260,11 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
257
260
|
self.leftdot.setPixmap(self.greendot)
|
258
261
|
self.rightdot.setPixmap(self.reddot)
|
259
262
|
|
263
|
+
self.radio_grey = QtGui.QPixmap(icon_path + "radio_grey.png")
|
264
|
+
self.radio_red = QtGui.QPixmap(icon_path + "radio_red.png")
|
265
|
+
self.radio_green = QtGui.QPixmap(icon_path + "radio_green.png")
|
266
|
+
self.radio_icon.setPixmap(self.radio_grey)
|
267
|
+
|
260
268
|
self.F1.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
|
261
269
|
self.F1.customContextMenuRequested.connect(self.edit_F1)
|
262
270
|
self.F1.clicked.connect(self.sendf1)
|
@@ -373,6 +381,14 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
373
381
|
"You can udate to the current version by using:\npip install -U not1mm"
|
374
382
|
)
|
375
383
|
|
384
|
+
def set_radio_icon(self, state: int) -> None:
|
385
|
+
"""change CAT icon state"""
|
386
|
+
displaystate = [self.radio_grey, self.radio_red, self.radio_green]
|
387
|
+
try:
|
388
|
+
self.radio_icon.setPixmap(displaystate[state])
|
389
|
+
except (IndexError, TypeError) as err:
|
390
|
+
logger.debug(err)
|
391
|
+
|
376
392
|
def toggle_cw_entry(self) -> None:
|
377
393
|
"""Toggle the CW entry field on and off."""
|
378
394
|
self.cw_entry_visible = not self.cw_entry_visible
|
@@ -837,15 +853,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
837
853
|
try:
|
838
854
|
cty = notctyparser.BigCty(WORKING_PATH + "/data/cty.json")
|
839
855
|
update_available = cty.check_update()
|
840
|
-
except AttributeError as the_error:
|
841
|
-
logger.debug("cty parser returned an error: %s", the_error)
|
842
|
-
return
|
843
|
-
except ValueError as the_error:
|
844
|
-
print("cty parser returned an error: %s", the_error)
|
845
|
-
logger.debug("cty parser returned an error: %s", the_error)
|
846
|
-
return
|
847
|
-
except locale.Error as the_error:
|
848
|
-
print("cty parser returned an error: %s", the_error)
|
856
|
+
except (AttributeError, ValueError, locale.Error) as the_error:
|
849
857
|
logger.debug("cty parser returned an error: %s", the_error)
|
850
858
|
return
|
851
859
|
logger.debug("Newer cty file available %s", str(update_available))
|
@@ -1879,6 +1887,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1879
1887
|
self.pref.get("CAT_ip", "127.0.0.1"),
|
1880
1888
|
int(self.pref.get("CAT_port", 12345)),
|
1881
1889
|
)
|
1890
|
+
|
1882
1891
|
if self.pref.get("userigctld", False):
|
1883
1892
|
logger.debug(
|
1884
1893
|
"Using rigctld: %s",
|
@@ -2320,10 +2329,13 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2320
2329
|
|
2321
2330
|
def poll_radio(self) -> None:
|
2322
2331
|
"""stub"""
|
2332
|
+
self.set_radio_icon(0)
|
2323
2333
|
if self.rig_control:
|
2324
2334
|
if self.rig_control.online is False:
|
2335
|
+
self.set_radio_icon(1)
|
2325
2336
|
self.rig_control.reinit()
|
2326
2337
|
if self.rig_control.online:
|
2338
|
+
self.set_radio_icon(2)
|
2327
2339
|
info_dirty = False
|
2328
2340
|
vfo = self.rig_control.get_vfo()
|
2329
2341
|
mode = self.rig_control.get_mode()
|
@@ -737,7 +737,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
737
737
|
self.send_command("set dx extension Name CTY State Section")
|
738
738
|
self.send_command("set dx mode " + PREF.get("cluster_mode", "OPEN"))
|
739
739
|
return
|
740
|
-
if "call:" in data:
|
740
|
+
if "call:" in data or "callsign:" in data:
|
741
741
|
self.send_command(self.callsignField.text())
|
742
742
|
self.send_command(PREF.get("cluster_filter", ""))
|
743
743
|
self.send_command("set dx extension Name CTY State Section")
|