not1mm 24.11.5__tar.gz → 24.11.10__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 (176) hide show
  1. {not1mm-24.11.5 → not1mm-24.11.10}/PKG-INFO +3 -1
  2. {not1mm-24.11.5 → not1mm-24.11.10}/README.md +2 -0
  3. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/__main__.py +25 -6
  4. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/cat_interface.py +19 -8
  5. not1mm-24.11.10/not1mm/lib/version.py +3 -0
  6. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/arrl_ss_cw.py +0 -1
  7. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/arrl_vhf_jan.py +9 -0
  8. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/arrl_vhf_jun.py +9 -0
  9. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/arrl_vhf_sep.py +9 -0
  10. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/cq_160_cw.py +11 -0
  11. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/cq_160_ssb.py +11 -0
  12. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/cq_ww_cw.py +9 -0
  13. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/cq_ww_rtty.py +11 -0
  14. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/cq_ww_ssb.py +9 -0
  15. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/k1usn_sst.py +0 -1
  16. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/naqp_cw.py +0 -1
  17. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/naqp_rtty.py +0 -1
  18. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/naqp_ssb.py +0 -1
  19. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/raem.py +0 -1
  20. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/stew_perry_topband.py +9 -0
  21. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/weekly_rtty.py +11 -0
  22. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/winter_field_day.py +0 -1
  23. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/radio.py +24 -0
  24. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm.egg-info/PKG-INFO +3 -1
  25. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm.egg-info/SOURCES.txt +1 -4
  26. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm.egg-info/top_level.txt +0 -1
  27. {not1mm-24.11.5 → not1mm-24.11.10}/pyproject.toml +1 -1
  28. not1mm-24.11.5/not1mm/lib/playsound.py +0 -296
  29. not1mm-24.11.5/not1mm/lib/version.py +0 -3
  30. not1mm-24.11.5/not1mm/test.py +0 -61
  31. not1mm-24.11.5/test/contests.py +0 -591
  32. {not1mm-24.11.5 → not1mm-24.11.10}/LICENSE +0 -0
  33. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/__init__.py +0 -0
  34. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/bandmap.py +0 -0
  35. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/checkwindow.py +0 -0
  36. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
  37. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/MASTER.SCP +0 -0
  38. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/about.ui +0 -0
  39. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  40. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/bandmap.ui +0 -0
  41. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/check.png +0 -0
  42. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/checkwindow.ui +0 -0
  43. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/configuration.ui +0 -0
  44. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/contests.sql +0 -0
  45. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/cty.json +0 -0
  46. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/cwmacros.txt +0 -0
  47. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/donors.html +0 -0
  48. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/editcontact.ui +0 -0
  49. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/editmacro.ui +0 -0
  50. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/greendot.png +0 -0
  51. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/k6gte-not1mm.desktop +0 -0
  52. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/k6gte.not1mm-128.png +0 -0
  53. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/k6gte.not1mm-32.png +0 -0
  54. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/k6gte.not1mm-64.png +0 -0
  55. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/logwindow.ui +0 -0
  56. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/logwindowx.ui +0 -0
  57. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/main.ui +0 -0
  58. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/new_contest.ui +0 -0
  59. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/not1mm.html +0 -0
  60. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/opon.ui +0 -0
  61. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/0.wav +0 -0
  62. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/1.wav +0 -0
  63. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/2.wav +0 -0
  64. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/3.wav +0 -0
  65. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/4.wav +0 -0
  66. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/5.wav +0 -0
  67. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/6.wav +0 -0
  68. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/7.wav +0 -0
  69. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/73.wav +0 -0
  70. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/8.wav +0 -0
  71. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/9.wav +0 -0
  72. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/a.wav +0 -0
  73. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/again.wav +0 -0
  74. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/b.wav +0 -0
  75. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/c.wav +0 -0
  76. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/contest.wav +0 -0
  77. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/cq.wav +0 -0
  78. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/cq2.wav +0 -0
  79. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/d.wav +0 -0
  80. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/e.wav +0 -0
  81. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/f.wav +0 -0
  82. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/g.wav +0 -0
  83. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/h.wav +0 -0
  84. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/i.wav +0 -0
  85. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/j.wav +0 -0
  86. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/k.wav +0 -0
  87. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/k6gte.wav +0 -0
  88. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/l.wav +0 -0
  89. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/m.wav +0 -0
  90. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/mynumber.wav +0 -0
  91. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/n.wav +0 -0
  92. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/nil.wav +0 -0
  93. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/o.wav +0 -0
  94. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/p.wav +0 -0
  95. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/q.wav +0 -0
  96. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/r.wav +0 -0
  97. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/roger.wav +0 -0
  98. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/s.wav +0 -0
  99. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/space.wav +0 -0
  100. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/t.wav +0 -0
  101. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/thankyou.wav +0 -0
  102. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  103. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/u.wav +0 -0
  104. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/v.wav +0 -0
  105. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/w.wav +0 -0
  106. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/x.wav +0 -0
  107. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/y.wav +0 -0
  108. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/yourcall.wav +0 -0
  109. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/phonetics/z.wav +0 -0
  110. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/pickcontest.ui +0 -0
  111. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/radio_green.png +0 -0
  112. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/radio_grey.png +0 -0
  113. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/radio_red.png +0 -0
  114. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/reddot.png +0 -0
  115. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/rttymacros.txt +0 -0
  116. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/settings.ui +0 -0
  117. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/splash.png +0 -0
  118. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/ssbmacros.txt +0 -0
  119. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/data/vfo.ui +0 -0
  120. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/fsutils.py +0 -0
  121. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/__init__.py +0 -0
  122. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/about.py +0 -0
  123. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/cwinterface.py +0 -0
  124. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/database.py +0 -0
  125. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/edit_contact.py +0 -0
  126. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/edit_macro.py +0 -0
  127. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/edit_opon.py +0 -0
  128. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/edit_station.py +0 -0
  129. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/fldigi_sendstring.py +0 -0
  130. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/fldigi_watcher.py +0 -0
  131. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/ft8_watcher.py +0 -0
  132. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/ham_utility.py +0 -0
  133. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/lookup.py +0 -0
  134. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/multicast.py +0 -0
  135. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/n1mm.py +0 -0
  136. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/new_contest.py +0 -0
  137. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/plugin_common.py +0 -0
  138. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/select_contest.py +0 -0
  139. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/settings.py +0 -0
  140. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/super_check_partial.py +0 -0
  141. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lib/versiontest.py +0 -0
  142. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/logwindow.py +0 -0
  143. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/lookupservice.py +0 -0
  144. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/10_10_fall_cw.py +0 -0
  145. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/10_10_spring_cw.py +0 -0
  146. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/10_10_summer_phone.py +0 -0
  147. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/10_10_winter_phone.py +0 -0
  148. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/__init__.py +0 -0
  149. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/arrl_10m.py +0 -0
  150. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/arrl_dx_cw.py +0 -0
  151. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  152. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/arrl_field_day.py +0 -0
  153. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  154. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/arrl_ss_phone.py +0 -0
  155. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/canada_day.py +0 -0
  156. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/cq_wpx_cw.py +0 -0
  157. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/cq_wpx_rtty.py +0 -0
  158. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  159. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/cwt.py +0 -0
  160. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/general_logging.py +0 -0
  161. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/helvetia.py +0 -0
  162. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
  163. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
  164. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/iaru_hf.py +0 -0
  165. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/icwc_mst.py +0 -0
  166. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/jidx_cw.py +0 -0
  167. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/jidx_ph.py +0 -0
  168. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/phone_weekly_test.py +0 -0
  169. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/ref_cw.py +0 -0
  170. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/plugins/ref_ssb.py +0 -0
  171. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/vfo.py +0 -0
  172. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm/voice_keying.py +0 -0
  173. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm.egg-info/dependency_links.txt +0 -0
  174. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm.egg-info/entry_points.txt +0 -0
  175. {not1mm-24.11.5 → not1mm-24.11.10}/not1mm.egg-info/requires.txt +0 -0
  176. {not1mm-24.11.5 → not1mm-24.11.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.11.5
3
+ Version: 24.11.10
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
@@ -236,6 +236,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
236
236
 
237
237
  ## Recent Changes (Polishing the Turd)
238
238
 
239
+ - [24-11-10] ReJiggered CAT/flrig interface to hopefull make it more workable.
240
+ - [24-11-6] Added Call history to ARRL VHF, CQ160, CQWW, StewPerry, Weekly RTTY
239
241
  - [24-11-5] Fix crash with bad qrz credentials.
240
242
  - [24-11-3-1] Fixed CWT ESM, Add Call History to CWT, Helvetia, WFD, NAQP, K1USN. Add ESM Helvetia.
241
243
  - [24-11-3] Added RAEM contest
@@ -205,6 +205,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
205
205
 
206
206
  ## Recent Changes (Polishing the Turd)
207
207
 
208
+ - [24-11-10] ReJiggered CAT/flrig interface to hopefull make it more workable.
209
+ - [24-11-6] Added Call history to ARRL VHF, CQ160, CQWW, StewPerry, Weekly RTTY
208
210
  - [24-11-5] Fix crash with bad qrz credentials.
209
211
  - [24-11-3-1] Fixed CWT ESM, Add Call History to CWT, Helvetia, WFD, NAQP, K1USN. Add ESM Helvetia.
210
212
  - [24-11-3] Added RAEM contest
@@ -1107,11 +1107,16 @@ class MainWindow(QtWidgets.QMainWindow):
1107
1107
  -------
1108
1108
  Nothing
1109
1109
  """
1110
+
1110
1111
  if mode in ["CW", "SSB", "RTTY"]:
1111
1112
  freq = fakefreq(str(band), mode)
1112
1113
  self.change_freq(freq)
1113
1114
  vfo = float(freq)
1114
1115
  vfo = int(vfo * 1000)
1116
+ if mode == "CW":
1117
+ mode = self.rig_control.last_cw_mode
1118
+ if mode == "RTTY":
1119
+ mode = self.rig_control.last_data_mode
1115
1120
  self.change_mode(mode, intended_freq=vfo)
1116
1121
 
1117
1122
  def quit_app(self) -> None:
@@ -3315,10 +3320,9 @@ class MainWindow(QtWidgets.QMainWindow):
3315
3320
  -------
3316
3321
  None
3317
3322
  """
3318
-
3319
3323
  if mode in ("CW", "CW-U", "CW-L", "CWR"):
3320
3324
  if self.rig_control and self.rig_control.online:
3321
- self.rig_control.set_mode("CW")
3325
+ self.rig_control.set_mode(self.rig_control.last_cw_mode)
3322
3326
  if self.pref.get("cwtype") == 3 and self.rig_control is not None:
3323
3327
  if self.rig_control.interface == "flrig":
3324
3328
  self.cwspeed_spinbox_changed()
@@ -3332,9 +3336,18 @@ class MainWindow(QtWidgets.QMainWindow):
3332
3336
  self.clearinputs()
3333
3337
  self.read_cw_macros()
3334
3338
  return
3335
- if mode == "RTTY":
3339
+ if mode in (
3340
+ "DIGI-U",
3341
+ "DIGI-L",
3342
+ "RTTY",
3343
+ "RTTY-R",
3344
+ "LSB-D",
3345
+ "USB-D",
3346
+ "AM-D",
3347
+ "FM-D",
3348
+ ):
3336
3349
  if self.rig_control and self.rig_control.online:
3337
- self.rig_control.set_mode("RTTY")
3350
+ self.rig_control.set_mode(self.rig_control.last_data_mode)
3338
3351
  else:
3339
3352
  self.radio_state["mode"] = "RTTY"
3340
3353
  self.setmode("RTTY")
@@ -3548,6 +3561,7 @@ class MainWindow(QtWidgets.QMainWindow):
3548
3561
  Passing in a dictionary object with the
3549
3562
  vfo freq, mode, bandwidth, and online state of the radio.
3550
3563
  """
3564
+ logger.debug(f"{the_dict=}")
3551
3565
  self.set_radio_icon(0)
3552
3566
  info_dirty = False
3553
3567
  vfo = the_dict.get("vfoa", "")
@@ -3645,7 +3659,7 @@ class MainWindow(QtWidgets.QMainWindow):
3645
3659
  -------
3646
3660
  None
3647
3661
  """
3648
- if self.radio_state.get("mode") == "CW":
3662
+ if self.radio_state.get("mode") in ("CW", "CW-L", "CW-R", "CWR"):
3649
3663
  macro_file = "cwmacros.txt"
3650
3664
  elif self.radio_state.get("mode") in (
3651
3665
  "RTTY",
@@ -3659,6 +3673,7 @@ class MainWindow(QtWidgets.QMainWindow):
3659
3673
  "RTTYR",
3660
3674
  "PKTLSB",
3661
3675
  "PKTUSB",
3676
+ "FSK",
3662
3677
  ):
3663
3678
  macro_file = "rttymacros.txt"
3664
3679
  else:
@@ -3687,7 +3702,11 @@ class MainWindow(QtWidgets.QMainWindow):
3687
3702
  temp directory this is running from... In theory.
3688
3703
  """
3689
3704
 
3690
- if self.radio_state.get("mode") == "CW":
3705
+ if self.radio_state.get("mode") in (
3706
+ "CW",
3707
+ "CW-L",
3708
+ "CW-R",
3709
+ ):
3691
3710
  macro_file = "cwmacros.txt"
3692
3711
  elif self.radio_state.get("mode") in (
3693
3712
  "RTTY",
@@ -97,6 +97,7 @@ class CAT:
97
97
  self.__initialize_rigctrld()
98
98
  elif self.interface == "fake":
99
99
  self.online = True
100
+ logger.debug("Using Fake Rig")
100
101
  return
101
102
 
102
103
  def __initialize_rigctrld(self):
@@ -223,7 +224,9 @@ class CAT:
223
224
  """Poll the radio using flrig"""
224
225
  try:
225
226
  self.online = True
226
- return self.server.rig.get_vfo()
227
+ vfo_value = self.server.rig.get_vfo()
228
+ logger.debug(f"{vfo_value=}")
229
+ return vfo_value
227
230
  except (
228
231
  ConnectionRefusedError,
229
232
  xmlrpc.client.Fault,
@@ -232,7 +235,7 @@ class CAT:
232
235
  http.client.ResponseNotReady,
233
236
  ) as exception:
234
237
  self.online = False
235
- logger.debug("getvfo_flrig: %s", f"{exception}")
238
+ logger.debug(f"{exception=}")
236
239
  return ""
237
240
 
238
241
  def __getvfo_rigctld(self) -> str:
@@ -244,7 +247,7 @@ class CAT:
244
247
  return self.__get_serial_string().strip()
245
248
  except socket.error as exception:
246
249
  self.online = False
247
- logger.debug("getvfo_rigctld: %s", f"{exception}")
250
+ logger.debug(f"{exception=}")
248
251
  self.rigctrlsocket = None
249
252
  return ""
250
253
 
@@ -268,7 +271,9 @@ class CAT:
268
271
  # 7300 ['LSB', 'USB', 'AM', 'FM', 'CW', 'CW-R', 'RTTY', 'RTTY-R', 'LSB-D', 'USB-D', 'AM-D', 'FM-D']
269
272
  try:
270
273
  self.online = True
271
- return self.server.rig.get_mode()
274
+ mode_value = self.server.rig.get_mode()
275
+ logger.debug(f"{mode_value=}")
276
+ return mode_value
272
277
  except (
273
278
  ConnectionRefusedError,
274
279
  xmlrpc.client.Fault,
@@ -282,7 +287,7 @@ class CAT:
282
287
 
283
288
  def __getmode_rigctld(self) -> str:
284
289
  """Returns mode vai rigctld"""
285
- # QMX 'AM CW USB LSB RTTY FM CWR RTTYR'
290
+ # QMX 'DIGI-U DIGI-L CW-U CW-L' or 'LSB', 'USB', 'CW', 'FM', 'AM', 'FSK'
286
291
  # 7300 'AM CW USB LSB RTTY FM CWR RTTYR PKTLSB PKTUSB FM-D AM-D'
287
292
  if self.rigctrlsocket:
288
293
  try:
@@ -316,6 +321,7 @@ class CAT:
316
321
  try:
317
322
  self.online = True
318
323
  bandwidth = self.server.rig.get_bw()
324
+ logger.debug(f"{bandwidth=}")
319
325
  return bandwidth[0]
320
326
  except (
321
327
  ConnectionRefusedError,
@@ -438,7 +444,9 @@ class CAT:
438
444
  """Returns list of modes supported by the radio"""
439
445
  try:
440
446
  self.online = True
441
- return self.server.rig.get_modes()
447
+ mode_list = self.server.rig.get_modes()
448
+ logger.debug(f"{mode_list=}")
449
+ return mode_list
442
450
  except (
443
451
  ConnectionRefusedError,
444
452
  xmlrpc.client.Fault,
@@ -529,7 +537,10 @@ class CAT:
529
537
  """Sets the radios mode"""
530
538
  try:
531
539
  self.online = True
532
- return self.server.rig.set_mode(mode)
540
+ logger.debug(f"{mode=}")
541
+ set_mode_result = self.server.rig.set_mode(mode)
542
+ logger.debug(f"self.server.rig.setmode(mode) = {set_mode_result}")
543
+ return set_mode_result
533
544
  except (
534
545
  ConnectionRefusedError,
535
546
  xmlrpc.client.Fault,
@@ -538,7 +549,7 @@ class CAT:
538
549
  http.client.ResponseNotReady,
539
550
  ) as exception:
540
551
  self.online = False
541
- logger.debug("setmode_flrig: %s", f"{exception}")
552
+ logger.debug(f"{exception=}")
542
553
  return False
543
554
 
544
555
  def __setmode_rigctld(self, mode: str) -> bool:
@@ -0,0 +1,3 @@
1
+ """It's the version"""
2
+
3
+ __version__ = "24.11.10"
@@ -137,7 +137,6 @@ def prefill(self):
137
137
  def check_call_history(self):
138
138
  """"""
139
139
  result = self.database.fetch_call_history(self.callsign.text())
140
- print(f"{result=}")
141
140
  if result:
142
141
  self.history_info.setText(f"{result.get('UserText','')}")
143
142
  if self.other_2.text() == "":
@@ -535,3 +535,12 @@ def ft8_handler(the_packet: dict):
535
535
  ALTEREGO.other_1.setText(my_grid)
536
536
  ALTEREGO.other_2.setText(their_grid)
537
537
  ALTEREGO.save_contact()
538
+
539
+
540
+ def check_call_history(self):
541
+ """"""
542
+ result = self.database.fetch_call_history(self.callsign.text())
543
+ if result:
544
+ self.history_info.setText(f"{result.get('UserText','')}")
545
+ if self.other_2.text() == "":
546
+ self.other_2.setText(f"{result.get('Loc1', '')}")
@@ -503,3 +503,12 @@ def ft8_handler(the_packet: dict):
503
503
  ALTEREGO.other_1.setText(my_grid)
504
504
  ALTEREGO.other_2.setText(their_grid)
505
505
  ALTEREGO.save_contact()
506
+
507
+
508
+ def check_call_history(self):
509
+ """"""
510
+ result = self.database.fetch_call_history(self.callsign.text())
511
+ if result:
512
+ self.history_info.setText(f"{result.get('UserText','')}")
513
+ if self.other_2.text() == "":
514
+ self.other_2.setText(f"{result.get('Loc1', '')}")
@@ -503,3 +503,12 @@ def ft8_handler(the_packet: dict):
503
503
  ALTEREGO.other_1.setText(my_grid)
504
504
  ALTEREGO.other_2.setText(their_grid)
505
505
  ALTEREGO.save_contact()
506
+
507
+
508
+ def check_call_history(self):
509
+ """"""
510
+ result = self.database.fetch_call_history(self.callsign.text())
511
+ if result:
512
+ self.history_info.setText(f"{result.get('UserText','')}")
513
+ if self.other_2.text() == "":
514
+ self.other_2.setText(f"{result.get('Loc1', '')}")
@@ -448,3 +448,14 @@ def recalculate_mults(self):
448
448
  contact["IsMultiplier1"] = 0
449
449
  self.database.change_contact(contact)
450
450
  trigger_update(self)
451
+
452
+
453
+ def check_call_history(self):
454
+ """"""
455
+ result = self.database.fetch_call_history(self.callsign.text())
456
+ if result:
457
+ self.history_info.setText(f"{result.get('UserText','')}")
458
+ # if self.other_1.text() == "":
459
+ # self.other_1.setText(f"{result.get('CQZone', '')}")
460
+ # if self.other_2.text() == "":
461
+ # self.other_2.setText(f"{result.get('State', '')}")
@@ -448,3 +448,14 @@ def recalculate_mults(self):
448
448
  contact["IsMultiplier1"] = 0
449
449
  self.database.change_contact(contact)
450
450
  trigger_update(self)
451
+
452
+
453
+ def check_call_history(self):
454
+ """"""
455
+ result = self.database.fetch_call_history(self.callsign.text())
456
+ if result:
457
+ self.history_info.setText(f"{result.get('UserText','')}")
458
+ # if self.other_1.text() == "":
459
+ # self.other_1.setText(f"{result.get('CQZone', '')}")
460
+ # if self.other_2.text() == "":
461
+ # self.other_2.setText(f"{result.get('State', '')}")
@@ -518,3 +518,12 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
518
518
  self.save_contact()
519
519
  continue
520
520
  self.process_function_key(button)
521
+
522
+
523
+ def check_call_history(self):
524
+ """"""
525
+ result = self.database.fetch_call_history(self.callsign.text())
526
+ if result:
527
+ self.history_info.setText(f"{result.get('UserText','')}")
528
+ if self.other_2.text() == "":
529
+ self.other_2.setText(f"{result.get('CQZone', '')}")
@@ -637,3 +637,14 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
637
637
  continue
638
638
  sendstring = f"{sendstring}{self.process_macro(button.toolTip())} "
639
639
  self.fldigi_util.send_string(sendstring)
640
+
641
+
642
+ def check_call_history(self):
643
+ """"""
644
+ result = self.database.fetch_call_history(self.callsign.text())
645
+ if result:
646
+ self.history_info.setText(f"{result.get('UserText','')}")
647
+ if self.other_1.text() == "":
648
+ self.other_1.setText(f"{result.get('CQZone', '')}")
649
+ if self.other_2.text() == "":
650
+ self.other_2.setText(f"{result.get('State', '')}")
@@ -506,3 +506,12 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
506
506
  self.save_contact()
507
507
  continue
508
508
  self.process_function_key(button)
509
+
510
+
511
+ def check_call_history(self):
512
+ """"""
513
+ result = self.database.fetch_call_history(self.callsign.text())
514
+ if result:
515
+ self.history_info.setText(f"{result.get('UserText','')}")
516
+ if self.other_2.text() == "":
517
+ self.other_2.setText(f"{result.get('CQZone', '')}")
@@ -496,7 +496,6 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
496
496
  def check_call_history(self):
497
497
  """"""
498
498
  result = self.database.fetch_call_history(self.callsign.text())
499
- print(f"{result=}")
500
499
  if result:
501
500
  self.history_info.setText(f"{result.get('UserText','')}")
502
501
  if self.other_1.text() == "":
@@ -546,7 +546,6 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
546
546
  def check_call_history(self):
547
547
  """"""
548
548
  result = self.database.fetch_call_history(self.callsign.text())
549
- print(f"{result=}")
550
549
  if result:
551
550
  self.history_info.setText(f"{result.get('UserText','')}")
552
551
  if self.other_1.text() == "":
@@ -653,7 +653,6 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
653
653
  def check_call_history(self):
654
654
  """"""
655
655
  result = self.database.fetch_call_history(self.callsign.text())
656
- print(f"{result=}")
657
656
  if result:
658
657
  self.history_info.setText(f"{result.get('UserText','')}")
659
658
  if self.other_1.text() == "":
@@ -516,7 +516,6 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
516
516
  def check_call_history(self):
517
517
  """"""
518
518
  result = self.database.fetch_call_history(self.callsign.text())
519
- print(f"{result=}")
520
519
  if result:
521
520
  self.history_info.setText(f"{result.get('UserText','')}")
522
521
  if self.other_1.text() == "":
@@ -494,7 +494,6 @@ def recalculate_mults(self):
494
494
  def check_call_history(self):
495
495
  """"""
496
496
  result = self.database.fetch_call_history(self.callsign.text())
497
- print(f"{result=}")
498
497
  if result:
499
498
  self.history_info.setText(f"{result.get('UserText','')}")
500
499
  if self.other_2.text() == "":
@@ -364,3 +364,12 @@ def cabrillo(self, file_encoding):
364
364
 
365
365
  def recalculate_mults(self):
366
366
  """Recalculates multipliers after change in logged qso."""
367
+
368
+
369
+ def check_call_history(self):
370
+ """"""
371
+ result = self.database.fetch_call_history(self.callsign.text())
372
+ if result:
373
+ self.history_info.setText(f"{result.get('UserText','')}")
374
+ if self.other_1.text() == "":
375
+ self.other_1.setText(f"{result.get('Loc1', '')}")
@@ -572,3 +572,14 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
572
572
  continue
573
573
  sendstring = f"{sendstring}{self.process_macro(button.toolTip())} "
574
574
  self.fldigi_util.send_string(sendstring)
575
+
576
+
577
+ def check_call_history(self):
578
+ """"""
579
+ result = self.database.fetch_call_history(self.callsign.text())
580
+ if result:
581
+ self.history_info.setText(f"{result.get('UserText','')}")
582
+ if self.other_1.text() == "":
583
+ self.other_1.setText(f"{result.get('Name', '')}")
584
+ if self.other_2.text() == "":
585
+ self.other_2.setText(f"{result.get('Sect', '')}")
@@ -444,7 +444,6 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
444
444
  def check_call_history(self):
445
445
  """"""
446
446
  result = self.database.fetch_call_history(self.callsign.text())
447
- print(f"{result=}")
448
447
  if result:
449
448
  self.history_info.setText(f"{result.get('UserText','')}")
450
449
  if self.other_1.text() == "":
@@ -35,7 +35,16 @@ class Radio(QObject):
35
35
  host = None
36
36
  port = None
37
37
  modes = ""
38
+ cw_list = ["CW", "CW-L", "CW-U", "CWR"]
39
+ rtty_list = [
40
+ "RTTY",
41
+ "DIGI-L",
42
+ "PKTLSB",
43
+ "LSB-D",
44
+ ]
38
45
  last_data_mode = "RTTY"
46
+ last_cw_mode = "CW"
47
+ last_ph_mode = "SSB"
39
48
 
40
49
  def __init__(self, interface: str, host: str, port: int) -> None:
41
50
  super().__init__()
@@ -49,6 +58,15 @@ class Radio(QObject):
49
58
  self.cat = CAT(self.interface, self.host, self.port)
50
59
  self.online = self.cat.online
51
60
  self.modes = self.cat.get_mode_list()
61
+ for pos_cw in self.cw_list:
62
+ if pos_cw in self.modes:
63
+ self.last_cw_mode = pos_cw
64
+ break
65
+ for pos_rtty in self.rtty_list:
66
+ if pos_rtty in self.modes:
67
+ self.last_data_mode = pos_rtty
68
+ break
69
+
52
70
  except ConnectionResetError:
53
71
  ...
54
72
  while not self.time_to_quit:
@@ -97,6 +115,7 @@ class Radio(QObject):
97
115
  "USB-D",
98
116
  "AM-D",
99
117
  "FM-D",
118
+ "FSK",
100
119
  "DIGI-U",
101
120
  "DIGI-L",
102
121
  "RTTYR",
@@ -106,6 +125,11 @@ class Radio(QObject):
106
125
  if the_mode in datamodes:
107
126
  self.last_data_mode = the_mode
108
127
 
128
+ cwmodes = ["CW", "CW-L", "CW-U", "CWR"]
129
+
130
+ if the_mode in cwmodes:
131
+ self.last_cw_mode = the_mode
132
+
109
133
  def sendcw(self, texttosend):
110
134
  """..."""
111
135
  logger.debug(f"Send CW: {texttosend}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.11.5
3
+ Version: 24.11.10
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
@@ -236,6 +236,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
236
236
 
237
237
  ## Recent Changes (Polishing the Turd)
238
238
 
239
+ - [24-11-10] ReJiggered CAT/flrig interface to hopefull make it more workable.
240
+ - [24-11-6] Added Call history to ARRL VHF, CQ160, CQWW, StewPerry, Weekly RTTY
239
241
  - [24-11-5] Fix crash with bad qrz credentials.
240
242
  - [24-11-3-1] Fixed CWT ESM, Add Call History to CWT, Helvetia, WFD, NAQP, K1USN. Add ESM Helvetia.
241
243
  - [24-11-3] Added RAEM contest
@@ -9,7 +9,6 @@ not1mm/fsutils.py
9
9
  not1mm/logwindow.py
10
10
  not1mm/lookupservice.py
11
11
  not1mm/radio.py
12
- not1mm/test.py
13
12
  not1mm/vfo.py
14
13
  not1mm/voice_keying.py
15
14
  not1mm.egg-info/PKG-INFO
@@ -119,7 +118,6 @@ not1mm/lib/lookup.py
119
118
  not1mm/lib/multicast.py
120
119
  not1mm/lib/n1mm.py
121
120
  not1mm/lib/new_contest.py
122
- not1mm/lib/playsound.py
123
121
  not1mm/lib/plugin_common.py
124
122
  not1mm/lib/select_contest.py
125
123
  not1mm/lib/settings.py
@@ -169,5 +167,4 @@ not1mm/plugins/ref_cw.py
169
167
  not1mm/plugins/ref_ssb.py
170
168
  not1mm/plugins/stew_perry_topband.py
171
169
  not1mm/plugins/weekly_rtty.py
172
- not1mm/plugins/winter_field_day.py
173
- test/contests.py
170
+ not1mm/plugins/winter_field_day.py
@@ -1,4 +1,3 @@
1
1
  dist
2
2
  not1mm
3
3
  pic
4
- venv
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "not1mm"
7
- version = "24.11.5"
7
+ version = "24.11.10"
8
8
  description = "NOT1MM Logger"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"