not1mm 24.10.10__tar.gz → 24.10.13__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 (172) hide show
  1. {not1mm-24.10.10 → not1mm-24.10.13}/PKG-INFO +41 -39
  2. {not1mm-24.10.10 → not1mm-24.10.13}/README.md +40 -38
  3. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/__main__.py +16 -2
  4. not1mm-24.10.13/not1mm/lib/version.py +3 -0
  5. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/cq_ww_cw.py +3 -10
  6. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/cq_ww_rtty.py +125 -16
  7. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/cq_ww_ssb.py +99 -0
  8. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/cwt.py +99 -0
  9. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/k1usn_sst.py +99 -0
  10. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/weekly_rtty.py +105 -0
  11. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm.egg-info/PKG-INFO +41 -39
  12. {not1mm-24.10.10 → not1mm-24.10.13}/pyproject.toml +1 -1
  13. not1mm-24.10.10/not1mm/lib/version.py +0 -3
  14. {not1mm-24.10.10 → not1mm-24.10.13}/LICENSE +0 -0
  15. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/__init__.py +0 -0
  16. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/bandmap.py +0 -0
  17. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/checkwindow.py +0 -0
  18. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
  19. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/MASTER.SCP +0 -0
  20. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/about.ui +0 -0
  21. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  22. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/bandmap.ui +0 -0
  23. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/check.png +0 -0
  24. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/checkwindow.ui +0 -0
  25. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/configuration.ui +0 -0
  26. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/contests.sql +0 -0
  27. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/cty.json +0 -0
  28. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/cwmacros.txt +0 -0
  29. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/donors.html +0 -0
  30. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/editcontact.ui +0 -0
  31. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/editmacro.ui +0 -0
  32. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/greendot.png +0 -0
  33. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/k6gte-not1mm.desktop +0 -0
  34. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/k6gte.not1mm-128.png +0 -0
  35. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/k6gte.not1mm-32.png +0 -0
  36. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/k6gte.not1mm-64.png +0 -0
  37. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/logwindow.ui +0 -0
  38. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/logwindowx.ui +0 -0
  39. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/main.ui +0 -0
  40. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/new_contest.ui +0 -0
  41. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/not1mm.html +0 -0
  42. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/opon.ui +0 -0
  43. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/0.wav +0 -0
  44. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/1.wav +0 -0
  45. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/2.wav +0 -0
  46. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/3.wav +0 -0
  47. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/4.wav +0 -0
  48. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/5.wav +0 -0
  49. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/6.wav +0 -0
  50. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/7.wav +0 -0
  51. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/73.wav +0 -0
  52. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/8.wav +0 -0
  53. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/9.wav +0 -0
  54. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/a.wav +0 -0
  55. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/again.wav +0 -0
  56. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/b.wav +0 -0
  57. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/c.wav +0 -0
  58. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/contest.wav +0 -0
  59. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/cq.wav +0 -0
  60. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/d.wav +0 -0
  61. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/e.wav +0 -0
  62. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/f.wav +0 -0
  63. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/g.wav +0 -0
  64. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/h.wav +0 -0
  65. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/i.wav +0 -0
  66. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/j.wav +0 -0
  67. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/k.wav +0 -0
  68. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/k6gte.wav +0 -0
  69. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/l.wav +0 -0
  70. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/m.wav +0 -0
  71. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/mynumber.wav +0 -0
  72. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/n.wav +0 -0
  73. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/nil.wav +0 -0
  74. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/o.wav +0 -0
  75. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/p.wav +0 -0
  76. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/q.wav +0 -0
  77. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/r.wav +0 -0
  78. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/roger.wav +0 -0
  79. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/s.wav +0 -0
  80. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/space.wav +0 -0
  81. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/t.wav +0 -0
  82. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/thankyou.wav +0 -0
  83. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  84. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/u.wav +0 -0
  85. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/v.wav +0 -0
  86. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/w.wav +0 -0
  87. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/x.wav +0 -0
  88. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/y.wav +0 -0
  89. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/yourcall.wav +0 -0
  90. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/phonetics/z.wav +0 -0
  91. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/pickcontest.ui +0 -0
  92. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/radio_green.png +0 -0
  93. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/radio_grey.png +0 -0
  94. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/radio_red.png +0 -0
  95. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/reddot.png +0 -0
  96. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/rttymacros.txt +0 -0
  97. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/settings.ui +0 -0
  98. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/splash.png +0 -0
  99. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/ssbmacros.txt +0 -0
  100. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/data/vfo.ui +0 -0
  101. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/fsutils.py +0 -0
  102. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/__init__.py +0 -0
  103. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/about.py +0 -0
  104. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/cat_interface.py +0 -0
  105. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/cwinterface.py +0 -0
  106. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/database.py +0 -0
  107. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/edit_contact.py +0 -0
  108. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/edit_macro.py +0 -0
  109. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/edit_opon.py +0 -0
  110. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/edit_station.py +0 -0
  111. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/fldigi_sendstring.py +0 -0
  112. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/fldigi_watcher.py +0 -0
  113. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/ft8_watcher.py +0 -0
  114. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/ham_utility.py +0 -0
  115. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/lookup.py +0 -0
  116. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/multicast.py +0 -0
  117. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/n1mm.py +0 -0
  118. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/new_contest.py +0 -0
  119. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/playsound.py +0 -0
  120. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/plugin_common.py +0 -0
  121. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/select_contest.py +0 -0
  122. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/settings.py +0 -0
  123. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/super_check_partial.py +0 -0
  124. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lib/versiontest.py +0 -0
  125. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/logwindow.py +0 -0
  126. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/lookupservice.py +0 -0
  127. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/10_10_fall_cw.py +0 -0
  128. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/10_10_spring_cw.py +0 -0
  129. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/10_10_summer_phone.py +0 -0
  130. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/10_10_winter_phone.py +0 -0
  131. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/__init__.py +0 -0
  132. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/arrl_10m.py +0 -0
  133. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/arrl_dx_cw.py +0 -0
  134. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  135. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/arrl_field_day.py +0 -0
  136. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  137. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/arrl_ss_cw.py +0 -0
  138. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/arrl_ss_phone.py +0 -0
  139. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/arrl_vhf_jan.py +0 -0
  140. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/arrl_vhf_jun.py +0 -0
  141. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/arrl_vhf_sep.py +0 -0
  142. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/canada_day.py +0 -0
  143. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/cq_160_cw.py +0 -0
  144. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/cq_160_ssb.py +0 -0
  145. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/cq_wpx_cw.py +0 -0
  146. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/cq_wpx_rtty.py +0 -0
  147. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  148. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/general_logging.py +0 -0
  149. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/helvetia.py +0 -0
  150. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
  151. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
  152. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/iaru_hf.py +0 -0
  153. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/icwc_mst.py +0 -0
  154. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/jidx_cw.py +0 -0
  155. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/jidx_ph.py +0 -0
  156. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/naqp_cw.py +0 -0
  157. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/naqp_ssb.py +0 -0
  158. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/phone_weekly_test.py +0 -0
  159. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/ref_cw.py +0 -0
  160. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/stew_perry_topband.py +0 -0
  161. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/plugins/winter_field_day.py +0 -0
  162. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/radio.py +0 -0
  163. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/test.py +0 -0
  164. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/vfo.py +0 -0
  165. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm/voice_keying.py +0 -0
  166. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm.egg-info/SOURCES.txt +0 -0
  167. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm.egg-info/dependency_links.txt +0 -0
  168. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm.egg-info/entry_points.txt +0 -0
  169. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm.egg-info/requires.txt +0 -0
  170. {not1mm-24.10.10 → not1mm-24.10.13}/not1mm.egg-info/top_level.txt +0 -0
  171. {not1mm-24.10.10 → not1mm-24.10.13}/setup.cfg +0 -0
  172. {not1mm-24.10.10 → not1mm-24.10.13}/test/contests.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.10.10
3
+ Version: 24.10.13
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
@@ -118,16 +118,16 @@ Requires-Dist: Levenshtein
118
118
  - [Cabrillo](#cabrillo)
119
119
  - [ADIF](#adif)
120
120
  - [Recalulate Mults](#recalulate-mults)
121
- - [Testing Out ESM Currently only in CQ WW CW](#testing-out-esm-currently-only-in-cq-ww-cw)
122
- - [Run States](#run-states)
123
- - [CQ](#cq)
124
- - [Call Entered send His Call and the Exchange](#call-entered-send-his-call-and-the-exchange)
125
- - [Empty exchange field send AGN till you get it](#empty-exchange-field-send-agn-till-you-get-it)
126
- - [Exchange field filled, send TU QRZ and logs it](#exchange-field-filled-send-tu-qrz-and-logs-it)
127
- - [S\&P States](#sp-states)
128
- - [With his call entered, Send your call](#with-his-call-entered-send-your-call)
129
- - [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
130
- - [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
121
+ - [Testing Out ESM Currently only in CQ WW](#testing-out-esm-currently-only-in-cq-ww)
122
+ - [Run States](#run-states)
123
+ - [CQ](#cq)
124
+ - [Call Entered send His Call and the Exchange](#call-entered-send-his-call-and-the-exchange)
125
+ - [Empty exchange field send AGN till you get it](#empty-exchange-field-send-agn-till-you-get-it)
126
+ - [Exchange field filled, send TU QRZ and logs it](#exchange-field-filled-send-tu-qrz-and-logs-it)
127
+ - [S\&P States](#sp-states)
128
+ - [With his call entered, Send your call](#with-his-call-entered-send-your-call)
129
+ - [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
130
+ - [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
131
131
  - [Contest specific notes](#contest-specific-notes)
132
132
  - [ARRL Sweekstakes](#arrl-sweekstakes)
133
133
  - [The exchange parser](#the-exchange-parser)
@@ -181,7 +181,9 @@ when the program craps the bed. I'm only one guy, so if you see a bug let me kno
181
181
 
182
182
  I've recently added portions of code to watch for WSTJ-X and fldigi QSOs. I've added
183
183
  the Weekly RTTY Test, So RTTY could be tested. Also added FT8/4 and RTTY to ARRL Field
184
- Day and ARRL VHF. Praying that it works. I'll add more details later.
184
+ Day and ARRL VHF. Found works better if you don't use FlDigi for making the QSO at all.
185
+ Rather just using it as a RTTY modem and sending the text for it to send from Not1MM
186
+ using the function keys or ESM.
185
187
 
186
188
  ### Other not so supported contests
187
189
 
@@ -212,23 +214,25 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
212
214
  - ARRL VHF January, June, September
213
215
  - CQ 160 CW, SSB
214
216
  - CQ WPX CW, RTTY, SSB
215
- - CQ World Wide CW, RTTY, SSB
216
- - CWOps CWT
217
+ - .CQ World Wide CW, RTTY, SSB
218
+ - .CWOps CWT
217
219
  - Helvetia
218
220
  - IARU Fieldday R1 CW, SSB
219
221
  - IARU HF
220
222
  - ICWC MST
221
223
  - Japan International DX CW, SSB
222
- - K1USN Slow Speed Test
224
+ - .K1USN Slow Speed Test
223
225
  - NAQP CW, SSB
224
226
  - Phone Weekly Test
225
227
  - RAC Canada Day
226
228
  - Stew Perry Topband
227
- - Weekly RTTY
229
+ - .Weekly RTTY
228
230
  - Winter Field Day
229
231
 
230
232
  ## Recent Changes
231
233
 
234
+ - [24-10-13] Added ESM to Weekly RTTY, K1USN and CWT.
235
+ - [24-10-11] added ESM to CQWW SSB and RTTY.
232
236
  - [24-10-10] Add ESM to CQ WW CW to test it out.
233
237
  - [24-10-8] Fix crash on Tune to spot. Change placeholder text for the CW port for those unable to read documentation.
234
238
  - [24-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
@@ -730,7 +734,7 @@ is this has happened, since the gridsquare will replace the word "Regional".
730
734
  | [TAB] | Move cursor to the right one field. |
731
735
  | [Shift-Tab] | Move cursor left One field. |
732
736
  | [SPACE] | When in the callsign field, will move the input to the first field needed for the exchange. |
733
- | [Enter] | Submits the fields to the log. |
737
+ | [Enter] | Submits the fields to the log. Unless ESM is enabled. |
734
738
  | [F1-F12] | Send (CW/RTTY/Voice) macros. |
735
739
  | [CTRL-S] | Spot Callsign to the cluster. |
736
740
  | [CTRL-M] | Mark Callsign to the bandmap window to work later. |
@@ -839,15 +843,14 @@ After editing a contact and before generating a Cabrillo file. There is a Misc
839
843
  menu option that will recalculate the multipliers incase an edit had caused a
840
844
  change.
841
845
 
842
- ## Testing Out ESM Currently only in CQ WW CW
846
+ ## Testing Out ESM Currently only in CQ WW
843
847
 
844
848
  I caved and started working on ESM or Enter Sends Message. Currently it is only
845
- working in the CQ WW CW. To test it out you can go to `FILE -> Configuration Settings`
846
-
847
- ![Config Screen](https://private-user-images.githubusercontent.com/49108421/375571913-1fbb1da1-5b81-45f8-8b6d-412702add200.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDU2MjUsIm5iZiI6MTcyODYwNTMyNSwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzE5MTMtMWZiYjFkYTEtNWI4MS00NWY4LThiNmQtNDEyNzAyYWRkMjAwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMDg0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU2NDBlZTliMTFlYzc1NjE1MzA4MjE1YTVkMzlhNmIwNzYzYjVlMzM5MDdjNTlkODVlODY1MzBlZWJmZWEzMWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.DITQPUAHkFLk1ezFxvQYLCJVaq8vrUDm_5EbfDLJbsE)
849
+ working in the CQ WW. To test it out you can go to `FILE -> Configuration Settings`
848
850
 
851
+ ![Config Screen](https://github.com/mbridak/not1mm/raw/master/pic/esm_config.png)
849
852
 
850
- Check the mark to Use ESM and tell it which function keys do what. The keys will need
853
+ Check the mark to Enable ESM and tell it which function keys do what. The keys will need
851
854
  to have the same function in both Run and S&P modes. The function keys will highlight
852
855
  green depending on the state of the input fields. The green keys will be sent if you
853
856
  press the Enter key. You should use the Space bar to move to another field.
@@ -855,38 +858,37 @@ press the Enter key. You should use the Space bar to move to another field.
855
858
  The contact will be automatically logged once all the needed info is collected and the
856
859
  QRZ (for Run) or Exchange (for S&P) is sent.
857
860
 
858
- ## Run States
859
-
860
- ### CQ
861
+ ### Run States
861
862
 
862
- ![CQ](https://private-user-images.githubusercontent.com/49108421/375572433-a156588d-83b5-4edd-b9f6-4ab4291c258c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDU2MjUsIm5iZiI6MTcyODYwNTMyNSwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzI0MzMtYTE1NjU4OGQtODNiNS00ZWRkLWI5ZjYtNGFiNDI5MWMyNThjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMDg0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVjYTdjZDhhMmJiZTA5NTdmNDIxNTgxMmY5NmJmNDBiZmZjZTk2MTAyODM4NjYxYWQzY2Q3NGNkN2ZiYzZmNTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.44q-Ns0aWBLBFARF8Oyb2wxF0olZx28eddPyp_p_T3s)
863
+ #### CQ
863
864
 
864
- ### Call Entered send His Call and the Exchange
865
+ ![CQ](https://github.com/mbridak/not1mm/raw/master/pic/esm_cq.png)
865
866
 
866
- ![Call Entered send His Call and the Exchange.](https://private-user-images.githubusercontent.com/49108421/375572785-1d9f6a33-1cd1-4e08-82d5-b11851e279c7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzI3ODUtMWQ5ZjZhMzMtMWNkMS00ZTA4LTgyZDUtYjExODUxZTI3OWM3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEyZmEzOGM4ZmQ4MTNlZmM5ZDA2N2FmNDBkNTYzOTVmYTM3NzFiY2Q4NDE1ZTlkYzhmMjhiNGI4NGJiMmMzY2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.KcEd-CBbY2MHKrApqmXkr06Pcb0kvYyxK8tdQH3doc4)
867
+ #### Call Entered send His Call and the Exchange
867
868
 
868
- ### Empty exchange field send AGN till you get it
869
+ ![Call Entered send His Call and the Exchange.](https://github.com/mbridak/not1mm/raw/master/pic/esm_withcall.png)
869
870
 
870
- ![Empty exchange field send AGN till you get it](https://private-user-images.githubusercontent.com/49108421/375573288-3fa5f231-0648-412a-94d7-06ab38e1334f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzMyODgtM2ZhNWYyMzEtMDY0OC00MTJhLTk0ZDctMDZhYjM4ZTEzMzRmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIxNjA5NWM0MWI2ZmU0ODNmYjY2N2M5YTdjNzQ5ZDdkZWZkZmE3MDI2NjBlNzc4YmNhNTNjYjMzOTI4MjIwMzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.VycMnaYPKW08YmCQmeGpQWToDpNNaEmNZ3LAnEQUifM)
871
+ #### Empty exchange field send AGN till you get it
871
872
 
872
- ### Exchange field filled, send TU QRZ and logs it
873
+ ![Empty exchange field send AGN till you get it](https://github.com/mbridak/not1mm/raw/master/pic/esm_empty_exchange.png)
873
874
 
874
- ![Exchange field filled, send TU QRZ and logs it](https://private-user-images.githubusercontent.com/49108421/375573434-b6ee0617-60ac-4937-82cc-e1b1428899d5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzM0MzQtYjZlZTA2MTctNjBhYy00OTM3LTgyY2MtZTFiMTQyODg5OWQ1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQxNzM4ODY2NWViNzNhZjI2OWRiYzQ0ZTBmMWIxOTRhODRiZDI1ZjQ3OWI0YjY5OGM4OGYxYmRjYWVjYjYzNjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.yCx8NWkE9Ep-NKv2oxEjWWDMraBZsov59GzHspC3jmk)
875
+ #### Exchange field filled, send TU QRZ and logs it
875
876
 
876
- ## S&P States
877
+ ![Exchange field filled, send TU QRZ and logs it](https://github.com/mbridak/not1mm/raw/master/pic/esm_qrz.png)
877
878
 
878
- ### With his call entered, Send your call
879
+ ### S&P States
879
880
 
880
- ![With his call entered, Send your call](https://private-user-images.githubusercontent.com/49108421/375573821-67dd35c7-8563-4ad6-bee6-7f7514e7d3a6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzM4MjEtNjdkZDM1YzctODU2My00YWQ2LWJlZTYtN2Y3NTE0ZTdkM2E2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdkNDRmYmI2MThlYjg2ZjU5NjY3OWY2YTEyMGU2YWQ5YjIyM2NhY2QzODVhY2U3ZGZhMDI3ZDQzMmY1MTU5MWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.p8JisS0D5noIDRUAjwkOyxpzR10MhIYmW-y8h2ngnZo)
881
+ #### With his call entered, Send your call
881
882
 
882
- ### If no exchange entered send AGN
883
+ ![With his call entered, Send your call](https://github.com/mbridak/not1mm/raw/master/pic/esm_sp_call.png)
883
884
 
884
- ![If no exchange entered send AGN](https://private-user-images.githubusercontent.com/49108421/375573957-9753786b-3018-4821-b07a-42bdf50b4468.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzM5NTctOTc1Mzc4NmItMzAxOC00ODIxLWIwN2EtNDJiZGY1MGI0NDY4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY5M2E1MzllOTc3YmEwNDZkOWFlYmEyMmQzNDc0YTUwYThmNzk1ODQ4M2IzMGExNjQyMTdlMzkyYzdmZjgyODkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.We-bPqprJ24HQW7eCjxFKuUxWJwawRZWab74INuSyyA)
885
+ #### If no exchange entered send AGN
885
886
 
886
- ### With exchange entered, send your exchange and log it
887
+ ![If no exchange entered send AGN](https://github.com/mbridak/not1mm/raw/master/pic/esm_sp_agn.png)
887
888
 
888
- ![With exchange entered, send your exchange and log it](https://private-user-images.githubusercontent.com/49108421/375574075-9857287e-ce11-44c8-a7de-417912988f08.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzQwNzUtOTg1NzI4N2UtY2UxMS00NGM4LWE3ZGUtNDE3OTEyOTg4ZjA4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThmNzZiOTRkMzQyOGIxMWUzMjM4ZWVjMzI3ZTkzZjc3OThkZjI5NWYxYTNkYTQ0ZDYyNzJkMTA5ZjQwNDBmMzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.YtD5IoXhSmSUs53ofWJUmuJZqca2Uhe6dYk8JyOHBgM)
889
+ #### With exchange entered, send your exchange and log it
889
890
 
891
+ ![With exchange entered, send your exchange and log it](https://github.com/mbridak/not1mm/raw/master/pic/esm_sp_logit.png)
890
892
 
891
893
  ## Contest specific notes
892
894
 
@@ -87,16 +87,16 @@
87
87
  - [Cabrillo](#cabrillo)
88
88
  - [ADIF](#adif)
89
89
  - [Recalulate Mults](#recalulate-mults)
90
- - [Testing Out ESM Currently only in CQ WW CW](#testing-out-esm-currently-only-in-cq-ww-cw)
91
- - [Run States](#run-states)
92
- - [CQ](#cq)
93
- - [Call Entered send His Call and the Exchange](#call-entered-send-his-call-and-the-exchange)
94
- - [Empty exchange field send AGN till you get it](#empty-exchange-field-send-agn-till-you-get-it)
95
- - [Exchange field filled, send TU QRZ and logs it](#exchange-field-filled-send-tu-qrz-and-logs-it)
96
- - [S\&P States](#sp-states)
97
- - [With his call entered, Send your call](#with-his-call-entered-send-your-call)
98
- - [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
99
- - [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
90
+ - [Testing Out ESM Currently only in CQ WW](#testing-out-esm-currently-only-in-cq-ww)
91
+ - [Run States](#run-states)
92
+ - [CQ](#cq)
93
+ - [Call Entered send His Call and the Exchange](#call-entered-send-his-call-and-the-exchange)
94
+ - [Empty exchange field send AGN till you get it](#empty-exchange-field-send-agn-till-you-get-it)
95
+ - [Exchange field filled, send TU QRZ and logs it](#exchange-field-filled-send-tu-qrz-and-logs-it)
96
+ - [S\&P States](#sp-states)
97
+ - [With his call entered, Send your call](#with-his-call-entered-send-your-call)
98
+ - [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
99
+ - [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
100
100
  - [Contest specific notes](#contest-specific-notes)
101
101
  - [ARRL Sweekstakes](#arrl-sweekstakes)
102
102
  - [The exchange parser](#the-exchange-parser)
@@ -150,7 +150,9 @@ when the program craps the bed. I'm only one guy, so if you see a bug let me kno
150
150
 
151
151
  I've recently added portions of code to watch for WSTJ-X and fldigi QSOs. I've added
152
152
  the Weekly RTTY Test, So RTTY could be tested. Also added FT8/4 and RTTY to ARRL Field
153
- Day and ARRL VHF. Praying that it works. I'll add more details later.
153
+ Day and ARRL VHF. Found works better if you don't use FlDigi for making the QSO at all.
154
+ Rather just using it as a RTTY modem and sending the text for it to send from Not1MM
155
+ using the function keys or ESM.
154
156
 
155
157
  ### Other not so supported contests
156
158
 
@@ -181,23 +183,25 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
181
183
  - ARRL VHF January, June, September
182
184
  - CQ 160 CW, SSB
183
185
  - CQ WPX CW, RTTY, SSB
184
- - CQ World Wide CW, RTTY, SSB
185
- - CWOps CWT
186
+ - .CQ World Wide CW, RTTY, SSB
187
+ - .CWOps CWT
186
188
  - Helvetia
187
189
  - IARU Fieldday R1 CW, SSB
188
190
  - IARU HF
189
191
  - ICWC MST
190
192
  - Japan International DX CW, SSB
191
- - K1USN Slow Speed Test
193
+ - .K1USN Slow Speed Test
192
194
  - NAQP CW, SSB
193
195
  - Phone Weekly Test
194
196
  - RAC Canada Day
195
197
  - Stew Perry Topband
196
- - Weekly RTTY
198
+ - .Weekly RTTY
197
199
  - Winter Field Day
198
200
 
199
201
  ## Recent Changes
200
202
 
203
+ - [24-10-13] Added ESM to Weekly RTTY, K1USN and CWT.
204
+ - [24-10-11] added ESM to CQWW SSB and RTTY.
201
205
  - [24-10-10] Add ESM to CQ WW CW to test it out.
202
206
  - [24-10-8] Fix crash on Tune to spot. Change placeholder text for the CW port for those unable to read documentation.
203
207
  - [24-10-6] Removed 60, 30, 17 and 12M from the default list of bands.
@@ -699,7 +703,7 @@ is this has happened, since the gridsquare will replace the word "Regional".
699
703
  | [TAB] | Move cursor to the right one field. |
700
704
  | [Shift-Tab] | Move cursor left One field. |
701
705
  | [SPACE] | When in the callsign field, will move the input to the first field needed for the exchange. |
702
- | [Enter] | Submits the fields to the log. |
706
+ | [Enter] | Submits the fields to the log. Unless ESM is enabled. |
703
707
  | [F1-F12] | Send (CW/RTTY/Voice) macros. |
704
708
  | [CTRL-S] | Spot Callsign to the cluster. |
705
709
  | [CTRL-M] | Mark Callsign to the bandmap window to work later. |
@@ -808,15 +812,14 @@ After editing a contact and before generating a Cabrillo file. There is a Misc
808
812
  menu option that will recalculate the multipliers incase an edit had caused a
809
813
  change.
810
814
 
811
- ## Testing Out ESM Currently only in CQ WW CW
815
+ ## Testing Out ESM Currently only in CQ WW
812
816
 
813
817
  I caved and started working on ESM or Enter Sends Message. Currently it is only
814
- working in the CQ WW CW. To test it out you can go to `FILE -> Configuration Settings`
815
-
816
- ![Config Screen](https://private-user-images.githubusercontent.com/49108421/375571913-1fbb1da1-5b81-45f8-8b6d-412702add200.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDU2MjUsIm5iZiI6MTcyODYwNTMyNSwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzE5MTMtMWZiYjFkYTEtNWI4MS00NWY4LThiNmQtNDEyNzAyYWRkMjAwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMDg0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU2NDBlZTliMTFlYzc1NjE1MzA4MjE1YTVkMzlhNmIwNzYzYjVlMzM5MDdjNTlkODVlODY1MzBlZWJmZWEzMWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.DITQPUAHkFLk1ezFxvQYLCJVaq8vrUDm_5EbfDLJbsE)
818
+ working in the CQ WW. To test it out you can go to `FILE -> Configuration Settings`
817
819
 
820
+ ![Config Screen](https://github.com/mbridak/not1mm/raw/master/pic/esm_config.png)
818
821
 
819
- Check the mark to Use ESM and tell it which function keys do what. The keys will need
822
+ Check the mark to Enable ESM and tell it which function keys do what. The keys will need
820
823
  to have the same function in both Run and S&P modes. The function keys will highlight
821
824
  green depending on the state of the input fields. The green keys will be sent if you
822
825
  press the Enter key. You should use the Space bar to move to another field.
@@ -824,38 +827,37 @@ press the Enter key. You should use the Space bar to move to another field.
824
827
  The contact will be automatically logged once all the needed info is collected and the
825
828
  QRZ (for Run) or Exchange (for S&P) is sent.
826
829
 
827
- ## Run States
828
-
829
- ### CQ
830
+ ### Run States
830
831
 
831
- ![CQ](https://private-user-images.githubusercontent.com/49108421/375572433-a156588d-83b5-4edd-b9f6-4ab4291c258c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDU2MjUsIm5iZiI6MTcyODYwNTMyNSwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzI0MzMtYTE1NjU4OGQtODNiNS00ZWRkLWI5ZjYtNGFiNDI5MWMyNThjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMDg0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVjYTdjZDhhMmJiZTA5NTdmNDIxNTgxMmY5NmJmNDBiZmZjZTk2MTAyODM4NjYxYWQzY2Q3NGNkN2ZiYzZmNTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.44q-Ns0aWBLBFARF8Oyb2wxF0olZx28eddPyp_p_T3s)
832
+ #### CQ
832
833
 
833
- ### Call Entered send His Call and the Exchange
834
+ ![CQ](https://github.com/mbridak/not1mm/raw/master/pic/esm_cq.png)
834
835
 
835
- ![Call Entered send His Call and the Exchange.](https://private-user-images.githubusercontent.com/49108421/375572785-1d9f6a33-1cd1-4e08-82d5-b11851e279c7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzI3ODUtMWQ5ZjZhMzMtMWNkMS00ZTA4LTgyZDUtYjExODUxZTI3OWM3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEyZmEzOGM4ZmQ4MTNlZmM5ZDA2N2FmNDBkNTYzOTVmYTM3NzFiY2Q4NDE1ZTlkYzhmMjhiNGI4NGJiMmMzY2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.KcEd-CBbY2MHKrApqmXkr06Pcb0kvYyxK8tdQH3doc4)
836
+ #### Call Entered send His Call and the Exchange
836
837
 
837
- ### Empty exchange field send AGN till you get it
838
+ ![Call Entered send His Call and the Exchange.](https://github.com/mbridak/not1mm/raw/master/pic/esm_withcall.png)
838
839
 
839
- ![Empty exchange field send AGN till you get it](https://private-user-images.githubusercontent.com/49108421/375573288-3fa5f231-0648-412a-94d7-06ab38e1334f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzMyODgtM2ZhNWYyMzEtMDY0OC00MTJhLTk0ZDctMDZhYjM4ZTEzMzRmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIxNjA5NWM0MWI2ZmU0ODNmYjY2N2M5YTdjNzQ5ZDdkZWZkZmE3MDI2NjBlNzc4YmNhNTNjYjMzOTI4MjIwMzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.VycMnaYPKW08YmCQmeGpQWToDpNNaEmNZ3LAnEQUifM)
840
+ #### Empty exchange field send AGN till you get it
840
841
 
841
- ### Exchange field filled, send TU QRZ and logs it
842
+ ![Empty exchange field send AGN till you get it](https://github.com/mbridak/not1mm/raw/master/pic/esm_empty_exchange.png)
842
843
 
843
- ![Exchange field filled, send TU QRZ and logs it](https://private-user-images.githubusercontent.com/49108421/375573434-b6ee0617-60ac-4937-82cc-e1b1428899d5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzM0MzQtYjZlZTA2MTctNjBhYy00OTM3LTgyY2MtZTFiMTQyODg5OWQ1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQxNzM4ODY2NWViNzNhZjI2OWRiYzQ0ZTBmMWIxOTRhODRiZDI1ZjQ3OWI0YjY5OGM4OGYxYmRjYWVjYjYzNjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.yCx8NWkE9Ep-NKv2oxEjWWDMraBZsov59GzHspC3jmk)
844
+ #### Exchange field filled, send TU QRZ and logs it
844
845
 
845
- ## S&P States
846
+ ![Exchange field filled, send TU QRZ and logs it](https://github.com/mbridak/not1mm/raw/master/pic/esm_qrz.png)
846
847
 
847
- ### With his call entered, Send your call
848
+ ### S&P States
848
849
 
849
- ![With his call entered, Send your call](https://private-user-images.githubusercontent.com/49108421/375573821-67dd35c7-8563-4ad6-bee6-7f7514e7d3a6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzM4MjEtNjdkZDM1YzctODU2My00YWQ2LWJlZTYtN2Y3NTE0ZTdkM2E2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdkNDRmYmI2MThlYjg2ZjU5NjY3OWY2YTEyMGU2YWQ5YjIyM2NhY2QzODVhY2U3ZGZhMDI3ZDQzMmY1MTU5MWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.p8JisS0D5noIDRUAjwkOyxpzR10MhIYmW-y8h2ngnZo)
850
+ #### With his call entered, Send your call
850
851
 
851
- ### If no exchange entered send AGN
852
+ ![With his call entered, Send your call](https://github.com/mbridak/not1mm/raw/master/pic/esm_sp_call.png)
852
853
 
853
- ![If no exchange entered send AGN](https://private-user-images.githubusercontent.com/49108421/375573957-9753786b-3018-4821-b07a-42bdf50b4468.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzM5NTctOTc1Mzc4NmItMzAxOC00ODIxLWIwN2EtNDJiZGY1MGI0NDY4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY5M2E1MzllOTc3YmEwNDZkOWFlYmEyMmQzNDc0YTUwYThmNzk1ODQ4M2IzMGExNjQyMTdlMzkyYzdmZjgyODkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.We-bPqprJ24HQW7eCjxFKuUxWJwawRZWab74INuSyyA)
854
+ #### If no exchange entered send AGN
854
855
 
855
- ### With exchange entered, send your exchange and log it
856
+ ![If no exchange entered send AGN](https://github.com/mbridak/not1mm/raw/master/pic/esm_sp_agn.png)
856
857
 
857
- ![With exchange entered, send your exchange and log it](https://private-user-images.githubusercontent.com/49108421/375574075-9857287e-ce11-44c8-a7de-417912988f08.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg2MDYyNjAsIm5iZiI6MTcyODYwNTk2MCwicGF0aCI6Ii80OTEwODQyMS8zNzU1NzQwNzUtOTg1NzI4N2UtY2UxMS00NGM4LWE3ZGUtNDE3OTEyOTg4ZjA4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDEwMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMDExVDAwMTkyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThmNzZiOTRkMzQyOGIxMWUzMjM4ZWVjMzI3ZTkzZjc3OThkZjI5NWYxYTNkYTQ0ZDYyNzJkMTA5ZjQwNDBmMzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.YtD5IoXhSmSUs53ofWJUmuJZqca2Uhe6dYk8JyOHBgM)
858
+ #### With exchange entered, send your exchange and log it
858
859
 
860
+ ![With exchange entered, send your exchange and log it](https://github.com/mbridak/not1mm/raw/master/pic/esm_sp_logit.png)
859
861
 
860
862
  ## Contest specific notes
861
863
 
@@ -199,6 +199,13 @@ class MainWindow(QtWidgets.QMainWindow):
199
199
  self.setCorner(Qt.Corner.BottomLeftCorner, Qt.DockWidgetArea.LeftDockWidgetArea)
200
200
  uic.loadUi(fsutils.APP_DATA_PATH / "main.ui", self)
201
201
  QApplication.instance().focusObjectChanged.connect(self.on_focus_changed)
202
+ self.inputs_dict = {
203
+ self.callsign: "callsign",
204
+ self.sent: "sent",
205
+ self.receive: "receive",
206
+ self.other_1: "other_1",
207
+ self.other_2: "other_2",
208
+ }
202
209
  self.cw_entry.hide()
203
210
  self.leftdot.hide()
204
211
  self.rightdot.hide()
@@ -2107,6 +2114,10 @@ class MainWindow(QtWidgets.QMainWindow):
2107
2114
  float(self.radio_state.get("vfoa", 0.0)) / 1000, 2
2108
2115
  )
2109
2116
  self.contact["Mode"] = self.radio_state.get("mode", "")
2117
+ self.contact["Freq"] = round(float(self.radio_state.get("vfoa", 0.0)) / 1000, 2)
2118
+ self.contact["QSXFreq"] = round(
2119
+ float(self.radio_state.get("vfoa", 0.0)) / 1000, 2
2120
+ )
2110
2121
  self.contact["ContestName"] = self.contest.cabrillo_name
2111
2122
  self.contact["ContestNR"] = self.pref.get("contest", "0")
2112
2123
  self.contact["StationPrefix"] = self.station.get("Call", "")
@@ -2465,7 +2476,7 @@ class MainWindow(QtWidgets.QMainWindow):
2465
2476
  app.processEvents()
2466
2477
  self.rig_control.ptt_off()
2467
2478
 
2468
- def process_function_key(self, function_key) -> None:
2479
+ def process_function_key(self, function_key, rttysendrx=True) -> None:
2469
2480
  """
2470
2481
  Called when a function key is clicked.
2471
2482
 
@@ -2495,7 +2506,10 @@ class MainWindow(QtWidgets.QMainWindow):
2495
2506
  "DIGI-U",
2496
2507
  "DIGI-L",
2497
2508
  ]:
2498
- self.fldigi_util.send_string(self.process_macro(function_key.toolTip()))
2509
+ self.fldigi_util.send_string(
2510
+ self.process_macro(function_key.toolTip()), rxafter=rttysendrx
2511
+ )
2512
+ return
2499
2513
  if self.cw:
2500
2514
  if self.pref.get("cwtype") == 3 and self.rig_control is not None:
2501
2515
  self.rig_control.sendcw(self.process_macro(function_key.toolTip()))
@@ -0,0 +1,3 @@
1
+ """It's the version"""
2
+
3
+ __version__ = "24.10.13"
@@ -403,15 +403,8 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
403
403
  # self.other_1
404
404
  # self.other_2
405
405
 
406
- inputs = {
407
- self.callsign: "callsign",
408
- self.sent: "sent",
409
- self.receive: "receive",
410
- self.other_1: "other_1",
411
- self.other_2: "other_2",
412
- }
413
406
  if new_focused_widget is not None:
414
- self.current_widget = inputs.get(new_focused_widget)
407
+ self.current_widget = self.inputs_dict.get(new_focused_widget)
415
408
 
416
409
  # print(f"checking esm {self.current_widget=} {with_enter=} {self.pref.get("run_state")=}")
417
410
 
@@ -444,7 +437,7 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
444
437
  buttons_to_send.append(self.esm_dict["HISCALL"])
445
438
  buttons_to_send.append(self.esm_dict["EXCH"])
446
439
 
447
- if self.current_widget == "other_2":
440
+ elif self.current_widget == "other_2":
448
441
  if self.other_2.text() == "":
449
442
  self.make_button_green(self.esm_dict["AGN"])
450
443
  buttons_to_send.append(self.esm_dict["AGN"])
@@ -469,7 +462,7 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
469
462
  self.make_button_green(self.esm_dict["MYCALL"])
470
463
  buttons_to_send.append(self.esm_dict["MYCALL"])
471
464
 
472
- if self.current_widget == "other_2":
465
+ elif self.current_widget == "other_2":
473
466
  if self.other_2.text() == "":
474
467
  self.make_button_green(self.esm_dict["AGN"])
475
468
  buttons_to_send.append(self.esm_dict["AGN"])
@@ -146,7 +146,7 @@ def set_contact_vars(self):
146
146
  self.contact["ZN"] = self.other_1.text()
147
147
  self.contact["Exchange1"] = self.other_2.text()
148
148
  self.contact["SentNr"] = self.contest_settings.get("SentExchange", 0)
149
-
149
+
150
150
 
151
151
  def predupe(self):
152
152
  """called after callsign entered"""
@@ -195,7 +195,11 @@ def show_mults(self):
195
195
  res3_query = f"select count(DISTINCT(Exchange1 || ':' || Band)) as spc_count from dxlog where ContestNR = {self.database.current_contest};"
196
196
  result3 = self.database.exec_sql(res3_query)
197
197
  if result1 and result2 and result3:
198
- return int(result1.get("zb_count", 0)) + int(result2.get("cb_count", 0)) + int(result3.get("spc_count", 0))
198
+ return (
199
+ int(result1.get("zb_count", 0))
200
+ + int(result2.get("cb_count", 0))
201
+ + int(result3.get("spc_count", 0))
202
+ )
199
203
  return 0
200
204
 
201
205
 
@@ -366,21 +370,21 @@ def cabrillo(self):
366
370
  if themode == "LSB" or themode == "USB":
367
371
  themode = "PH"
368
372
  if themode.strip() in (
369
- "RTTY",
370
- "RTTY-R",
371
- "LSB-D",
372
- "USB-D",
373
- "AM-D",
374
- "FM-D",
375
- "DIGI-U",
376
- "DIGI-L",
377
- "RTTYR",
378
- "PKTLSB",
379
- "PKTUSB",
380
- ):
373
+ "RTTY",
374
+ "RTTY-R",
375
+ "LSB-D",
376
+ "USB-D",
377
+ "AM-D",
378
+ "FM-D",
379
+ "DIGI-U",
380
+ "DIGI-L",
381
+ "RTTYR",
382
+ "PKTLSB",
383
+ "PKTUSB",
384
+ ):
381
385
  themode = "RY"
382
- exchange1 = contact.get('Exchange1', '')
383
- if exchange1 == '':
386
+ exchange1 = contact.get("Exchange1", "")
387
+ if exchange1 == "":
384
388
  exchange1 = "DX"
385
389
  frequency = str(int(contact.get("Freq", "0"))).rjust(5)
386
390
 
@@ -491,3 +495,108 @@ def ft8_handler(the_packet: dict):
491
495
  ALTEREGO.other_1.setText(str(the_packet.get("CQZ", "ERR")))
492
496
  ALTEREGO.other_2.setText(f'{the_packet.get("STATE", "")}'.strip())
493
497
  ALTEREGO.save_contact()
498
+
499
+
500
+ def process_esm(self, new_focused_widget=None, with_enter=False):
501
+ """ESM State Machine"""
502
+
503
+ # self.pref["run_state"]
504
+
505
+ # -----===== Assigned F-Keys =====-----
506
+ # self.esm_dict["CQ"]
507
+ # self.esm_dict["EXCH"]
508
+ # self.esm_dict["QRZ"]
509
+ # self.esm_dict["AGN"]
510
+ # self.esm_dict["HISCALL"]
511
+ # self.esm_dict["MYCALL"]
512
+ # self.esm_dict["QSOB4"]
513
+
514
+ # ----==== text fields ====----
515
+ # self.callsign
516
+ # self.sent
517
+ # self.receive
518
+ # self.other_1
519
+ # self.other_2
520
+
521
+ if new_focused_widget is not None:
522
+ self.current_widget = self.inputs_dict.get(new_focused_widget)
523
+
524
+ # print(f"checking esm {self.current_widget=} {with_enter=} {self.pref.get("run_state")=}")
525
+
526
+ for a_button in [
527
+ self.F1,
528
+ self.F2,
529
+ self.F3,
530
+ self.F4,
531
+ self.F5,
532
+ self.F6,
533
+ self.F7,
534
+ self.F8,
535
+ self.F9,
536
+ self.F10,
537
+ self.F11,
538
+ self.F12,
539
+ ]:
540
+ self.restore_button_color(a_button)
541
+
542
+ buttons_to_send = []
543
+
544
+ if self.pref.get("run_state"):
545
+ if self.current_widget == "callsign":
546
+ if len(self.callsign.text()) < 3:
547
+ self.make_button_green(self.esm_dict["CQ"])
548
+ buttons_to_send.append(self.esm_dict["CQ"])
549
+ elif len(self.callsign.text()) > 2 and self.callsign.text().isalnum():
550
+ self.make_button_green(self.esm_dict["HISCALL"])
551
+ self.make_button_green(self.esm_dict["EXCH"])
552
+ buttons_to_send.append(self.esm_dict["HISCALL"])
553
+ buttons_to_send.append(self.esm_dict["EXCH"])
554
+
555
+ elif self.current_widget in ["other_1", "other_2"]:
556
+ if self.other_2.text() == "" or self.other_1.text() == "":
557
+ self.make_button_green(self.esm_dict["AGN"])
558
+ buttons_to_send.append(self.esm_dict["AGN"])
559
+ elif self.other_1.text().isnumeric() and self.other_2.text().isalpha():
560
+ self.make_button_green(self.esm_dict["QRZ"])
561
+ buttons_to_send.append(self.esm_dict["QRZ"])
562
+ buttons_to_send.append("LOGIT")
563
+ else:
564
+ self.make_button_green(self.esm_dict["AGN"])
565
+ buttons_to_send.append(self.esm_dict["AGN"])
566
+
567
+ if with_enter is True and bool(len(buttons_to_send)):
568
+ sendstring = ""
569
+ for button in buttons_to_send:
570
+ if button:
571
+ if button == "LOGIT":
572
+ self.save_contact()
573
+ continue
574
+ sendstring = f"{sendstring}{self.process_macro(button.toolTip())} "
575
+ self.fldigi_util.send_string(sendstring)
576
+ else:
577
+ if self.current_widget == "callsign":
578
+ if len(self.callsign.text()) > 2 and self.callsign.text().isalnum():
579
+ self.make_button_green(self.esm_dict["MYCALL"])
580
+ buttons_to_send.append(self.esm_dict["MYCALL"])
581
+
582
+ elif self.current_widget in ["other_1", "other_2"]:
583
+ if self.other_2.text() == "" or self.other_1.text() == "":
584
+ self.make_button_green(self.esm_dict["AGN"])
585
+ buttons_to_send.append(self.esm_dict["AGN"])
586
+ elif self.other_1.text().isnumeric() and self.other_2.text().isalpha():
587
+ self.make_button_green(self.esm_dict["EXCH"])
588
+ buttons_to_send.append(self.esm_dict["EXCH"])
589
+ buttons_to_send.append("LOGIT")
590
+ else:
591
+ self.make_button_green(self.esm_dict["AGN"])
592
+ buttons_to_send.append(self.esm_dict["AGN"])
593
+
594
+ if with_enter is True and bool(len(buttons_to_send)):
595
+ sendstring = ""
596
+ for button in buttons_to_send:
597
+ if button:
598
+ if button == "LOGIT":
599
+ self.save_contact()
600
+ continue
601
+ sendstring = f"{sendstring}{self.process_macro(button.toolTip())} "
602
+ self.fldigi_util.send_string(sendstring)