not1mm 25.4.16__tar.gz → 25.4.18__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 (192) hide show
  1. {not1mm-25.4.16 → not1mm-25.4.18}/PKG-INFO +14 -1
  2. {not1mm-25.4.16 → not1mm-25.4.18}/README.md +13 -0
  3. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/__main__.py +47 -0
  4. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/configuration.ui +15 -1
  5. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/cat_interface.py +18 -0
  6. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/settings.py +5 -0
  7. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/version.py +1 -1
  8. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/radio.py +5 -0
  9. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm.egg-info/PKG-INFO +14 -1
  10. {not1mm-25.4.16 → not1mm-25.4.18}/pyproject.toml +1 -1
  11. {not1mm-25.4.16 → not1mm-25.4.18}/LICENSE +0 -0
  12. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/__init__.py +0 -0
  13. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/bandmap.py +0 -0
  14. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/checkwindow.py +0 -0
  15. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
  16. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/MASTER.SCP +0 -0
  17. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/about.ui +0 -0
  18. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  19. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/bandmap.ui +0 -0
  20. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/check.png +0 -0
  21. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/checkwindow.ui +0 -0
  22. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/contests.sql +0 -0
  23. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/cty.json +0 -0
  24. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/cwmacros.txt +0 -0
  25. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/donors.html +0 -0
  26. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/editcontact.ui +0 -0
  27. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/editmacro.ui +0 -0
  28. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/greendot.png +0 -0
  29. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/k6gte-not1mm.desktop +0 -0
  30. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/k6gte.not1mm-128.png +0 -0
  31. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/k6gte.not1mm-32.png +0 -0
  32. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/k6gte.not1mm-64.png +0 -0
  33. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/logwindow.ui +0 -0
  34. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/logwindowx.ui +0 -0
  35. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/main.ui +0 -0
  36. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/new_contest.ui +0 -0
  37. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/not1mm.html +0 -0
  38. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/opon.ui +0 -0
  39. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/0.wav +0 -0
  40. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/1.wav +0 -0
  41. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/2.wav +0 -0
  42. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/3.wav +0 -0
  43. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/4.wav +0 -0
  44. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/5.wav +0 -0
  45. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/6.wav +0 -0
  46. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/7.wav +0 -0
  47. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/73.wav +0 -0
  48. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/8.wav +0 -0
  49. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/9.wav +0 -0
  50. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/a.wav +0 -0
  51. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/again.wav +0 -0
  52. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/b.wav +0 -0
  53. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/c.wav +0 -0
  54. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/contest.wav +0 -0
  55. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/cq.wav +0 -0
  56. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/cq2.wav +0 -0
  57. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/d.wav +0 -0
  58. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/e.wav +0 -0
  59. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/f.wav +0 -0
  60. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/g.wav +0 -0
  61. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/h.wav +0 -0
  62. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/i.wav +0 -0
  63. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/j.wav +0 -0
  64. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/k.wav +0 -0
  65. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/k6gte.wav +0 -0
  66. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/l.wav +0 -0
  67. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/m.wav +0 -0
  68. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/mynumber.wav +0 -0
  69. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/n.wav +0 -0
  70. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/nil.wav +0 -0
  71. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/o.wav +0 -0
  72. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/p.wav +0 -0
  73. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/q.wav +0 -0
  74. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/r.wav +0 -0
  75. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/roger.wav +0 -0
  76. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/s.wav +0 -0
  77. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/space.wav +0 -0
  78. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/t.wav +0 -0
  79. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/thankyou.wav +0 -0
  80. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  81. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/u.wav +0 -0
  82. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/v.wav +0 -0
  83. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/w.wav +0 -0
  84. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/x.wav +0 -0
  85. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/y.wav +0 -0
  86. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/yourcall.wav +0 -0
  87. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/phonetics/z.wav +0 -0
  88. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/pickcontest.ui +0 -0
  89. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/radio_green.png +0 -0
  90. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/radio_grey.png +0 -0
  91. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/radio_red.png +0 -0
  92. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/ratewindow.ui +0 -0
  93. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/reddot.png +0 -0
  94. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/rttymacros.txt +0 -0
  95. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/settings.ui +0 -0
  96. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/splash.png +0 -0
  97. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/ssbmacros.txt +0 -0
  98. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/statistics.ui +0 -0
  99. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/data/vfo.ui +0 -0
  100. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/fsutils.py +0 -0
  101. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/__init__.py +0 -0
  102. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/about.py +0 -0
  103. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/cwinterface.py +0 -0
  104. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/database.py +0 -0
  105. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/edit_contact.py +0 -0
  106. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/edit_macro.py +0 -0
  107. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/edit_opon.py +0 -0
  108. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/edit_station.py +0 -0
  109. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/fldigi_sendstring.py +0 -0
  110. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/ft8_watcher.py +0 -0
  111. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/ham_utility.py +0 -0
  112. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/lookup.py +0 -0
  113. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/multicast.py +0 -0
  114. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/n1mm.py +0 -0
  115. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/new_contest.py +0 -0
  116. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/plugin_common.py +0 -0
  117. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/select_contest.py +0 -0
  118. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/super_check_partial.py +0 -0
  119. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lib/versiontest.py +0 -0
  120. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/logwindow.py +0 -0
  121. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/lookupservice.py +0 -0
  122. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/10_10_fall_cw.py +0 -0
  123. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/10_10_spring_cw.py +0 -0
  124. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/10_10_summer_phone.py +0 -0
  125. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/10_10_winter_phone.py +0 -0
  126. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/__init__.py +0 -0
  127. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/ari_40_80.py +0 -0
  128. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/arrl_10m.py +0 -0
  129. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/arrl_160m.py +0 -0
  130. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/arrl_dx_cw.py +0 -0
  131. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  132. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/arrl_field_day.py +0 -0
  133. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  134. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/arrl_ss_cw.py +0 -0
  135. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/arrl_ss_phone.py +0 -0
  136. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/arrl_vhf_jan.py +0 -0
  137. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/arrl_vhf_jun.py +0 -0
  138. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/arrl_vhf_sep.py +0 -0
  139. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/canada_day.py +0 -0
  140. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/cq_160_cw.py +0 -0
  141. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/cq_160_ssb.py +0 -0
  142. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/cq_wpx_cw.py +0 -0
  143. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/cq_wpx_rtty.py +0 -0
  144. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  145. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/cq_ww_cw.py +0 -0
  146. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/cq_ww_rtty.py +0 -0
  147. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/cq_ww_ssb.py +0 -0
  148. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/cwt.py +0 -0
  149. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/darc_vhf.py +0 -0
  150. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/darc_xmas.py +0 -0
  151. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/ea_majistad_cw.py +0 -0
  152. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/ea_majistad_ssb.py +0 -0
  153. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/ea_rtty.py +0 -0
  154. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/es_open.py +0 -0
  155. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/general_logging.py +0 -0
  156. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/helvetia.py +0 -0
  157. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
  158. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
  159. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/iaru_hf.py +0 -0
  160. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/icwc_mst.py +0 -0
  161. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/jidx_cw.py +0 -0
  162. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/jidx_ph.py +0 -0
  163. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/k1usn_sst.py +0 -0
  164. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/labre_rs_digi.py +0 -0
  165. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/lz-dx.py +0 -0
  166. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/naqp_cw.py +0 -0
  167. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/naqp_rtty.py +0 -0
  168. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/naqp_ssb.py +0 -0
  169. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/phone_weekly_test.py +0 -0
  170. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/raem.py +0 -0
  171. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/randomgram.py +0 -0
  172. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/ref_cw.py +0 -0
  173. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/ref_ssb.py +0 -0
  174. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/sac_cw.py +0 -0
  175. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/sac_ssb.py +0 -0
  176. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/spdx.py +0 -0
  177. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/stew_perry_topband.py +0 -0
  178. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/ukeidx.py +0 -0
  179. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/weekly_rtty.py +0 -0
  180. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/plugins/winter_field_day.py +0 -0
  181. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/ratewindow.py +0 -0
  182. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/rtc_service.py +0 -0
  183. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/statistics.py +0 -0
  184. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/test.py +0 -0
  185. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/vfo.py +0 -0
  186. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm/voice_keying.py +0 -0
  187. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm.egg-info/SOURCES.txt +0 -0
  188. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm.egg-info/dependency_links.txt +0 -0
  189. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm.egg-info/entry_points.txt +0 -0
  190. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm.egg-info/requires.txt +0 -0
  191. {not1mm-25.4.16 → not1mm-25.4.18}/not1mm.egg-info/top_level.txt +0 -0
  192. {not1mm-25.4.16 → not1mm-25.4.18}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: not1mm
3
- Version: 25.4.16
3
+ Version: 25.4.18
4
4
  Summary: NOT1MM Logger
5
5
  Author-email: Michael Bridak <michael.bridak@gmail.com>
6
6
  License: GPL-3.0-or-later
@@ -111,6 +111,8 @@ Dynamic: license-file
111
111
  - [Editing macro keys](#editing-macro-keys)
112
112
  - [Macro substitutions](#macro-substitutions)
113
113
  - [Macro use with voice](#macro-use-with-voice)
114
+ - [{VOICE1} - {VOICE10}](#voice1---voice10)
115
+ - [Voice macro wave files](#voice-macro-wave-files)
114
116
  - [cty.dat and QRZ lookups for distance and bearing](#ctydat-and-qrz-lookups-for-distance-and-bearing)
115
117
  - [Other uses for the call field](#other-uses-for-the-call-field)
116
118
  - [The Windows](#the-windows)
@@ -254,6 +256,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
254
256
 
255
257
  ## Recent Changes
256
258
 
259
+ - [25-4-18] Option to clear input fields when QSY in S&P mode.
260
+ - [25-4-17] Testing sending radio voice memory. {VOICE1}, {VOICE2} etc.
257
261
  - [25-4-16] Fix serial number not updating when selecing call from checkpartial or bandmap.
258
262
  - [25-4-15] Corrected dupe_type 5 check for contest specific function. Fixed wrong ES Open plugin name. Fixed some problems with the specific_contest_check_dupe datetime namespace. And other stuff.
259
263
  - [25-4-14] Add ES Open HF Chanmpionship.
@@ -643,6 +647,7 @@ On the Options TAB you can:
643
647
  - Select to use Enter Sends Message ([ESM](#esm)), and configure it's function keys.
644
648
  - Select whether or not to use [Call History](#call-history-files) info.
645
649
  - Select whether or not to send XML score info to online scoreboards.
650
+ - Select whether or not to clear input fields when you QSY while in S&P mode.
646
651
 
647
652
  ![Options Screen](https://github.com/mbridak/not1mm/blob/master/pic/configuration_options.png?raw=true)
648
653
 
@@ -735,9 +740,17 @@ You can include a limited set of substitution instructions.
735
740
  | {SANDP} | Change to S&P mode. |
736
741
  | {WIPE} | Wipe input fields. |
737
742
  | '#' | Sends serial number. |
743
+ | {VOICE1} - {VOICE10} | Uses rigctld to send voice macros stored in the radio. |
738
744
 
739
745
  ### Macro use with voice
740
746
 
747
+ #### {VOICE1} - {VOICE10}
748
+
749
+ If you use rigctld and your radio supports it you can use the macros {VOICE1},
750
+ {VOICE2} etc to send the voice messages stored in your radio.
751
+
752
+ #### Voice macro wave files
753
+
741
754
  The macros when used with voice, will also accept filenames of WAV files to
742
755
  play, excluding the file extension. The filename must be enclosed by brackets.
743
756
  For example `[CQ]` will play `cq.wav`, `[again]` will play `again.wav`. The wav
@@ -79,6 +79,8 @@
79
79
  - [Editing macro keys](#editing-macro-keys)
80
80
  - [Macro substitutions](#macro-substitutions)
81
81
  - [Macro use with voice](#macro-use-with-voice)
82
+ - [{VOICE1} - {VOICE10}](#voice1---voice10)
83
+ - [Voice macro wave files](#voice-macro-wave-files)
82
84
  - [cty.dat and QRZ lookups for distance and bearing](#ctydat-and-qrz-lookups-for-distance-and-bearing)
83
85
  - [Other uses for the call field](#other-uses-for-the-call-field)
84
86
  - [The Windows](#the-windows)
@@ -222,6 +224,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
222
224
 
223
225
  ## Recent Changes
224
226
 
227
+ - [25-4-18] Option to clear input fields when QSY in S&P mode.
228
+ - [25-4-17] Testing sending radio voice memory. {VOICE1}, {VOICE2} etc.
225
229
  - [25-4-16] Fix serial number not updating when selecing call from checkpartial or bandmap.
226
230
  - [25-4-15] Corrected dupe_type 5 check for contest specific function. Fixed wrong ES Open plugin name. Fixed some problems with the specific_contest_check_dupe datetime namespace. And other stuff.
227
231
  - [25-4-14] Add ES Open HF Chanmpionship.
@@ -611,6 +615,7 @@ On the Options TAB you can:
611
615
  - Select to use Enter Sends Message ([ESM](#esm)), and configure it's function keys.
612
616
  - Select whether or not to use [Call History](#call-history-files) info.
613
617
  - Select whether or not to send XML score info to online scoreboards.
618
+ - Select whether or not to clear input fields when you QSY while in S&P mode.
614
619
 
615
620
  ![Options Screen](https://github.com/mbridak/not1mm/blob/master/pic/configuration_options.png?raw=true)
616
621
 
@@ -703,9 +708,17 @@ You can include a limited set of substitution instructions.
703
708
  | {SANDP} | Change to S&P mode. |
704
709
  | {WIPE} | Wipe input fields. |
705
710
  | '#' | Sends serial number. |
711
+ | {VOICE1} - {VOICE10} | Uses rigctld to send voice macros stored in the radio. |
706
712
 
707
713
  ### Macro use with voice
708
714
 
715
+ #### {VOICE1} - {VOICE10}
716
+
717
+ If you use rigctld and your radio supports it you can use the macros {VOICE1},
718
+ {VOICE2} etc to send the voice messages stored in your radio.
719
+
720
+ #### Voice macro wave files
721
+
709
722
  The macros when used with voice, will also accept filenames of WAV files to
710
723
  play, excluding the file extension. The filename must be enclosed by brackets.
711
724
  For example `[CQ]` will play `cq.wav`, `[again]` will play `again.wav`. The wav
@@ -170,6 +170,7 @@ class MainWindow(QtWidgets.QMainWindow):
170
170
  use_esm = False
171
171
  use_call_history = False
172
172
  esm_dict = {}
173
+ sandpfreq = 0
173
174
 
174
175
  radio_thread = QThread()
175
176
  voice_thread = QThread()
@@ -2908,6 +2909,46 @@ class MainWindow(QtWidgets.QMainWindow):
2908
2909
  if "{WIPE}" in macro:
2909
2910
  macro = macro.replace("{WIPE}", "")
2910
2911
  self.clearinputs()
2912
+ if "{VOICE1}" in macro:
2913
+ macro = macro.replace("{VOICE1}", "")
2914
+ if self.rig_control:
2915
+ self.rig_control.sendvoicememory(memoryspot=1)
2916
+ if "{VOICE2}" in macro:
2917
+ macro = macro.replace("{VOICE2}", "")
2918
+ if self.rig_control:
2919
+ self.rig_control.sendvoicememory(memoryspot=2)
2920
+ if "{VOICE3}" in macro:
2921
+ macro = macro.replace("{VOICE3}", "")
2922
+ if self.rig_control:
2923
+ self.rig_control.sendvoicememory(memoryspot=3)
2924
+ if "{VOICE4}" in macro:
2925
+ macro = macro.replace("{VOICE4}", "")
2926
+ if self.rig_control:
2927
+ self.rig_control.sendvoicememory(memoryspot=4)
2928
+ if "{VOICE5}" in macro:
2929
+ macro = macro.replace("{VOICE5}", "")
2930
+ if self.rig_control:
2931
+ self.rig_control.sendvoicememory(memoryspot=5)
2932
+ if "{VOICE6}" in macro:
2933
+ macro = macro.replace("{VOICE6}", "")
2934
+ if self.rig_control:
2935
+ self.rig_control.sendvoicememory(memoryspot=6)
2936
+ if "{VOICE7}" in macro:
2937
+ macro = macro.replace("{VOICE7}", "")
2938
+ if self.rig_control:
2939
+ self.rig_control.sendvoicememory(memoryspot=7)
2940
+ if "{VOICE8}" in macro:
2941
+ macro = macro.replace("{VOICE8}", "")
2942
+ if self.rig_control:
2943
+ self.rig_control.sendvoicememory(memoryspot=8)
2944
+ if "{VOICE9}" in macro:
2945
+ macro = macro.replace("{VOICE9}", "")
2946
+ if self.rig_control:
2947
+ self.rig_control.sendvoicememory(memoryspot=9)
2948
+ if "{VOICE10}" in macro:
2949
+ macro = macro.replace("{VOICE10}", "")
2950
+ if self.rig_control:
2951
+ self.rig_control.sendvoicememory(memoryspot=10)
2911
2952
  return macro
2912
2953
 
2913
2954
  def ptt_on(self) -> None:
@@ -3458,6 +3499,9 @@ class MainWindow(QtWidgets.QMainWindow):
3458
3499
  """
3459
3500
  if self.auto_cq is True:
3460
3501
  self.stop_cw()
3502
+ if self.pref.get("sandpqsy") is True and self.radioButton_sp.isChecked():
3503
+ self.sandpfreq = int(self.radio_state.get("vfoa", 0))
3504
+ print(f"{self.sandpfreq=}")
3461
3505
  text = self.callsign.text()
3462
3506
  text = text.upper()
3463
3507
  position = self.callsign.cursorPosition()
@@ -3868,6 +3912,9 @@ class MainWindow(QtWidgets.QMainWindow):
3868
3912
  if self.radio_state.get("vfoa") != vfo:
3869
3913
  info_dirty = True
3870
3914
  self.radio_state["vfoa"] = vfo
3915
+ if self.pref.get("sandpqsy") is True and self.radioButton_sp.isChecked():
3916
+ if max(int(vfo), self.sandpfreq) - min(int(vfo), self.sandpfreq) > 50:
3917
+ self.clearinputs()
3871
3918
  band = getband(str(vfo))
3872
3919
  self.radio_state["band"] = band
3873
3920
  self.contact["Band"] = get_logged_band(str(vfo))
@@ -2307,6 +2307,20 @@
2307
2307
  </item>
2308
2308
  </layout>
2309
2309
  </item>
2310
+ <item>
2311
+ <widget class="Line" name="line_2">
2312
+ <property name="orientation">
2313
+ <enum>Qt::Horizontal</enum>
2314
+ </property>
2315
+ </widget>
2316
+ </item>
2317
+ <item>
2318
+ <widget class="QCheckBox" name="qsy_on_change">
2319
+ <property name="text">
2320
+ <string>S&amp;&amp;P QSY on Freq Change</string>
2321
+ </property>
2322
+ </widget>
2323
+ </item>
2310
2324
  <item>
2311
2325
  <spacer name="verticalSpacer_8">
2312
2326
  <property name="orientation">
@@ -2441,7 +2455,7 @@
2441
2455
  </property>
2442
2456
  </designerdata>
2443
2457
  <buttongroups>
2444
- <buttongroup name="buttonGroup_2"/>
2445
2458
  <buttongroup name="buttonGroup"/>
2459
+ <buttongroup name="buttonGroup_2"/>
2446
2460
  </buttongroups>
2447
2461
  </ui>
@@ -156,6 +156,24 @@ class CAT:
156
156
  self.rigctrlsocket.settimeout(0.5)
157
157
  return dump
158
158
 
159
+ def sendvoicememory(self, memoryspot=1):
160
+ """..."""
161
+ if self.interface == "rigctld":
162
+ return self.__sendvoicememory_rigctld(memoryspot)
163
+
164
+ def __sendvoicememory_rigctld(self, memoryspot=1):
165
+ """..."""
166
+ try:
167
+ self.online = True
168
+ self.rigctrlsocket.send(bytes(f"+\send_voice_mem {memoryspot}\n", "utf-8"))
169
+ _ = self.__get_serial_string()
170
+ return
171
+ except socket.error as exception:
172
+ self.online = False
173
+ logger.debug("%s", f"{exception}")
174
+ self.rigctrlsocket = None
175
+ return
176
+
159
177
  def sendcw(self, texttosend):
160
178
  """..."""
161
179
  logger.debug(f"{texttosend=} {self.interface=}")
@@ -58,6 +58,8 @@ class Settings(QtWidgets.QDialog):
58
58
  bool(self.preference.get("use_call_history", False))
59
59
  )
60
60
 
61
+ self.qsy_on_change.setChecked(bool(self.preference.get("sandpqsy", False)))
62
+
61
63
  self.use_esm.setChecked(bool(self.preference.get("use_esm", False)))
62
64
 
63
65
  value = self.preference.get("esm_agn", "DISABLED")
@@ -229,6 +231,9 @@ class Settings(QtWidgets.QDialog):
229
231
  self.auto_cq_delay.setText(str(self.preference.get("auto_cq_interval", "15")))
230
232
 
231
233
  self.preference["use_call_history"] = self.use_call_history.isChecked()
234
+
235
+ self.preference["sandpqsy"] = self.qsy_on_change.isChecked()
236
+
232
237
  self.preference["use_esm"] = self.use_esm.isChecked()
233
238
  self.preference["esm_cq"] = self.esm_cq.currentText()
234
239
  self.preference["esm_agn"] = self.esm_agn.currentText()
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "25.4.16"
3
+ __version__ = "25.4.18"
@@ -131,6 +131,11 @@ class Radio(QObject):
131
131
  if the_mode in cwmodes:
132
132
  self.last_cw_mode = the_mode
133
133
 
134
+ def sendvoicememory(self, memoryspot=1):
135
+ """..."""
136
+ if self.cat:
137
+ self.cat.sendvoicememory(memoryspot)
138
+
134
139
  def sendcw(self, texttosend):
135
140
  """..."""
136
141
  logger.debug(f"Send CW: {texttosend}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: not1mm
3
- Version: 25.4.16
3
+ Version: 25.4.18
4
4
  Summary: NOT1MM Logger
5
5
  Author-email: Michael Bridak <michael.bridak@gmail.com>
6
6
  License: GPL-3.0-or-later
@@ -111,6 +111,8 @@ Dynamic: license-file
111
111
  - [Editing macro keys](#editing-macro-keys)
112
112
  - [Macro substitutions](#macro-substitutions)
113
113
  - [Macro use with voice](#macro-use-with-voice)
114
+ - [{VOICE1} - {VOICE10}](#voice1---voice10)
115
+ - [Voice macro wave files](#voice-macro-wave-files)
114
116
  - [cty.dat and QRZ lookups for distance and bearing](#ctydat-and-qrz-lookups-for-distance-and-bearing)
115
117
  - [Other uses for the call field](#other-uses-for-the-call-field)
116
118
  - [The Windows](#the-windows)
@@ -254,6 +256,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
254
256
 
255
257
  ## Recent Changes
256
258
 
259
+ - [25-4-18] Option to clear input fields when QSY in S&P mode.
260
+ - [25-4-17] Testing sending radio voice memory. {VOICE1}, {VOICE2} etc.
257
261
  - [25-4-16] Fix serial number not updating when selecing call from checkpartial or bandmap.
258
262
  - [25-4-15] Corrected dupe_type 5 check for contest specific function. Fixed wrong ES Open plugin name. Fixed some problems with the specific_contest_check_dupe datetime namespace. And other stuff.
259
263
  - [25-4-14] Add ES Open HF Chanmpionship.
@@ -643,6 +647,7 @@ On the Options TAB you can:
643
647
  - Select to use Enter Sends Message ([ESM](#esm)), and configure it's function keys.
644
648
  - Select whether or not to use [Call History](#call-history-files) info.
645
649
  - Select whether or not to send XML score info to online scoreboards.
650
+ - Select whether or not to clear input fields when you QSY while in S&P mode.
646
651
 
647
652
  ![Options Screen](https://github.com/mbridak/not1mm/blob/master/pic/configuration_options.png?raw=true)
648
653
 
@@ -735,9 +740,17 @@ You can include a limited set of substitution instructions.
735
740
  | {SANDP} | Change to S&P mode. |
736
741
  | {WIPE} | Wipe input fields. |
737
742
  | '#' | Sends serial number. |
743
+ | {VOICE1} - {VOICE10} | Uses rigctld to send voice macros stored in the radio. |
738
744
 
739
745
  ### Macro use with voice
740
746
 
747
+ #### {VOICE1} - {VOICE10}
748
+
749
+ If you use rigctld and your radio supports it you can use the macros {VOICE1},
750
+ {VOICE2} etc to send the voice messages stored in your radio.
751
+
752
+ #### Voice macro wave files
753
+
741
754
  The macros when used with voice, will also accept filenames of WAV files to
742
755
  play, excluding the file extension. The filename must be enclosed by brackets.
743
756
  For example `[CQ]` will play `cq.wav`, `[again]` will play `again.wav`. The wav
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "not1mm"
7
- version = "25.4.16"
7
+ version = "25.4.18"
8
8
  description = "NOT1MM Logger"
9
9
  license = { text = "GPL-3.0-or-later" }
10
10
  readme = "README.md"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes