not1mm 24.10.5__tar.gz → 24.10.6__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 (171) hide show
  1. {not1mm-24.10.5 → not1mm-24.10.6}/PKG-INFO +4 -2
  2. {not1mm-24.10.5 → not1mm-24.10.6}/README.md +3 -1
  3. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/__main__.py +24 -18
  4. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/bandmap.py +6 -0
  5. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/multicast.py +2 -2
  6. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/version.py +1 -1
  7. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/cq_wpx_rtty.py +3 -3
  8. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/cq_ww_rtty.py +2 -2
  9. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm.egg-info/PKG-INFO +4 -2
  10. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm.egg-info/SOURCES.txt +2 -1
  11. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm.egg-info/top_level.txt +2 -0
  12. {not1mm-24.10.5 → not1mm-24.10.6}/pyproject.toml +1 -1
  13. not1mm-24.10.6/test/contests.py +591 -0
  14. {not1mm-24.10.5 → not1mm-24.10.6}/LICENSE +0 -0
  15. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/__init__.py +0 -0
  16. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/checkwindow.py +0 -0
  17. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
  18. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/MASTER.SCP +0 -0
  19. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/about.ui +0 -0
  20. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  21. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/bandmap.ui +0 -0
  22. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/check.png +0 -0
  23. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/checkwindow.ui +0 -0
  24. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/configuration.ui +0 -0
  25. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/contests.sql +0 -0
  26. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/cty.json +0 -0
  27. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/cwmacros.txt +0 -0
  28. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/donors.html +0 -0
  29. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/editcontact.ui +0 -0
  30. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/editmacro.ui +0 -0
  31. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/greendot.png +0 -0
  32. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/k6gte-not1mm.desktop +0 -0
  33. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/k6gte.not1mm-128.png +0 -0
  34. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/k6gte.not1mm-32.png +0 -0
  35. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/k6gte.not1mm-64.png +0 -0
  36. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/logwindow.ui +0 -0
  37. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/logwindowx.ui +0 -0
  38. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/main.ui +0 -0
  39. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/new_contest.ui +0 -0
  40. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/not1mm.html +0 -0
  41. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/opon.ui +0 -0
  42. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/0.wav +0 -0
  43. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/1.wav +0 -0
  44. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/2.wav +0 -0
  45. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/3.wav +0 -0
  46. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/4.wav +0 -0
  47. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/5.wav +0 -0
  48. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/6.wav +0 -0
  49. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/7.wav +0 -0
  50. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/73.wav +0 -0
  51. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/8.wav +0 -0
  52. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/9.wav +0 -0
  53. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/a.wav +0 -0
  54. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/again.wav +0 -0
  55. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/b.wav +0 -0
  56. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/c.wav +0 -0
  57. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/contest.wav +0 -0
  58. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/cq.wav +0 -0
  59. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/d.wav +0 -0
  60. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/e.wav +0 -0
  61. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/f.wav +0 -0
  62. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/g.wav +0 -0
  63. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/h.wav +0 -0
  64. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/i.wav +0 -0
  65. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/j.wav +0 -0
  66. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/k.wav +0 -0
  67. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/k6gte.wav +0 -0
  68. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/l.wav +0 -0
  69. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/m.wav +0 -0
  70. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/mynumber.wav +0 -0
  71. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/n.wav +0 -0
  72. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/nil.wav +0 -0
  73. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/o.wav +0 -0
  74. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/p.wav +0 -0
  75. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/q.wav +0 -0
  76. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/r.wav +0 -0
  77. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/roger.wav +0 -0
  78. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/s.wav +0 -0
  79. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/space.wav +0 -0
  80. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/t.wav +0 -0
  81. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/thankyou.wav +0 -0
  82. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  83. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/u.wav +0 -0
  84. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/v.wav +0 -0
  85. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/w.wav +0 -0
  86. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/x.wav +0 -0
  87. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/y.wav +0 -0
  88. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/yourcall.wav +0 -0
  89. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/phonetics/z.wav +0 -0
  90. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/pickcontest.ui +0 -0
  91. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/radio_green.png +0 -0
  92. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/radio_grey.png +0 -0
  93. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/radio_red.png +0 -0
  94. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/reddot.png +0 -0
  95. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/rttymacros.txt +0 -0
  96. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/settings.ui +0 -0
  97. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/splash.png +0 -0
  98. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/ssbmacros.txt +0 -0
  99. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/data/vfo.ui +0 -0
  100. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/fsutils.py +0 -0
  101. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/__init__.py +0 -0
  102. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/about.py +0 -0
  103. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/cat_interface.py +0 -0
  104. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/cwinterface.py +0 -0
  105. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/database.py +0 -0
  106. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/edit_contact.py +0 -0
  107. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/edit_macro.py +0 -0
  108. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/edit_opon.py +0 -0
  109. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/edit_station.py +0 -0
  110. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/fldigi_sendstring.py +0 -0
  111. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/fldigi_watcher.py +0 -0
  112. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/ft8_watcher.py +0 -0
  113. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/ham_utility.py +0 -0
  114. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/lookup.py +0 -0
  115. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/n1mm.py +0 -0
  116. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/new_contest.py +0 -0
  117. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/playsound.py +0 -0
  118. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/plugin_common.py +0 -0
  119. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/select_contest.py +0 -0
  120. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/settings.py +0 -0
  121. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/super_check_partial.py +0 -0
  122. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lib/versiontest.py +0 -0
  123. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/logwindow.py +0 -0
  124. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/lookupservice.py +0 -0
  125. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/10_10_fall_cw.py +0 -0
  126. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/10_10_spring_cw.py +0 -0
  127. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/10_10_summer_phone.py +0 -0
  128. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/10_10_winter_phone.py +0 -0
  129. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/__init__.py +0 -0
  130. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/arrl_10m.py +0 -0
  131. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/arrl_dx_cw.py +0 -0
  132. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  133. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/arrl_field_day.py +0 -0
  134. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  135. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/arrl_ss_cw.py +0 -0
  136. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/arrl_ss_phone.py +0 -0
  137. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/arrl_vhf_jan.py +0 -0
  138. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/arrl_vhf_jun.py +0 -0
  139. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/arrl_vhf_sep.py +0 -0
  140. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/canada_day.py +0 -0
  141. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/cq_160_cw.py +0 -0
  142. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/cq_160_ssb.py +0 -0
  143. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/cq_wpx_cw.py +0 -0
  144. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  145. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/cq_ww_cw.py +0 -0
  146. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/cq_ww_ssb.py +0 -0
  147. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/cwt.py +0 -0
  148. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/general_logging.py +0 -0
  149. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/helvetia.py +0 -0
  150. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
  151. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
  152. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/iaru_hf.py +0 -0
  153. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/icwc_mst.py +0 -0
  154. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/jidx_cw.py +0 -0
  155. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/jidx_ph.py +0 -0
  156. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/k1usn_sst.py +0 -0
  157. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/naqp_cw.py +0 -0
  158. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/naqp_ssb.py +0 -0
  159. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/phone_weekly_test.py +0 -0
  160. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/ref_cw.py +0 -0
  161. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/stew_perry_topband.py +0 -0
  162. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/weekly_rtty.py +0 -0
  163. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/plugins/winter_field_day.py +0 -0
  164. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/radio.py +0 -0
  165. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/test.py +0 -0
  166. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/vfo.py +0 -0
  167. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm/voice_keying.py +0 -0
  168. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm.egg-info/dependency_links.txt +0 -0
  169. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm.egg-info/entry_points.txt +0 -0
  170. {not1mm-24.10.5 → not1mm-24.10.6}/not1mm.egg-info/requires.txt +0 -0
  171. {not1mm-24.10.5 → not1mm-24.10.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.10.5
3
+ Version: 24.10.6
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
@@ -219,6 +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-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
223
+ - [24-10-5-1] Store the bandmap spots age timer in the preferences.
222
224
  - [24-10-5] Force reselction of contest after different DB opened.
223
225
  - [24-10-2] Add WPX RTTY.
224
226
  - [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.
@@ -566,7 +568,7 @@ onscreen icon for CAT status. Green good, Red bad, Grey neither.
566
568
  ### CW Keyer interface
567
569
 
568
570
  Under the `CW` TAB, There are three options. `cwdaemon`, which normally uses IP
569
- `127.0.0.1` and port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` and
571
+ `127.0.0.1`port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` port `8000` and
570
572
  `CAT` which if your radio supports it, sends Morse characters via rigctld. As far
571
573
  as I can tell rigctld does not support setting the radios internal keyer speed. So
572
574
  the CW speed control widget will not be functional and you'd need to control the
@@ -188,6 +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-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
192
+ - [24-10-5-1] Store the bandmap spots age timer in the preferences.
191
193
  - [24-10-5] Force reselction of contest after different DB opened.
192
194
  - [24-10-2] Add WPX RTTY.
193
195
  - [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.
@@ -535,7 +537,7 @@ onscreen icon for CAT status. Green good, Red bad, Grey neither.
535
537
  ### CW Keyer interface
536
538
 
537
539
  Under the `CW` TAB, There are three options. `cwdaemon`, which normally uses IP
538
- `127.0.0.1` and port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` and
540
+ `127.0.0.1`port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` port `8000` and
539
541
  `CAT` which if your radio supports it, sends Morse characters via rigctld. As far
540
542
  as I can tell rigctld does not support setting the radios internal keyer speed. So
541
543
  the CW speed control widget will not be functional and you'd need to control the
@@ -95,7 +95,7 @@ class MainWindow(QtWidgets.QMainWindow):
95
95
  "command_buttons": False,
96
96
  "cw_macros": True,
97
97
  "bands_modes": True,
98
- "bands": ["160", "80", "60", "40", "30", "20", "17", "15", "12", "10"],
98
+ "bands": ["160", "80", "40", "20", "15", "10"],
99
99
  "current_database": "ham.db",
100
100
  "contest": "",
101
101
  "multicast_group": "239.1.1.1",
@@ -125,6 +125,7 @@ class MainWindow(QtWidgets.QMainWindow):
125
125
  "cluster_port": 7373,
126
126
  "cluster_filter": "Set DX Filter SpotterCont=NA",
127
127
  "cluster_mode": "OPEN",
128
+ "cluster_expire": 1,
128
129
  "logwindow": False,
129
130
  "bandmapwindow": False,
130
131
  "checkwindow": False,
@@ -600,6 +601,7 @@ class MainWindow(QtWidgets.QMainWindow):
600
601
  self.bandmap_window.setFeatures(dockfeatures)
601
602
  self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.bandmap_window)
602
603
  self.bandmap_window.hide()
604
+ self.bandmap_window.cluster_expire.connect(self.cluster_expire_updated)
603
605
 
604
606
  self.show_splash_msg("Setting up CheckWindow.")
605
607
  self.check_window = CheckWindow()
@@ -658,6 +660,11 @@ class MainWindow(QtWidgets.QMainWindow):
658
660
  )
659
661
  QCoreApplication.processEvents()
660
662
 
663
+ def cluster_expire_updated(self, number):
664
+ """signal from bandmap"""
665
+ self.pref["cluster_expire"] = int(number)
666
+ self.write_preference()
667
+
661
668
  def fldigi_qso(self, result: str):
662
669
  """
663
670
  gets called when there is a new fldigi qso logged.
@@ -2585,7 +2592,6 @@ class MainWindow(QtWidgets.QMainWindow):
2585
2592
  self.radio_thread.finished.connect(self.rig_control.deleteLater)
2586
2593
  self.rig_control.poll_callback.connect(self.poll_radio)
2587
2594
  self.radio_thread.start()
2588
- # self.rig_control.delta = 1
2589
2595
 
2590
2596
  if self.pref.get("userigctld", False):
2591
2597
  logger.debug(
@@ -2602,7 +2608,6 @@ class MainWindow(QtWidgets.QMainWindow):
2602
2608
  self.radio_thread.finished.connect(self.rig_control.deleteLater)
2603
2609
  self.rig_control.poll_callback.connect(self.poll_radio)
2604
2610
  self.radio_thread.start()
2605
- # self.rig_control.delta = 1
2606
2611
 
2607
2612
  if self.pref.get("cwtype", 0) == 0:
2608
2613
  self.cw = None
@@ -3597,6 +3602,21 @@ def run() -> None:
3597
3602
  """
3598
3603
  Main Entry
3599
3604
  """
3605
+ splash.show()
3606
+ # app.processEvents()
3607
+ splash.showMessage(
3608
+ "Starting Up",
3609
+ alignment=Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignCenter,
3610
+ color=QColor(255, 255, 0),
3611
+ )
3612
+ QCoreApplication.processEvents()
3613
+
3614
+ families = load_fonts_from_dir(os.fspath(fsutils.APP_DATA_PATH))
3615
+ logger.info(f"font families {families}")
3616
+ window = MainWindow(splash)
3617
+ window.callsign.setFocus()
3618
+ splash.finish(window)
3619
+ window.show()
3600
3620
  logger.debug(
3601
3621
  f"Resolved OS file system paths: MODULE_PATH {fsutils.MODULE_PATH}, USER_DATA_PATH {fsutils.USER_DATA_PATH}, CONFIG_PATH {fsutils.CONFIG_PATH}"
3602
3622
  )
@@ -3620,25 +3640,11 @@ logging.basicConfig(
3620
3640
  )
3621
3641
  logging.getLogger("PyQt6.uic.uiparser").setLevel("INFO")
3622
3642
  logging.getLogger("PyQt6.uic.properties").setLevel("INFO")
3643
+
3623
3644
  app = QtWidgets.QApplication(sys.argv)
3624
3645
 
3625
3646
  pixmap = QPixmap(f"{os.fspath(fsutils.APP_DATA_PATH)}/splash.png")
3626
3647
  splash = QSplashScreen(pixmap)
3627
- splash.show()
3628
- # app.processEvents()
3629
- splash.showMessage(
3630
- "Starting Up",
3631
- alignment=Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignCenter,
3632
- color=QColor(255, 255, 0),
3633
- )
3634
- QCoreApplication.processEvents()
3635
-
3636
- families = load_fonts_from_dir(os.fspath(fsutils.APP_DATA_PATH))
3637
- logger.info(f"font families {families}")
3638
- window = MainWindow(splash)
3639
- window.callsign.setFocus()
3640
- splash.finish(window)
3641
- window.show()
3642
3648
 
3643
3649
  if __name__ == "__main__":
3644
3650
  run()
@@ -21,6 +21,7 @@ from json import loads
21
21
  from PyQt6 import QtCore, QtGui, QtWidgets, uic, QtNetwork
22
22
  from PyQt6.QtGui import QColorConstants, QPalette, QColor
23
23
  from PyQt6.QtWidgets import QDockWidget
24
+ from PyQt6.QtCore import pyqtSignal
24
25
 
25
26
  import not1mm.fsutils as fsutils
26
27
  from not1mm.lib.multicast import Multicast
@@ -322,6 +323,7 @@ class BandMapWindow(QDockWidget):
322
323
  worked_list = {}
323
324
  multicast_interface = None
324
325
  text_color = QColor(45, 45, 45)
326
+ cluster_expire = pyqtSignal(str)
325
327
 
326
328
  def __init__(self):
327
329
  super().__init__()
@@ -329,6 +331,9 @@ class BandMapWindow(QDockWidget):
329
331
 
330
332
  uic.loadUi(fsutils.APP_DATA_PATH / "bandmap.ui", self)
331
333
  self.settings = self.get_settings()
334
+ self.clear_spot_olderSpinBox.setValue(
335
+ int(self.settings.get("cluster_expire", 1))
336
+ )
332
337
  self.agetime = self.clear_spot_olderSpinBox.value()
333
338
  self.clear_spot_olderSpinBox.valueChanged.connect(self.spot_aging_changed)
334
339
  self.clearButton.clicked.connect(self.clear_spots)
@@ -876,6 +881,7 @@ class BandMapWindow(QDockWidget):
876
881
  def spot_aging_changed(self) -> None:
877
882
  """Called when spot aging spinbox is changed."""
878
883
  self.agetime = self.clear_spot_olderSpinBox.value()
884
+ self.cluster_expire.emit(str(self.agetime))
879
885
 
880
886
  def showContextMenu(self) -> None:
881
887
  """doc string for the linter"""
@@ -31,11 +31,11 @@ class Multicast:
31
31
  int(self.multicast_port),
32
32
  QtNetwork.QAbstractSocket.BindFlag.ReuseAddressHint,
33
33
  )
34
- logger.warn(f"multicast bind {b_result}")
34
+ logger.warning(f"multicast bind {b_result}")
35
35
  join_result = self.server_udp.joinMulticastGroup(
36
36
  QtNetwork.QHostAddress(self.multicast_group)
37
37
  )
38
- logger.warn(f"joinMulticastGroup result {join_result}")
38
+ logger.warning(f"joinMulticastGroup result {join_result}")
39
39
 
40
40
  def has_pending_datagrams(self) -> bool:
41
41
  """Check if there is a pending datagram"""
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "24.10.5"
3
+ __version__ = "24.10.6"
@@ -491,7 +491,7 @@ def ft8_handler(the_packet: dict):
491
491
  ALTEREGO.contact["Call"] = the_packet.get("CALL", "")
492
492
  ALTEREGO.contact["SNT"] = ALTEREGO.sent.text()
493
493
  ALTEREGO.contact["RCV"] = ALTEREGO.receive.text()
494
- ALTEREGO.contact["Exchange1"] = f"{the_packet.get("STATE", "")}".strip()
494
+ ALTEREGO.contact["Exchange1"] = f'{the_packet.get("STATE", "")}'.strip()
495
495
  ALTEREGO.contact["ZN"] = the_packet.get("CQZ", "")
496
496
  ALTEREGO.contact["Mode"] = the_packet.get("MODE", "ERR")
497
497
  ALTEREGO.contact["Freq"] = round(float(the_packet.get("FREQ", "0.0")) * 1000, 2)
@@ -502,6 +502,6 @@ def ft8_handler(the_packet: dict):
502
502
  str(int(float(the_packet.get("FREQ", "0.0")) * 1000000))
503
503
  )
504
504
  logger.debug(f"{ALTEREGO.contact=}")
505
- ALTEREGO.other_1.setText(f"{the_packet.get("STX", "")}".strip())
506
- ALTEREGO.other_2.setText(f"{the_packet.get("SRX", "")}".strip())
505
+ ALTEREGO.other_1.setText(f'{the_packet.get("STX", "")}'.strip())
506
+ ALTEREGO.other_2.setText(f'{the_packet.get("SRX", "")}'.strip())
507
507
  ALTEREGO.save_contact()
@@ -477,7 +477,7 @@ def ft8_handler(the_packet: dict):
477
477
  ALTEREGO.contact["Call"] = the_packet.get("CALL", "")
478
478
  ALTEREGO.contact["SNT"] = ALTEREGO.sent.text()
479
479
  ALTEREGO.contact["RCV"] = ALTEREGO.receive.text()
480
- ALTEREGO.contact["Exchange1"] = f"{the_packet.get("STATE", "")}".strip()
480
+ ALTEREGO.contact["Exchange1"] = f'{the_packet.get("STATE", "")}'.strip()
481
481
  ALTEREGO.contact["ZN"] = the_packet.get("CQZ", "")
482
482
  ALTEREGO.contact["Mode"] = the_packet.get("MODE", "ERR")
483
483
  ALTEREGO.contact["Freq"] = round(float(the_packet.get("FREQ", "0.0")) * 1000, 2)
@@ -489,5 +489,5 @@ def ft8_handler(the_packet: dict):
489
489
  )
490
490
  logger.debug(f"{ALTEREGO.contact=}")
491
491
  ALTEREGO.other_1.setText(str(the_packet.get("CQZ", "ERR")))
492
- ALTEREGO.other_2.setText(f"{the_packet.get("STATE", "")}".strip())
492
+ ALTEREGO.other_2.setText(f'{the_packet.get("STATE", "")}'.strip())
493
493
  ALTEREGO.save_contact()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.10.5
3
+ Version: 24.10.6
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
@@ -219,6 +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-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
223
+ - [24-10-5-1] Store the bandmap spots age timer in the preferences.
222
224
  - [24-10-5] Force reselction of contest after different DB opened.
223
225
  - [24-10-2] Add WPX RTTY.
224
226
  - [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.
@@ -566,7 +568,7 @@ onscreen icon for CAT status. Green good, Red bad, Grey neither.
566
568
  ### CW Keyer interface
567
569
 
568
570
  Under the `CW` TAB, There are three options. `cwdaemon`, which normally uses IP
569
- `127.0.0.1` and port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` and
571
+ `127.0.0.1`port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` port `8000` and
570
572
  `CAT` which if your radio supports it, sends Morse characters via rigctld. As far
571
573
  as I can tell rigctld does not support setting the radios internal keyer speed. So
572
574
  the CW speed control widget will not be functional and you'd need to control the
@@ -165,4 +165,5 @@ not1mm/plugins/phone_weekly_test.py
165
165
  not1mm/plugins/ref_cw.py
166
166
  not1mm/plugins/stew_perry_topband.py
167
167
  not1mm/plugins/weekly_rtty.py
168
- not1mm/plugins/winter_field_day.py
168
+ not1mm/plugins/winter_field_day.py
169
+ test/contests.py
@@ -2,3 +2,5 @@ dist
2
2
  not1mm
3
3
  pic
4
4
  research
5
+ test
6
+ venv
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "not1mm"
7
- version = "24.10.5"
7
+ version = "24.10.6"
8
8
  description = "NOT1MM Logger"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"