not1mm 24.9.29__tar.gz → 24.10.2__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.
Files changed (170) hide show
  1. {not1mm-24.9.29 → not1mm-24.10.2}/PKG-INFO +22 -32
  2. {not1mm-24.9.29 → not1mm-24.10.2}/README.md +21 -31
  3. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/__main__.py +38 -6
  4. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/new_contest.ui +5 -0
  5. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/cwinterface.py +1 -1
  6. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/version.py +1 -1
  7. not1mm-24.10.2/not1mm/plugins/cq_wpx_rtty.py +507 -0
  8. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/cwt.py +1 -1
  9. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/icwc_mst.py +2 -2
  10. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/radio.py +27 -0
  11. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm.egg-info/PKG-INFO +22 -32
  12. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm.egg-info/SOURCES.txt +1 -0
  13. {not1mm-24.9.29 → not1mm-24.10.2}/pyproject.toml +1 -1
  14. {not1mm-24.9.29 → not1mm-24.10.2}/LICENSE +0 -0
  15. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/__init__.py +0 -0
  16. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/bandmap.py +0 -0
  17. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/checkwindow.py +0 -0
  18. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
  19. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/MASTER.SCP +0 -0
  20. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/about.ui +0 -0
  21. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  22. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/bandmap.ui +0 -0
  23. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/check.png +0 -0
  24. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/checkwindow.ui +0 -0
  25. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/configuration.ui +0 -0
  26. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/contests.sql +0 -0
  27. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/cty.json +0 -0
  28. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/cwmacros.txt +0 -0
  29. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/donors.html +0 -0
  30. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/editcontact.ui +0 -0
  31. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/editmacro.ui +0 -0
  32. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/greendot.png +0 -0
  33. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/k6gte-not1mm.desktop +0 -0
  34. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/k6gte.not1mm-128.png +0 -0
  35. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/k6gte.not1mm-32.png +0 -0
  36. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/k6gte.not1mm-64.png +0 -0
  37. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/logwindow.ui +0 -0
  38. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/logwindowx.ui +0 -0
  39. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/main.ui +0 -0
  40. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/not1mm.html +0 -0
  41. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/opon.ui +0 -0
  42. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/0.wav +0 -0
  43. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/1.wav +0 -0
  44. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/2.wav +0 -0
  45. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/3.wav +0 -0
  46. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/4.wav +0 -0
  47. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/5.wav +0 -0
  48. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/6.wav +0 -0
  49. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/7.wav +0 -0
  50. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/73.wav +0 -0
  51. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/8.wav +0 -0
  52. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/9.wav +0 -0
  53. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/a.wav +0 -0
  54. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/again.wav +0 -0
  55. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/b.wav +0 -0
  56. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/c.wav +0 -0
  57. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/contest.wav +0 -0
  58. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/cq.wav +0 -0
  59. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/d.wav +0 -0
  60. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/e.wav +0 -0
  61. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/f.wav +0 -0
  62. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/g.wav +0 -0
  63. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/h.wav +0 -0
  64. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/i.wav +0 -0
  65. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/j.wav +0 -0
  66. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/k.wav +0 -0
  67. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/k6gte.wav +0 -0
  68. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/l.wav +0 -0
  69. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/m.wav +0 -0
  70. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/mynumber.wav +0 -0
  71. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/n.wav +0 -0
  72. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/nil.wav +0 -0
  73. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/o.wav +0 -0
  74. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/p.wav +0 -0
  75. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/q.wav +0 -0
  76. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/r.wav +0 -0
  77. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/roger.wav +0 -0
  78. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/s.wav +0 -0
  79. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/space.wav +0 -0
  80. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/t.wav +0 -0
  81. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/thankyou.wav +0 -0
  82. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  83. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/u.wav +0 -0
  84. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/v.wav +0 -0
  85. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/w.wav +0 -0
  86. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/x.wav +0 -0
  87. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/y.wav +0 -0
  88. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/yourcall.wav +0 -0
  89. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/phonetics/z.wav +0 -0
  90. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/pickcontest.ui +0 -0
  91. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/radio_green.png +0 -0
  92. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/radio_grey.png +0 -0
  93. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/radio_red.png +0 -0
  94. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/reddot.png +0 -0
  95. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/rttymacros.txt +0 -0
  96. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/settings.ui +0 -0
  97. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/splash.png +0 -0
  98. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/ssbmacros.txt +0 -0
  99. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/data/vfo.ui +0 -0
  100. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/fsutils.py +0 -0
  101. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/__init__.py +0 -0
  102. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/about.py +0 -0
  103. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/cat_interface.py +0 -0
  104. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/database.py +0 -0
  105. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/edit_contact.py +0 -0
  106. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/edit_macro.py +0 -0
  107. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/edit_opon.py +0 -0
  108. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/edit_station.py +0 -0
  109. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/fldigi_sendstring.py +0 -0
  110. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/fldigi_watcher.py +0 -0
  111. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/ft8_watcher.py +0 -0
  112. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/ham_utility.py +0 -0
  113. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/lookup.py +0 -0
  114. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/multicast.py +0 -0
  115. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/n1mm.py +0 -0
  116. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/new_contest.py +0 -0
  117. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/playsound.py +0 -0
  118. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/plugin_common.py +0 -0
  119. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/select_contest.py +0 -0
  120. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/settings.py +0 -0
  121. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/super_check_partial.py +0 -0
  122. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lib/versiontest.py +0 -0
  123. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/logwindow.py +0 -0
  124. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/lookupservice.py +0 -0
  125. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/10_10_fall_cw.py +0 -0
  126. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/10_10_spring_cw.py +0 -0
  127. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/10_10_summer_phone.py +0 -0
  128. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/10_10_winter_phone.py +0 -0
  129. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/__init__.py +0 -0
  130. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/arrl_10m.py +0 -0
  131. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/arrl_dx_cw.py +0 -0
  132. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  133. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/arrl_field_day.py +0 -0
  134. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  135. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/arrl_ss_cw.py +0 -0
  136. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/arrl_ss_phone.py +0 -0
  137. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/arrl_vhf_jan.py +0 -0
  138. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/arrl_vhf_jun.py +0 -0
  139. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/arrl_vhf_sep.py +0 -0
  140. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/canada_day.py +0 -0
  141. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/cq_160_cw.py +0 -0
  142. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/cq_160_ssb.py +0 -0
  143. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/cq_wpx_cw.py +0 -0
  144. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  145. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/cq_ww_cw.py +0 -0
  146. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/cq_ww_rtty.py +0 -0
  147. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/cq_ww_ssb.py +0 -0
  148. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/general_logging.py +0 -0
  149. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/helvetia.py +0 -0
  150. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
  151. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
  152. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/iaru_hf.py +0 -0
  153. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/jidx_cw.py +0 -0
  154. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/jidx_ph.py +0 -0
  155. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/k1usn_sst.py +0 -0
  156. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/naqp_cw.py +0 -0
  157. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/naqp_ssb.py +0 -0
  158. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/phone_weekly_test.py +0 -0
  159. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/ref_cw.py +0 -0
  160. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/stew_perry_topband.py +0 -0
  161. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/weekly_rtty.py +0 -0
  162. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/plugins/winter_field_day.py +0 -0
  163. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/test.py +0 -0
  164. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/vfo.py +0 -0
  165. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm/voice_keying.py +0 -0
  166. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm.egg-info/dependency_links.txt +0 -0
  167. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm.egg-info/entry_points.txt +0 -0
  168. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm.egg-info/requires.txt +0 -0
  169. {not1mm-24.9.29 → not1mm-24.10.2}/not1mm.egg-info/top_level.txt +0 -0
  170. {not1mm-24.9.29 → not1mm-24.10.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.9.29
3
+ Version: 24.10.2
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
@@ -201,7 +201,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
201
201
  - ARRL Sweepstakes CW, SSB
202
202
  - ARRL VHF January, June, September
203
203
  - CQ 160 CW, SSB
204
- - CQ WPX CW, SSB
204
+ - CQ WPX CW, RTTY, SSB
205
205
  - CQ World Wide CW, RTTY, SSB
206
206
  - CWOps CWT
207
207
  - Helvetia
@@ -219,29 +219,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
219
219
 
220
220
  ## Recent Changes
221
221
 
222
- - [24-9-29] Corrected Cabrillo generation for CQWWRTTY.
223
- - [24-9-28-2] Fix Cabrillo and ADIF export for cqwwrtty.
224
- - [24-9-28-1] Add RTTY-R, LSB-D, USB-D, AM-D, FM-D, DIGI-U, DIGI-L, RTTYR, PKTLSB, PKTUSB to list of modes that will load in the RTTY/DG Macros.
225
- - [24-9-28] Fixed crash with CAT None, Display tweek. Refactored a couple conditionals.
226
- - [24-9-25-1] Added WARC and 4M bands.
227
- - [24-9-25] Fix QRZ lookup crash on non-existant call.
228
- - [24-9-24] Correct crash in CWT.
229
- - [24-9-23] Improved serial interface to rigctld. Send RTTY macros to fldigi when radio modes are RTTY, USB-D, LSB-D, PKTLSB, PKTUSB, DIGI-U, DIGI-L.
230
- - [24-9-22] Merged in changes for CQ WW RTTY
231
- - [24-9-15] Fixing an ARRL VHF Cabrillo format error.
232
- - [24-9-14] BugFix. Starting lookups fail init if no settings.
233
- - [24-9-12] Fixed WSJT-X MFSK submodes FT4 Q65.
234
- - [24-9-11-2] Removed all the sketchy threaded call lookups. They're now implimented as a multicast service.
235
- - [24-9-11-1] Fixed high clock cycle usage from the FlDigiWatcher class.
236
- - [24-9-11] Fixed the HamQTH call lookups.
237
- - [24-9-10-2] Removed mapping of FM to PH in the ARRL VHF Cabrillo logs
238
- - [24-9-10-1] ft8_watcher now used default WSJT-X Multicast address and port.
239
- - [24-9-10] Add WSJT FT8/4 and fldigi support to ARRL VHF.
240
- - [24-9-9] Add IARU R1 Fieldday CW and SSB.
241
- - [24-9-8] Correct n1mm contact packet info.
242
- - [24-9-6] Added the Weekly RTTY.
243
- - [24-9-5] Added FlDigi support for Field Day.
244
- - [24-9-3] Added WSJT-X FT8 mode contacts to ARRL Field Day.
222
+ - [24-10-2] Add WPX RTTY.
223
+ - [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.
245
224
 
246
225
  See [CHANGELOG.md](CHANGELOG.md) for prior changes.
247
226
 
@@ -316,16 +295,18 @@ source .profile
316
295
 
317
296
  ```bash
318
297
  sudo dnf upgrade --refresh
319
- sudo dnf install python3-pip portaudio
320
- pip install not1mm
298
+ sudo dnf install python3-pip pipx portaudio
299
+ pipx install not1mm
300
+ pipx ensurepath
321
301
  ```
322
302
 
323
303
  #### Fedora 40
324
304
 
325
305
  ```bash
326
306
  sudo dnf upgrade --refresh
327
- sudo dnf install python3-pip python3-pyqt6 portaudio
328
- pip install not1mm
307
+ sudo dnf install python3-pip pipx python3-pyqt6 portaudio
308
+ pipx install not1mm
309
+ pipx ensurepath
329
310
  ```
330
311
 
331
312
  </details>
@@ -620,7 +601,12 @@ appear. Those without will not.
620
601
 
621
602
  ## Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts
622
603
 
623
- **Digital modes only working for ARRL Field Day, ARRL VHF, and Weekly RTTY**
604
+ **Digital modes only working for:**
605
+
606
+ - ARRL Field Day
607
+ - ARRL VHF
608
+ - Weekly RTTY
609
+ - CQ WW DX RTTY
624
610
 
625
611
  not1mm listens for WSJT-X UDP traffic on the Multicast address 224.0.0.1:2237.
626
612
  No setup is needed to be done on not1mm's side. That's good because I'm lazy.
@@ -629,6 +615,10 @@ not1mm polls for fldigi QSOs via it's XMLRPC interface. It does this in a rather
629
615
  way. It just keeps asking what was the last QSO and compares it to the previous response.
630
616
  If it's different, it's new. I've added the Weekly RTTY Test so this can be tested.
631
617
 
618
+ The F1-F12 function keys be sent to fldigi via XMLRPC. Fldigi will be placed into TX
619
+ mode, the message will be sent and a ^r will be tacked onto the end to place it back into
620
+ RX mode.
621
+
632
622
  Unlike WSJT, fldigi needs to be setup for this to work. The XMLRPC interface needs to be
633
623
  active. And in fldigi's config dialog go to CONTESTS -> General -> CONTEST and select
634
624
  Generic Contest. Make sure the Text Capture Order field says CALL EXCHANGE.
@@ -646,7 +636,7 @@ field.
646
636
 
647
637
  To edit the macros, choose `File` > `Edit Macros`. This will open your systems
648
638
  registered text editor with current macros loaded. When your done just save the
649
- file and close the editor. The file loaded to edit, CW or SSB, will be
639
+ file and close the editor. The file loaded to edit, CW, SSB or RTTY, will be
650
640
  determined by your current operating mode.
651
641
 
652
642
  After editing and saving the macro file. You can force the logger to reload the
@@ -729,7 +719,7 @@ is this has happened, since the gridsquare will replace the word "Regional".
729
719
  | [Shift-Tab] | Move cursor left One field. |
730
720
  | [SPACE] | When in the callsign field, will move the input to the first field needed for the exchange. |
731
721
  | [Enter] | Submits the fields to the log. |
732
- | [F1-F12] | Send (CW or Voice) macros. |
722
+ | [F1-F12] | Send (CW/RTTY/Voice) macros. |
733
723
  | [CTRL-S] | Spot Callsign to the cluster. |
734
724
  | [CTRL-M] | Mark Callsign to the bandmap window to work later. |
735
725
  | [CTRL-G] | Tune to a spot matching partial text in the callsign entry field (CAT Required). |
@@ -170,7 +170,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
170
170
  - ARRL Sweepstakes CW, SSB
171
171
  - ARRL VHF January, June, September
172
172
  - CQ 160 CW, SSB
173
- - CQ WPX CW, SSB
173
+ - CQ WPX CW, RTTY, SSB
174
174
  - CQ World Wide CW, RTTY, SSB
175
175
  - CWOps CWT
176
176
  - Helvetia
@@ -188,29 +188,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
188
188
 
189
189
  ## Recent Changes
190
190
 
191
- - [24-9-29] Corrected Cabrillo generation for CQWWRTTY.
192
- - [24-9-28-2] Fix Cabrillo and ADIF export for cqwwrtty.
193
- - [24-9-28-1] Add RTTY-R, LSB-D, USB-D, AM-D, FM-D, DIGI-U, DIGI-L, RTTYR, PKTLSB, PKTUSB to list of modes that will load in the RTTY/DG Macros.
194
- - [24-9-28] Fixed crash with CAT None, Display tweek. Refactored a couple conditionals.
195
- - [24-9-25-1] Added WARC and 4M bands.
196
- - [24-9-25] Fix QRZ lookup crash on non-existant call.
197
- - [24-9-24] Correct crash in CWT.
198
- - [24-9-23] Improved serial interface to rigctld. Send RTTY macros to fldigi when radio modes are RTTY, USB-D, LSB-D, PKTLSB, PKTUSB, DIGI-U, DIGI-L.
199
- - [24-9-22] Merged in changes for CQ WW RTTY
200
- - [24-9-15] Fixing an ARRL VHF Cabrillo format error.
201
- - [24-9-14] BugFix. Starting lookups fail init if no settings.
202
- - [24-9-12] Fixed WSJT-X MFSK submodes FT4 Q65.
203
- - [24-9-11-2] Removed all the sketchy threaded call lookups. They're now implimented as a multicast service.
204
- - [24-9-11-1] Fixed high clock cycle usage from the FlDigiWatcher class.
205
- - [24-9-11] Fixed the HamQTH call lookups.
206
- - [24-9-10-2] Removed mapping of FM to PH in the ARRL VHF Cabrillo logs
207
- - [24-9-10-1] ft8_watcher now used default WSJT-X Multicast address and port.
208
- - [24-9-10] Add WSJT FT8/4 and fldigi support to ARRL VHF.
209
- - [24-9-9] Add IARU R1 Fieldday CW and SSB.
210
- - [24-9-8] Correct n1mm contact packet info.
211
- - [24-9-6] Added the Weekly RTTY.
212
- - [24-9-5] Added FlDigi support for Field Day.
213
- - [24-9-3] Added WSJT-X FT8 mode contacts to ARRL Field Day.
191
+ - [24-10-2] Add WPX RTTY.
192
+ - [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.
214
193
 
215
194
  See [CHANGELOG.md](CHANGELOG.md) for prior changes.
216
195
 
@@ -285,16 +264,18 @@ source .profile
285
264
 
286
265
  ```bash
287
266
  sudo dnf upgrade --refresh
288
- sudo dnf install python3-pip portaudio
289
- pip install not1mm
267
+ sudo dnf install python3-pip pipx portaudio
268
+ pipx install not1mm
269
+ pipx ensurepath
290
270
  ```
291
271
 
292
272
  #### Fedora 40
293
273
 
294
274
  ```bash
295
275
  sudo dnf upgrade --refresh
296
- sudo dnf install python3-pip python3-pyqt6 portaudio
297
- pip install not1mm
276
+ sudo dnf install python3-pip pipx python3-pyqt6 portaudio
277
+ pipx install not1mm
278
+ pipx ensurepath
298
279
  ```
299
280
 
300
281
  </details>
@@ -589,7 +570,12 @@ appear. Those without will not.
589
570
 
590
571
  ## Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts
591
572
 
592
- **Digital modes only working for ARRL Field Day, ARRL VHF, and Weekly RTTY**
573
+ **Digital modes only working for:**
574
+
575
+ - ARRL Field Day
576
+ - ARRL VHF
577
+ - Weekly RTTY
578
+ - CQ WW DX RTTY
593
579
 
594
580
  not1mm listens for WSJT-X UDP traffic on the Multicast address 224.0.0.1:2237.
595
581
  No setup is needed to be done on not1mm's side. That's good because I'm lazy.
@@ -598,6 +584,10 @@ not1mm polls for fldigi QSOs via it's XMLRPC interface. It does this in a rather
598
584
  way. It just keeps asking what was the last QSO and compares it to the previous response.
599
585
  If it's different, it's new. I've added the Weekly RTTY Test so this can be tested.
600
586
 
587
+ The F1-F12 function keys be sent to fldigi via XMLRPC. Fldigi will be placed into TX
588
+ mode, the message will be sent and a ^r will be tacked onto the end to place it back into
589
+ RX mode.
590
+
601
591
  Unlike WSJT, fldigi needs to be setup for this to work. The XMLRPC interface needs to be
602
592
  active. And in fldigi's config dialog go to CONTESTS -> General -> CONTEST and select
603
593
  Generic Contest. Make sure the Text Capture Order field says CALL EXCHANGE.
@@ -615,7 +605,7 @@ field.
615
605
 
616
606
  To edit the macros, choose `File` > `Edit Macros`. This will open your systems
617
607
  registered text editor with current macros loaded. When your done just save the
618
- file and close the editor. The file loaded to edit, CW or SSB, will be
608
+ file and close the editor. The file loaded to edit, CW, SSB or RTTY, will be
619
609
  determined by your current operating mode.
620
610
 
621
611
  After editing and saving the macro file. You can force the logger to reload the
@@ -698,7 +688,7 @@ is this has happened, since the gridsquare will replace the word "Regional".
698
688
  | [Shift-Tab] | Move cursor left One field. |
699
689
  | [SPACE] | When in the callsign field, will move the input to the first field needed for the exchange. |
700
690
  | [Enter] | Submits the fields to the log. |
701
- | [F1-F12] | Send (CW or Voice) macros. |
691
+ | [F1-F12] | Send (CW/RTTY/Voice) macros. |
702
692
  | [CTRL-S] | Spot Callsign to the cluster. |
703
693
  | [CTRL-M] | Mark Callsign to the bandmap window to work later. |
704
694
  | [CTRL-G] | Tune to a spot matching partial text in the callsign entry field (CAT Required). |
@@ -175,10 +175,10 @@ class MainWindow(QtWidgets.QMainWindow):
175
175
  lookup_service = None
176
176
  fldigi_util = None
177
177
 
178
- def __init__(self, *args, **kwargs):
179
- super().__init__(*args, **kwargs)
178
+ def __init__(self, splash):
179
+ super().__init__()
180
180
  logger.info("MainWindow: __init__")
181
-
181
+ self.splash = splash
182
182
  self.dock_loc = {
183
183
  "Top": Qt.DockWidgetArea.TopDockWidgetArea,
184
184
  "Right": Qt.DockWidgetArea.RightDockWidgetArea,
@@ -519,6 +519,8 @@ class MainWindow(QtWidgets.QMainWindow):
519
519
  QtGui.QIcon(str(fsutils.APP_DATA_PATH / "k6gte.not1mm-32.png"))
520
520
  )
521
521
 
522
+ self.show_splash_msg("Loading CTY file.")
523
+
522
524
  try:
523
525
  with open(
524
526
  fsutils.APP_DATA_PATH / "cty.json", "rt", encoding="utf-8"
@@ -527,11 +529,15 @@ class MainWindow(QtWidgets.QMainWindow):
527
529
  except (IOError, JSONDecodeError, TypeError):
528
530
  logging.CRITICAL("There was an error parsing the BigCity file.")
529
531
 
532
+ self.show_splash_msg("Starting LookUp Service.")
533
+
530
534
  self.lookup_service = LookupService()
531
535
  self.lookup_service.hide()
532
536
 
537
+ self.show_splash_msg("Reading preferences.")
533
538
  self.readpreferences()
534
539
 
540
+ self.show_splash_msg("Starting voice thread.")
535
541
  self.voice_process = Voice()
536
542
  self.voice_process.moveToThread(self.voice_thread)
537
543
  self.voice_thread.started.connect(self.voice_process.run)
@@ -560,7 +566,9 @@ class MainWindow(QtWidgets.QMainWindow):
560
566
  self.make_op_dir()
561
567
 
562
568
  self.clearinputs()
569
+ self.show_splash_msg("Loading contest.")
563
570
  self.load_contest()
571
+ self.show_splash_msg("Reading macros.")
564
572
  self.read_cw_macros()
565
573
 
566
574
  # Featureset for wayland
@@ -569,6 +577,7 @@ class MainWindow(QtWidgets.QMainWindow):
569
577
  | QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable
570
578
  )
571
579
 
580
+ self.show_splash_msg("Starting FlDigi watcher.")
572
581
  self.fldigi_watcher = FlDigiWatcher()
573
582
  self.fldigi_watcher.moveToThread(self.fldigi_thread)
574
583
  self.fldigi_thread.started.connect(self.fldigi_watcher.run)
@@ -576,6 +585,7 @@ class MainWindow(QtWidgets.QMainWindow):
576
585
  self.fldigi_watcher.poll_callback.connect(self.fldigi_qso)
577
586
  self.fldigi_thread.start()
578
587
 
588
+ self.show_splash_msg("Setting up LogWindow.")
579
589
  self.log_window = LogWindow()
580
590
  self.log_window.setObjectName("log-window")
581
591
  if os.environ.get("WAYLAND_DISPLAY"):
@@ -583,6 +593,7 @@ class MainWindow(QtWidgets.QMainWindow):
583
593
  self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.log_window)
584
594
  self.log_window.hide()
585
595
 
596
+ self.show_splash_msg("Setting up BandMapWindow.")
586
597
  self.bandmap_window = BandMapWindow()
587
598
  self.bandmap_window.setObjectName("bandmap-window")
588
599
  if os.environ.get("WAYLAND_DISPLAY"):
@@ -590,6 +601,7 @@ class MainWindow(QtWidgets.QMainWindow):
590
601
  self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.bandmap_window)
591
602
  self.bandmap_window.hide()
592
603
 
604
+ self.show_splash_msg("Setting up CheckWindow.")
593
605
  self.check_window = CheckWindow()
594
606
  self.check_window.setObjectName("check-window")
595
607
  if os.environ.get("WAYLAND_DISPLAY"):
@@ -597,6 +609,7 @@ class MainWindow(QtWidgets.QMainWindow):
597
609
  self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.check_window)
598
610
  self.check_window.hide()
599
611
 
612
+ self.show_splash_msg("Setting up VFOWindow.")
600
613
  self.vfo_window = VfoWindow()
601
614
  self.vfo_window.setObjectName("vfo-window")
602
615
  if os.environ.get("WAYLAND_DISPLAY"):
@@ -604,6 +617,7 @@ class MainWindow(QtWidgets.QMainWindow):
604
617
  self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.vfo_window)
605
618
  self.vfo_window.hide()
606
619
 
620
+ self.show_splash_msg("Restoring window states.")
607
621
  self.settings = QSettings("K6GTE", "not1mm")
608
622
  if self.settings.value("windowState") is not None:
609
623
  self.restoreState(self.settings.value("windowState"))
@@ -635,6 +649,15 @@ class MainWindow(QtWidgets.QMainWindow):
635
649
  "You can udate to the current version by using:\npip install -U not1mm"
636
650
  )
637
651
 
652
+ def show_splash_msg(self, msg: str) -> None:
653
+ """Show text message in the splash window."""
654
+ self.splash.showMessage(
655
+ msg,
656
+ alignment=Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignCenter,
657
+ color=QColor(255, 255, 0),
658
+ )
659
+ QCoreApplication.processEvents()
660
+
638
661
  def fldigi_qso(self, result: str):
639
662
  """
640
663
  gets called when there is a new fldigi qso logged.
@@ -1306,6 +1329,15 @@ class MainWindow(QtWidgets.QMainWindow):
1306
1329
  band = getband(str(self.radio_state.get("vfoa", "0.0")))
1307
1330
  self.set_band_indicator(band)
1308
1331
  self.set_window_title()
1332
+ if self.contest_settings.get("ModeCategory", "") == "RTTY":
1333
+ self.setmode("RTTY")
1334
+ self.radio_state["mode"] = "RTTY"
1335
+ if self.rig_control:
1336
+ if self.rig_control.online:
1337
+ self.rig_control.set_mode("RTTY")
1338
+ band = getband(str(self.radio_state.get("vfoa", "0.0")))
1339
+ self.set_band_indicator(band)
1340
+ self.set_window_title()
1309
1341
  if self.contest_settings.get("ModeCategory", "") == "SSB":
1310
1342
  self.setmode("SSB")
1311
1343
  if int(self.radio_state.get("vfoa", 0)) > 10000000:
@@ -3592,7 +3624,7 @@ app = QtWidgets.QApplication(sys.argv)
3592
3624
  pixmap = QPixmap(f"{os.fspath(fsutils.APP_DATA_PATH)}/splash.png")
3593
3625
  splash = QSplashScreen(pixmap)
3594
3626
  splash.show()
3595
- app.processEvents()
3627
+ # app.processEvents()
3596
3628
  splash.showMessage(
3597
3629
  "Starting Up",
3598
3630
  alignment=Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignCenter,
@@ -3602,10 +3634,10 @@ QCoreApplication.processEvents()
3602
3634
 
3603
3635
  families = load_fonts_from_dir(os.fspath(fsutils.APP_DATA_PATH))
3604
3636
  logger.info(f"font families {families}")
3605
- window = MainWindow()
3637
+ window = MainWindow(splash)
3606
3638
  window.callsign.setFocus()
3607
- window.show()
3608
3639
  splash.finish(window)
3640
+ window.show()
3609
3641
 
3610
3642
  if __name__ == "__main__":
3611
3643
  run()
@@ -277,6 +277,11 @@
277
277
  <string>CQ WPX CW</string>
278
278
  </property>
279
279
  </item>
280
+ <item>
281
+ <property name="text">
282
+ <string>CQ WPX RTTY</string>
283
+ </property>
284
+ </item>
280
285
  <item>
281
286
  <property name="text">
282
287
  <string>CQ WPX SSB</string>
@@ -55,7 +55,7 @@ class CW:
55
55
  self._sendcw_xmlrpc(texttosend)
56
56
  if self.servertype == 1:
57
57
  self._sendcw_udp(texttosend)
58
- if self.servertype == 3 and self.cw is not None:
58
+ if self.servertype == 3:
59
59
  self._sendcwcat(texttosend)
60
60
 
61
61
  def _sendcw_xmlrpc(self, texttosend):
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "24.9.29"
3
+ __version__ = "24.10.2"