not1mm 25.4.21__tar.gz → 25.4.25__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 (193) hide show
  1. {not1mm-25.4.21 → not1mm-25.4.25}/PKG-INFO +3 -1
  2. {not1mm-25.4.21 → not1mm-25.4.25}/README.md +2 -0
  3. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/__main__.py +34 -37
  4. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/bandmap.py +2 -2
  5. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/new_contest.ui +5 -0
  6. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/cat_interface.py +52 -36
  7. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/version.py +1 -1
  8. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/arrl_vhf_jan.py +5 -9
  9. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/arrl_vhf_jun.py +5 -9
  10. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/arrl_vhf_sep.py +5 -9
  11. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/cwt.py +11 -14
  12. not1mm-25.4.25/not1mm/plugins/vhf_sprint.py +624 -0
  13. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/radio.py +2 -2
  14. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/ratewindow.py +1 -2
  15. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/vfo.py +2 -0
  16. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm.egg-info/PKG-INFO +3 -1
  17. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm.egg-info/SOURCES.txt +1 -0
  18. {not1mm-25.4.21 → not1mm-25.4.25}/pyproject.toml +1 -1
  19. {not1mm-25.4.21 → not1mm-25.4.25}/LICENSE +0 -0
  20. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/__init__.py +0 -0
  21. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/checkwindow.py +0 -0
  22. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
  23. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/MASTER.SCP +0 -0
  24. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/about.ui +0 -0
  25. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  26. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/bandmap.ui +0 -0
  27. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/check.png +0 -0
  28. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/checkwindow.ui +0 -0
  29. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/configuration.ui +0 -0
  30. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/contests.sql +0 -0
  31. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/cty.json +0 -0
  32. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/cwmacros.txt +0 -0
  33. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/donors.html +0 -0
  34. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/editcontact.ui +0 -0
  35. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/editmacro.ui +0 -0
  36. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/greendot.png +0 -0
  37. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/k6gte-not1mm.desktop +0 -0
  38. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/k6gte.not1mm-128.png +0 -0
  39. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/k6gte.not1mm-32.png +0 -0
  40. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/k6gte.not1mm-64.png +0 -0
  41. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/logwindow.ui +0 -0
  42. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/logwindowx.ui +0 -0
  43. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/main.ui +0 -0
  44. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/not1mm.html +0 -0
  45. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/opon.ui +0 -0
  46. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/0.wav +0 -0
  47. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/1.wav +0 -0
  48. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/2.wav +0 -0
  49. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/3.wav +0 -0
  50. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/4.wav +0 -0
  51. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/5.wav +0 -0
  52. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/6.wav +0 -0
  53. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/7.wav +0 -0
  54. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/73.wav +0 -0
  55. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/8.wav +0 -0
  56. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/9.wav +0 -0
  57. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/a.wav +0 -0
  58. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/again.wav +0 -0
  59. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/b.wav +0 -0
  60. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/c.wav +0 -0
  61. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/contest.wav +0 -0
  62. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/cq.wav +0 -0
  63. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/cq2.wav +0 -0
  64. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/d.wav +0 -0
  65. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/e.wav +0 -0
  66. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/f.wav +0 -0
  67. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/g.wav +0 -0
  68. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/h.wav +0 -0
  69. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/i.wav +0 -0
  70. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/j.wav +0 -0
  71. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/k.wav +0 -0
  72. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/k6gte.wav +0 -0
  73. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/l.wav +0 -0
  74. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/m.wav +0 -0
  75. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/mynumber.wav +0 -0
  76. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/n.wav +0 -0
  77. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/nil.wav +0 -0
  78. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/o.wav +0 -0
  79. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/p.wav +0 -0
  80. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/q.wav +0 -0
  81. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/r.wav +0 -0
  82. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/roger.wav +0 -0
  83. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/s.wav +0 -0
  84. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/space.wav +0 -0
  85. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/t.wav +0 -0
  86. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/thankyou.wav +0 -0
  87. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  88. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/u.wav +0 -0
  89. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/v.wav +0 -0
  90. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/w.wav +0 -0
  91. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/x.wav +0 -0
  92. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/y.wav +0 -0
  93. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/yourcall.wav +0 -0
  94. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/phonetics/z.wav +0 -0
  95. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/pickcontest.ui +0 -0
  96. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/radio_green.png +0 -0
  97. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/radio_grey.png +0 -0
  98. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/radio_red.png +0 -0
  99. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/ratewindow.ui +0 -0
  100. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/reddot.png +0 -0
  101. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/rttymacros.txt +0 -0
  102. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/settings.ui +0 -0
  103. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/splash.png +0 -0
  104. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/ssbmacros.txt +0 -0
  105. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/statistics.ui +0 -0
  106. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/data/vfo.ui +0 -0
  107. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/fsutils.py +0 -0
  108. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/__init__.py +0 -0
  109. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/about.py +0 -0
  110. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/cwinterface.py +0 -0
  111. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/database.py +0 -0
  112. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/edit_contact.py +0 -0
  113. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/edit_macro.py +0 -0
  114. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/edit_opon.py +0 -0
  115. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/edit_station.py +0 -0
  116. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/fldigi_sendstring.py +0 -0
  117. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/ft8_watcher.py +0 -0
  118. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/ham_utility.py +0 -0
  119. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/lookup.py +0 -0
  120. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/multicast.py +0 -0
  121. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/n1mm.py +0 -0
  122. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/new_contest.py +0 -0
  123. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/plugin_common.py +0 -0
  124. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/select_contest.py +0 -0
  125. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/settings.py +0 -0
  126. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/super_check_partial.py +0 -0
  127. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lib/versiontest.py +0 -0
  128. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/logwindow.py +0 -0
  129. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/lookupservice.py +0 -0
  130. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/10_10_fall_cw.py +0 -0
  131. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/10_10_spring_cw.py +0 -0
  132. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/10_10_summer_phone.py +0 -0
  133. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/10_10_winter_phone.py +0 -0
  134. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/__init__.py +0 -0
  135. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/ari_40_80.py +0 -0
  136. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/arrl_10m.py +0 -0
  137. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/arrl_160m.py +0 -0
  138. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/arrl_dx_cw.py +0 -0
  139. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  140. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/arrl_field_day.py +0 -0
  141. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  142. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/arrl_ss_cw.py +0 -0
  143. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/arrl_ss_phone.py +0 -0
  144. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/canada_day.py +0 -0
  145. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/cq_160_cw.py +0 -0
  146. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/cq_160_ssb.py +0 -0
  147. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/cq_wpx_cw.py +0 -0
  148. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/cq_wpx_rtty.py +0 -0
  149. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  150. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/cq_ww_cw.py +0 -0
  151. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/cq_ww_rtty.py +0 -0
  152. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/cq_ww_ssb.py +0 -0
  153. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/darc_vhf.py +0 -0
  154. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/darc_xmas.py +0 -0
  155. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/ea_majistad_cw.py +0 -0
  156. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/ea_majistad_ssb.py +0 -0
  157. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/ea_rtty.py +0 -0
  158. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/es_open.py +0 -0
  159. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/general_logging.py +0 -0
  160. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/helvetia.py +0 -0
  161. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
  162. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
  163. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/iaru_hf.py +0 -0
  164. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/icwc_mst.py +0 -0
  165. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/jidx_cw.py +0 -0
  166. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/jidx_ph.py +0 -0
  167. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/k1usn_sst.py +0 -0
  168. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/labre_rs_digi.py +0 -0
  169. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/lz-dx.py +0 -0
  170. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/naqp_cw.py +0 -0
  171. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/naqp_rtty.py +0 -0
  172. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/naqp_ssb.py +0 -0
  173. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/phone_weekly_test.py +0 -0
  174. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/raem.py +0 -0
  175. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/randomgram.py +0 -0
  176. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/ref_cw.py +0 -0
  177. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/ref_ssb.py +0 -0
  178. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/sac_cw.py +0 -0
  179. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/sac_ssb.py +0 -0
  180. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/spdx.py +0 -0
  181. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/stew_perry_topband.py +0 -0
  182. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/ukeidx.py +0 -0
  183. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/weekly_rtty.py +0 -0
  184. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/plugins/winter_field_day.py +0 -0
  185. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/rtc_service.py +0 -0
  186. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/statistics.py +0 -0
  187. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/test.py +0 -0
  188. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm/voice_keying.py +0 -0
  189. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm.egg-info/dependency_links.txt +0 -0
  190. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm.egg-info/entry_points.txt +0 -0
  191. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm.egg-info/requires.txt +0 -0
  192. {not1mm-25.4.21 → not1mm-25.4.25}/not1mm.egg-info/top_level.txt +0 -0
  193. {not1mm-25.4.21 → not1mm-25.4.25}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: not1mm
3
- Version: 25.4.21
3
+ Version: 25.4.25
4
4
  Summary: NOT1MM Logger
5
5
  Author-email: Michael Bridak <michael.bridak@gmail.com>
6
6
  License: GPL-3.0-or-later
@@ -256,6 +256,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
256
256
 
257
257
  ## Recent Changes
258
258
 
259
+ - [25-4-25] Merged PR from @microphonon making changes to ARRL VHF and CWOps CWT.
260
+ - [25-4-22] Mostly code cleanup. Not running some code when not needed.
259
261
  - [25-4-21] Add a couple more debug messages. Add LSB/USB to input-able commands to the callsign field.
260
262
  - [25-4-19-1] Add FM and AM as input-able commands to the callsign field.
261
263
  - [25-4-19] Changed S&P QSY wipe from 50hz to 500hz.
@@ -224,6 +224,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
224
224
 
225
225
  ## Recent Changes
226
226
 
227
+ - [25-4-25] Merged PR from @microphonon making changes to ARRL VHF and CWOps CWT.
228
+ - [25-4-22] Mostly code cleanup. Not running some code when not needed.
227
229
  - [25-4-21] Add a couple more debug messages. Add LSB/USB to input-able commands to the callsign field.
228
230
  - [25-4-19-1] Add FM and AM as input-able commands to the callsign field.
229
231
  - [25-4-19] Changed S&P QSY wipe from 50hz to 500hz.
@@ -3192,12 +3192,12 @@ class MainWindow(QtWidgets.QMainWindow):
3192
3192
  self.pref.get("CAT_ip", "127.0.0.1"),
3193
3193
  int(self.pref.get("CAT_port", 12345)),
3194
3194
  )
3195
- self.rig_control.delta = int(self.pref.get("CAT_polldelta", 555))
3196
- self.rig_control.moveToThread(self.radio_thread)
3197
- self.radio_thread.started.connect(self.rig_control.run)
3198
- self.radio_thread.finished.connect(self.rig_control.deleteLater)
3199
- self.rig_control.poll_callback.connect(self.poll_radio)
3200
- self.radio_thread.start()
3195
+ # self.rig_control.delta = int(self.pref.get("CAT_polldelta", 555))
3196
+ # self.rig_control.moveToThread(self.radio_thread)
3197
+ # self.radio_thread.started.connect(self.rig_control.run)
3198
+ # self.radio_thread.finished.connect(self.rig_control.deleteLater)
3199
+ # self.rig_control.poll_callback.connect(self.poll_radio)
3200
+ # self.radio_thread.start()
3201
3201
 
3202
3202
  elif self.pref.get("userigctld", False) is True:
3203
3203
  logger.debug(
@@ -3209,24 +3209,24 @@ class MainWindow(QtWidgets.QMainWindow):
3209
3209
  self.pref.get("CAT_ip", "127.0.0.1"),
3210
3210
  int(self.pref.get("CAT_port", 4532)),
3211
3211
  )
3212
- self.rig_control.delta = int(self.pref.get("CAT_polldelta", 555))
3213
- self.rig_control.moveToThread(self.radio_thread)
3214
- self.radio_thread.started.connect(self.rig_control.run)
3215
- self.radio_thread.finished.connect(self.rig_control.deleteLater)
3216
- self.rig_control.poll_callback.connect(self.poll_radio)
3217
- self.radio_thread.start()
3212
+ # self.rig_control.delta = int(self.pref.get("CAT_polldelta", 555))
3213
+ # self.rig_control.moveToThread(self.radio_thread)
3214
+ # self.radio_thread.started.connect(self.rig_control.run)
3215
+ # self.radio_thread.finished.connect(self.rig_control.deleteLater)
3216
+ # self.rig_control.poll_callback.connect(self.poll_radio)
3217
+ # self.radio_thread.start()
3218
3218
  else:
3219
3219
  self.rig_control = Radio(
3220
3220
  "fake",
3221
3221
  self.pref.get("CAT_ip", "127.0.0.1"),
3222
3222
  int(self.pref.get("CAT_port", 0000)),
3223
3223
  )
3224
- self.rig_control.delta = int(self.pref.get("CAT_polldelta", 555))
3225
- self.rig_control.moveToThread(self.radio_thread)
3226
- self.radio_thread.started.connect(self.rig_control.run)
3227
- self.radio_thread.finished.connect(self.rig_control.deleteLater)
3228
- self.rig_control.poll_callback.connect(self.poll_radio)
3229
- self.radio_thread.start()
3224
+ self.rig_control.delta = int(self.pref.get("CAT_polldelta", 555))
3225
+ self.rig_control.moveToThread(self.radio_thread)
3226
+ self.radio_thread.started.connect(self.rig_control.run)
3227
+ self.radio_thread.finished.connect(self.rig_control.deleteLater)
3228
+ self.rig_control.poll_callback.connect(self.poll_radio)
3229
+ self.radio_thread.start()
3230
3230
 
3231
3231
  self.cw = None
3232
3232
  if (
@@ -3925,13 +3925,10 @@ class MainWindow(QtWidgets.QMainWindow):
3925
3925
  self.contact["Band"] = get_logged_band(str(vfo))
3926
3926
  self.set_band_indicator(band)
3927
3927
 
3928
- if self.rig_control:
3929
- if self.rig_control.online:
3930
- self.rig_control.get_modes()
3931
-
3932
3928
  if self.radio_state.get("mode") != mode:
3933
3929
  info_dirty = True
3934
- self.radio_state["mode"] = mode
3930
+ if "set_freq:" not in mode:
3931
+ self.radio_state["mode"] = mode
3935
3932
 
3936
3933
  if self.radio_state.get("bw") != bw:
3937
3934
  info_dirty = True
@@ -3959,26 +3956,26 @@ class MainWindow(QtWidgets.QMainWindow):
3959
3956
  ):
3960
3957
  self.setmode("RTTY")
3961
3958
 
3962
- cmd = {}
3963
- cmd["cmd"] = "RADIO_STATE"
3964
- cmd["band"] = band
3965
- cmd["vfoa"] = vfo
3966
- cmd["mode"] = mode
3967
- cmd["bw"] = bw
3968
3959
  if self.bandmap_window:
3960
+ cmd = {}
3961
+ cmd["cmd"] = "RADIO_STATE"
3962
+ cmd["band"] = band
3963
+ cmd["vfoa"] = vfo
3964
+ cmd["mode"] = mode
3965
+ cmd["bw"] = bw
3969
3966
  self.bandmap_window.msg_from_main(cmd)
3970
3967
  if info_dirty:
3971
3968
  try:
3972
3969
  logger.debug("VFO: %s MODE: %s BW: %s", vfo, mode, bw)
3973
3970
  self.set_window_title()
3974
- cmd = {}
3975
- cmd["cmd"] = "RADIO_STATE"
3976
- cmd["band"] = band
3977
- cmd["vfoa"] = vfo
3978
- cmd["mode"] = mode
3979
- cmd["bw"] = bw
3980
- if self.bandmap_window:
3981
- self.bandmap_window.msg_from_main(cmd)
3971
+ # cmd = {}
3972
+ # cmd["cmd"] = "RADIO_STATE"
3973
+ # cmd["band"] = band
3974
+ # cmd["vfoa"] = vfo
3975
+ # cmd["mode"] = mode
3976
+ # cmd["bw"] = bw
3977
+ # if self.bandmap_window:
3978
+ # self.bandmap_window.msg_from_main(cmd)
3982
3979
  if self.n1mm:
3983
3980
  self.n1mm.radio_info["Freq"] = vfo[:-1]
3984
3981
  self.n1mm.radio_info["TXFreq"] = vfo[:-1]
@@ -385,7 +385,7 @@ class BandMapWindow(QDockWidget):
385
385
 
386
386
  def msg_from_main(self, packet):
387
387
  """"""
388
- if self.active is False:
388
+ if self.active is False or not self.isVisible():
389
389
  return
390
390
  if packet.get("cmd", "") == "RADIO_STATE":
391
391
  self.set_band(packet.get("band") + "m", False)
@@ -688,7 +688,7 @@ class BandMapWindow(QDockWidget):
688
688
  def update_stations(self):
689
689
  """doc"""
690
690
  self.update_timer.setInterval(UPDATE_INTERVAL)
691
- if self.active is False:
691
+ if self.active is False or not self.isVisible():
692
692
  return
693
693
  self.clear_all_callsign_from_scene()
694
694
  self.spot_aging()
@@ -271,6 +271,11 @@
271
271
  <property name="text">
272
272
  <string>ARRL VHF SEP</string>
273
273
  </property>
274
+ </item>
275
+ <item>
276
+ <property name="text">
277
+ <string>VHF SPRINT</string>
278
+ </property>
274
279
  </item>
275
280
  <item>
276
281
  <property name="text">
@@ -71,6 +71,7 @@ class CAT:
71
71
  self.host = host
72
72
  self.port = port
73
73
  self.online = False
74
+ self.rigctld_bw = "0"
74
75
  self.fake_radio = {
75
76
  "vfo": "14032000",
76
77
  "mode": "CW",
@@ -121,6 +122,7 @@ class CAT:
121
122
 
122
123
  def __initialize_rigctrld(self):
123
124
  try:
125
+ logger.debug("Connecting to rigctrld")
124
126
  self.rigctrlsocket = socket.socket()
125
127
  self.rigctrlsocket.settimeout(0.5)
126
128
  self.rigctrlsocket.connect((self.host, self.port))
@@ -154,7 +156,7 @@ class CAT:
154
156
  except (socket.error, UnicodeDecodeError):
155
157
  ...
156
158
  self.rigctrlsocket.settimeout(0.5)
157
- logger.debug("%s", dump)
159
+ # logger.debug("%s", dump)
158
160
  return dump
159
161
 
160
162
  def sendvoicememory(self, memoryspot=1):
@@ -167,7 +169,8 @@ class CAT:
167
169
  try:
168
170
  self.online = True
169
171
  self.rigctrlsocket.send(bytes(f"+\\send_voice_mem {memoryspot}\n", "utf-8"))
170
- _ = self.__get_serial_string()
172
+ info = self.__get_serial_string()
173
+ logger.debug("%s", info)
171
174
  return
172
175
  except socket.error as exception:
173
176
  self.online = False
@@ -189,7 +192,8 @@ class CAT:
189
192
  try:
190
193
  self.online = True
191
194
  self.rigctrlsocket.send(bytes(f"b{texttosend}\n", "utf-8"))
192
- _ = self.__get_serial_string()
195
+ info = self.__get_serial_string()
196
+ logger.debug("%s", info)
193
197
  return True
194
198
  except socket.error as exception:
195
199
  self.online = False
@@ -205,7 +209,8 @@ class CAT:
205
209
  try:
206
210
  self.online = True
207
211
  self.rigctrlsocket.send(bytes(f"L KEYSPD {speed}\n", "utf-8"))
208
- _ = self.__get_serial_string()
212
+ info = self.__get_serial_string()
213
+ logger.debug("%s", info)
209
214
  return
210
215
  except socket.error as exception:
211
216
  self.online = False
@@ -307,6 +312,7 @@ class CAT:
307
312
  self.online = True
308
313
  self.rigctrlsocket.send(b"|f\n")
309
314
  report = self.__get_serial_string().strip()
315
+ logger.debug("%s", report)
310
316
  if "get_freq:|" in report and "RPRT 0" in report:
311
317
  seg_rpt = report.split("|")
312
318
  return seg_rpt[1].split(" ")[1]
@@ -361,8 +367,10 @@ class CAT:
361
367
  self.rigctrlsocket.send(b"|m\n")
362
368
  # get_mode:|Mode: CW|Passband: 500|RPRT 0
363
369
  report = self.__get_serial_string().strip()
370
+ logger.debug("%s", report)
364
371
  if "get_mode:|" in report and "RPRT 0" in report:
365
372
  seg_rpt = report.split("|")
373
+ self.rigctld_bw = seg_rpt[2].split(" ")[1]
366
374
  return seg_rpt[1].split(" ")[1]
367
375
  except IndexError as exception:
368
376
  logger.debug("%s", f"{exception}")
@@ -404,25 +412,27 @@ class CAT:
404
412
 
405
413
  def __getbw_rigctld(self):
406
414
  """return bandwidth"""
407
- if self.rigctrlsocket:
408
- try:
409
- self.online = True
410
- self.rigctrlsocket.send(b"|m\n")
411
- # get_mode:|Mode: CW|Passband: 500|RPRT 0
412
- report = self.__get_serial_string().strip()
413
- if "get_mode:|" in report and "RPRT 0" in report:
414
- seg_rpt = report.split("|")
415
- return seg_rpt[2].split(" ")[1]
416
-
417
- except IndexError as exception:
418
- logger.debug("%s", f"{exception}")
419
- except socket.error as exception:
420
- self.online = False
421
- logger.debug("%s", f"{exception}")
422
- self.rigctrlsocket = None
423
- return ""
424
- self.__initialize_rigctrld()
425
- return ""
415
+ return self.rigctld_bw
416
+ # if self.rigctrlsocket:
417
+ # try:
418
+ # self.online = True
419
+ # self.rigctrlsocket.send(b"|m\n")
420
+ # # get_mode:|Mode: CW|Passband: 500|RPRT 0
421
+ # report = self.__get_serial_string().strip()
422
+ # logger.debug("%s", report)
423
+ # if "get_mode:|" in report and "RPRT 0" in report:
424
+ # seg_rpt = report.split("|")
425
+ # return seg_rpt[2].split(" ")[1]
426
+
427
+ # except IndexError as exception:
428
+ # logger.debug("%s", f"{exception}")
429
+ # except socket.error as exception:
430
+ # self.online = False
431
+ # logger.debug("%s", f"{exception}")
432
+ # self.rigctrlsocket = None
433
+ # return ""
434
+ # self.__initialize_rigctrld()
435
+ # return ""
426
436
 
427
437
  def get_power(self):
428
438
  """Get power level from rig"""
@@ -455,6 +465,7 @@ class CAT:
455
465
  self.rigctrlsocket.send(b"|l RFPOWER\n")
456
466
  # get_level: RFPOWER|0.000000|RPRT 0
457
467
  report = self.__get_serial_string().strip()
468
+ logger.debug("%s", report)
458
469
  if "get_level: RFPOWER|" in report and "RPRT 0" in report:
459
470
  seg_rpt = report.split("|")
460
471
  return int(float(seg_rpt[1]) * 100)
@@ -588,8 +599,9 @@ class CAT:
588
599
  if self.rigctrlsocket:
589
600
  try:
590
601
  self.online = True
591
- self.rigctrlsocket.send(bytes(f"F {freq}\n", "utf-8"))
592
- _ = self.__get_serial_string()
602
+ self.rigctrlsocket.send(bytes(f"|F {freq}\n", "utf-8"))
603
+ info = self.__get_serial_string()
604
+ logger.debug("%s", info)
593
605
  return True
594
606
  except socket.error as exception:
595
607
  self.online = False
@@ -634,11 +646,12 @@ class CAT:
634
646
  if self.rigctrlsocket:
635
647
  try:
636
648
  self.online = True
637
- logger.debug(f"\nM {mode} 0\n")
638
- self.rigctrlsocket.send(bytes(f"\nM {mode} 0\n", "utf-8"))
639
- if self.__get_serial_string() != "RPRT 0\n":
640
- self.rigctrlsocket.send(bytes(f"\nM {mode} 0\n", "utf-8"))
641
- _ = self.__get_serial_string()
649
+ # logger.debug(f"\nM {mode} 0\n")
650
+ self.rigctrlsocket.send(bytes(f"\n|M {mode} 0\n", "utf-8"))
651
+ # if self.__get_serial_string() != "RPRT 0\n":
652
+ # self.rigctrlsocket.send(bytes(f"\n|M {mode} 0\n", "utf-8"))
653
+ info = self.__get_serial_string()
654
+ logger.debug("%s", info)
642
655
  return True
643
656
  except socket.error as exception:
644
657
  self.online = False
@@ -676,11 +689,12 @@ class CAT:
676
689
 
677
690
  def __setpower_rigctld(self, power):
678
691
  if power.isnumeric() and int(power) >= 1 and int(power) <= 100:
679
- rig_cmd = bytes(f"L RFPOWER {str(float(power) / 100)}\n", "utf-8")
692
+ rig_cmd = bytes(f"|L RFPOWER {str(float(power) / 100)}\n", "utf-8")
680
693
  try:
681
694
  self.online = True
682
695
  self.rigctrlsocket.send(rig_cmd)
683
- _ = self.__get_serial_string()
696
+ info = self.__get_serial_string()
697
+ logger.debug("%s", info)
684
698
  except socket.error:
685
699
  self.online = False
686
700
  self.rigctrlsocket = None
@@ -706,12 +720,13 @@ class CAT:
706
720
  # Get 'PTT' status.
707
721
  # Returns PTT as a value in set_ptt above.
708
722
 
709
- rig_cmd = bytes("T 1\n", "utf-8")
723
+ rig_cmd = bytes("|T 1\n", "utf-8")
710
724
  logger.debug("%s", f"{rig_cmd}")
711
725
  try:
712
726
  self.online = True
713
727
  self.rigctrlsocket.send(rig_cmd)
714
- _ = self.__get_serial_string()
728
+ info = self.__get_serial_string()
729
+ logger.debug("%s", info)
715
730
  except socket.error:
716
731
  self.online = False
717
732
  self.rigctrlsocket = None
@@ -745,12 +760,13 @@ class CAT:
745
760
 
746
761
  def __ptt_off_rigctld(self):
747
762
  """Toggle PTT state off"""
748
- rig_cmd = bytes("T 0\n", "utf-8")
763
+ rig_cmd = bytes("|T 0\n", "utf-8")
749
764
  logger.debug("%s", f"{rig_cmd}")
750
765
  try:
751
766
  self.online = True
752
767
  self.rigctrlsocket.send(rig_cmd)
753
- _ = self.__get_serial_string()
768
+ into = self.__get_serial_string()
769
+ logger.debug("%s", into)
754
770
  except socket.error:
755
771
  self.online = False
756
772
  self.rigctrlsocket = None
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "25.4.21"
3
+ __version__ = "25.4.25"
@@ -82,13 +82,13 @@ def init_contest(self):
82
82
 
83
83
  def interface(self):
84
84
  """Setup user interface"""
85
- self.field1.show()
86
- self.field2.show()
85
+ self.field1.hide()
86
+ self.field2.hide()
87
87
  self.field3.show()
88
88
  self.field4.show()
89
89
  self.snt_label.setText("SNT")
90
90
  self.field1.setAccessibleName("RST Sent")
91
- self.other_label.setText("SentNR")
91
+ self.other_label.setText("Sent Grid")
92
92
  self.field3.setAccessibleName("Sent Grid")
93
93
  self.exch_label.setText("Grid")
94
94
  self.field4.setAccessibleName("Gridsquare")
@@ -101,9 +101,7 @@ def reset_label(self):
101
101
  def set_tab_next(self):
102
102
  """Set TAB Advances"""
103
103
  self.tab_next = {
104
- self.callsign: self.sent,
105
- self.sent: self.receive,
106
- self.receive: self.other_1,
104
+ self.callsign: self.other_1,
107
105
  self.other_1: self.other_2,
108
106
  self.other_2: self.callsign,
109
107
  }
@@ -113,10 +111,8 @@ def set_tab_prev(self):
113
111
  """Set TAB Advances"""
114
112
  self.tab_prev = {
115
113
  self.callsign: self.other_2,
116
- self.sent: self.callsign,
117
- self.receive: self.sent,
118
- self.other_1: self.receive,
119
114
  self.other_2: self.other_1,
115
+ self.other_1: self.callsign,
120
116
  }
121
117
 
122
118
 
@@ -50,13 +50,13 @@ def init_contest(self):
50
50
 
51
51
  def interface(self):
52
52
  """Setup user interface"""
53
- self.field1.show()
54
- self.field2.show()
53
+ self.field1.hide()
54
+ self.field2.hide()
55
55
  self.field3.show()
56
56
  self.field4.show()
57
57
  self.snt_label.setText("SNT")
58
58
  self.field1.setAccessibleName("RST Sent")
59
- self.other_label.setText("SentNR")
59
+ self.other_label.setText("Sent Grid")
60
60
  self.field3.setAccessibleName("Sent Grid")
61
61
  self.exch_label.setText("Grid")
62
62
  self.field4.setAccessibleName("Gridsquare")
@@ -69,9 +69,7 @@ def reset_label(self):
69
69
  def set_tab_next(self):
70
70
  """Set TAB Advances"""
71
71
  self.tab_next = {
72
- self.callsign: self.sent,
73
- self.sent: self.receive,
74
- self.receive: self.other_1,
72
+ self.callsign: self.other_1,
75
73
  self.other_1: self.other_2,
76
74
  self.other_2: self.callsign,
77
75
  }
@@ -81,10 +79,8 @@ def set_tab_prev(self):
81
79
  """Set TAB Advances"""
82
80
  self.tab_prev = {
83
81
  self.callsign: self.other_2,
84
- self.sent: self.callsign,
85
- self.receive: self.sent,
86
- self.other_1: self.receive,
87
82
  self.other_2: self.other_1,
83
+ self.other_1: self.callsign,
88
84
  }
89
85
 
90
86
 
@@ -50,13 +50,13 @@ def init_contest(self):
50
50
 
51
51
  def interface(self):
52
52
  """Setup user interface"""
53
- self.field1.show()
54
- self.field2.show()
53
+ self.field1.hide()
54
+ self.field2.hide()
55
55
  self.field3.show()
56
56
  self.field4.show()
57
57
  self.snt_label.setText("SNT")
58
58
  self.field1.setAccessibleName("RST Sent")
59
- self.other_label.setText("SentNR")
59
+ self.other_label.setText("Sent Grid")
60
60
  self.field3.setAccessibleName("Sent Grid")
61
61
  self.exch_label.setText("Grid")
62
62
  self.field4.setAccessibleName("Gridsquare")
@@ -69,9 +69,7 @@ def reset_label(self):
69
69
  def set_tab_next(self):
70
70
  """Set TAB Advances"""
71
71
  self.tab_next = {
72
- self.callsign: self.sent,
73
- self.sent: self.receive,
74
- self.receive: self.other_1,
72
+ self.callsign: self.other_1,
75
73
  self.other_1: self.other_2,
76
74
  self.other_2: self.callsign,
77
75
  }
@@ -81,10 +79,8 @@ def set_tab_prev(self):
81
79
  """Set TAB Advances"""
82
80
  self.tab_prev = {
83
81
  self.callsign: self.other_2,
84
- self.sent: self.callsign,
85
- self.receive: self.sent,
86
- self.other_1: self.receive,
87
82
  self.other_2: self.other_1,
83
+ self.other_1: self.callsign,
88
84
  }
89
85
 
90
86
 
@@ -11,10 +11,11 @@
11
11
  # Bands: 160, 80, 40, 20, 15, 10m
12
12
  # Classes: Single Op (QRP/Low/High)
13
13
  # Max power: HP: >100 watts
14
- # LP: 100 watts
15
- # QRP: 5 watts
16
- # Exchange: Member: Name + Member No./"CWA"
17
- # non-Member: Name + (state/province/country)
14
+ # LP: 100 watts
15
+ # QRP: 5 watts
16
+ # Exchange:
17
+ # Member: Name + Member No./"CWA"
18
+ # Non-Member: Name + (state/province/country)
18
19
  # Work stations: Once per band
19
20
  # QSO Points: 1 point per QSO
20
21
  # Multipliers: Each call once
@@ -72,16 +73,16 @@ def init_contest(self):
72
73
 
73
74
  def interface(self):
74
75
  """Setup user interface"""
75
- self.field1.show()
76
- self.field2.show()
76
+ self.field1.hide()
77
+ self.field2.hide()
77
78
  self.field3.show()
78
79
  self.field4.show()
79
80
  self.snt_label.setText("SNT")
80
81
  self.field1.setAccessibleName("RST Sent")
81
82
  self.other_label.setText("Name")
82
83
  self.field3.setAccessibleName("Name")
83
- self.exch_label.setText("ST/DX/#")
84
- self.field4.setAccessibleName("State D X or Number")
84
+ self.exch_label.setText("Number or State")
85
+ self.field4.setAccessibleName("Number or State")
85
86
 
86
87
 
87
88
  def reset_label(self):
@@ -91,9 +92,7 @@ def reset_label(self):
91
92
  def set_tab_next(self):
92
93
  """Set TAB Advances"""
93
94
  self.tab_next = {
94
- self.callsign: self.sent,
95
- self.sent: self.field2.findChild(QtWidgets.QLineEdit),
96
- self.receive: self.other_1,
95
+ self.callsign: self.other_1,
97
96
  self.other_1: self.other_2,
98
97
  self.other_2: self.callsign,
99
98
  }
@@ -103,9 +102,7 @@ def set_tab_prev(self):
103
102
  """Set TAB Advances"""
104
103
  self.tab_prev = {
105
104
  self.callsign: self.other_2,
106
- self.sent: self.callsign,
107
- self.receive: self.sent,
108
- self.other_1: self.receive,
105
+ self.other_1: self.callsign,
109
106
  self.other_2: self.other_1,
110
107
  }
111
108