not1mm 24.11.2__tar.gz → 24.11.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. {not1mm-24.11.2 → not1mm-24.11.3.1}/PKG-INFO +28 -5
  2. {not1mm-24.11.2 → not1mm-24.11.3.1}/README.md +27 -4
  3. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/__main__.py +12 -3
  4. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/new_contest.ui +5 -0
  5. not1mm-24.11.3.1/not1mm/lib/version.py +3 -0
  6. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/10_10_fall_cw.py +1 -1
  7. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/10_10_spring_cw.py +1 -1
  8. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/10_10_summer_phone.py +1 -1
  9. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/10_10_winter_phone.py +1 -1
  10. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/arrl_10m.py +1 -1
  11. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/arrl_dx_cw.py +1 -1
  12. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/arrl_dx_ssb.py +1 -1
  13. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/arrl_field_day.py +1 -1
  14. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/arrl_ss_cw.py +1 -1
  15. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/arrl_ss_phone.py +1 -1
  16. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/arrl_vhf_jan.py +1 -1
  17. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/arrl_vhf_jun.py +1 -1
  18. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/arrl_vhf_sep.py +1 -1
  19. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/canada_day.py +1 -1
  20. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/cq_160_cw.py +1 -1
  21. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/cq_160_ssb.py +1 -1
  22. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/cq_wpx_cw.py +1 -1
  23. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/cq_wpx_rtty.py +1 -1
  24. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/cq_wpx_ssb.py +1 -1
  25. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/cq_ww_rtty.py +1 -1
  26. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/cq_ww_ssb.py +1 -1
  27. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/cwt.py +16 -9
  28. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/helvetia.py +102 -1
  29. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/iaru_fieldday_r1_cw.py +1 -1
  30. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/iaru_fieldday_r1_ssb.py +1 -1
  31. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/iaru_hf.py +1 -1
  32. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/icwc_mst.py +1 -1
  33. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/jidx_cw.py +1 -1
  34. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/jidx_ph.py +1 -1
  35. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/k1usn_sst.py +13 -1
  36. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/naqp_cw.py +13 -4
  37. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/naqp_rtty.py +13 -6
  38. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/naqp_ssb.py +13 -4
  39. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/phone_weekly_test.py +1 -1
  40. not1mm-24.11.3.1/not1mm/plugins/raem.py +592 -0
  41. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/ref_cw.py +1 -1
  42. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/ref_ssb.py +1 -1
  43. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/stew_perry_topband.py +1 -1
  44. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/weekly_rtty.py +1 -1
  45. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/winter_field_day.py +13 -1
  46. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm.egg-info/PKG-INFO +28 -5
  47. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm.egg-info/SOURCES.txt +1 -0
  48. {not1mm-24.11.2 → not1mm-24.11.3.1}/pyproject.toml +1 -1
  49. not1mm-24.11.2/not1mm/lib/version.py +0 -3
  50. {not1mm-24.11.2 → not1mm-24.11.3.1}/LICENSE +0 -0
  51. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/__init__.py +0 -0
  52. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/bandmap.py +0 -0
  53. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/checkwindow.py +0 -0
  54. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
  55. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/MASTER.SCP +0 -0
  56. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/about.ui +0 -0
  57. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  58. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/bandmap.ui +0 -0
  59. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/check.png +0 -0
  60. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/checkwindow.ui +0 -0
  61. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/configuration.ui +0 -0
  62. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/contests.sql +0 -0
  63. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/cty.json +0 -0
  64. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/cwmacros.txt +0 -0
  65. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/donors.html +0 -0
  66. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/editcontact.ui +0 -0
  67. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/editmacro.ui +0 -0
  68. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/greendot.png +0 -0
  69. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/k6gte-not1mm.desktop +0 -0
  70. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/k6gte.not1mm-128.png +0 -0
  71. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/k6gte.not1mm-32.png +0 -0
  72. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/k6gte.not1mm-64.png +0 -0
  73. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/logwindow.ui +0 -0
  74. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/logwindowx.ui +0 -0
  75. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/main.ui +0 -0
  76. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/not1mm.html +0 -0
  77. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/opon.ui +0 -0
  78. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/0.wav +0 -0
  79. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/1.wav +0 -0
  80. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/2.wav +0 -0
  81. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/3.wav +0 -0
  82. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/4.wav +0 -0
  83. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/5.wav +0 -0
  84. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/6.wav +0 -0
  85. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/7.wav +0 -0
  86. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/73.wav +0 -0
  87. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/8.wav +0 -0
  88. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/9.wav +0 -0
  89. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/a.wav +0 -0
  90. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/again.wav +0 -0
  91. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/b.wav +0 -0
  92. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/c.wav +0 -0
  93. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/contest.wav +0 -0
  94. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/cq.wav +0 -0
  95. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/cq2.wav +0 -0
  96. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/d.wav +0 -0
  97. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/e.wav +0 -0
  98. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/f.wav +0 -0
  99. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/g.wav +0 -0
  100. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/h.wav +0 -0
  101. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/i.wav +0 -0
  102. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/j.wav +0 -0
  103. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/k.wav +0 -0
  104. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/k6gte.wav +0 -0
  105. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/l.wav +0 -0
  106. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/m.wav +0 -0
  107. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/mynumber.wav +0 -0
  108. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/n.wav +0 -0
  109. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/nil.wav +0 -0
  110. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/o.wav +0 -0
  111. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/p.wav +0 -0
  112. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/q.wav +0 -0
  113. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/r.wav +0 -0
  114. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/roger.wav +0 -0
  115. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/s.wav +0 -0
  116. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/space.wav +0 -0
  117. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/t.wav +0 -0
  118. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/thankyou.wav +0 -0
  119. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  120. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/u.wav +0 -0
  121. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/v.wav +0 -0
  122. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/w.wav +0 -0
  123. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/x.wav +0 -0
  124. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/y.wav +0 -0
  125. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/yourcall.wav +0 -0
  126. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/phonetics/z.wav +0 -0
  127. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/pickcontest.ui +0 -0
  128. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/radio_green.png +0 -0
  129. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/radio_grey.png +0 -0
  130. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/radio_red.png +0 -0
  131. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/reddot.png +0 -0
  132. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/rttymacros.txt +0 -0
  133. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/settings.ui +0 -0
  134. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/splash.png +0 -0
  135. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/ssbmacros.txt +0 -0
  136. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/data/vfo.ui +0 -0
  137. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/fsutils.py +0 -0
  138. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/__init__.py +0 -0
  139. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/about.py +0 -0
  140. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/cat_interface.py +0 -0
  141. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/cwinterface.py +0 -0
  142. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/database.py +0 -0
  143. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/edit_contact.py +0 -0
  144. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/edit_macro.py +0 -0
  145. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/edit_opon.py +0 -0
  146. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/edit_station.py +0 -0
  147. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/fldigi_sendstring.py +0 -0
  148. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/fldigi_watcher.py +0 -0
  149. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/ft8_watcher.py +0 -0
  150. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/ham_utility.py +0 -0
  151. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/lookup.py +0 -0
  152. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/multicast.py +0 -0
  153. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/n1mm.py +0 -0
  154. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/new_contest.py +0 -0
  155. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/playsound.py +0 -0
  156. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/plugin_common.py +0 -0
  157. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/select_contest.py +0 -0
  158. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/settings.py +0 -0
  159. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/super_check_partial.py +0 -0
  160. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lib/versiontest.py +0 -0
  161. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/logwindow.py +0 -0
  162. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/lookupservice.py +0 -0
  163. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/__init__.py +0 -0
  164. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  165. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/cq_ww_cw.py +0 -0
  166. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/plugins/general_logging.py +0 -0
  167. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/radio.py +0 -0
  168. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/test.py +0 -0
  169. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/vfo.py +0 -0
  170. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm/voice_keying.py +0 -0
  171. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm.egg-info/dependency_links.txt +0 -0
  172. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm.egg-info/entry_points.txt +0 -0
  173. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm.egg-info/requires.txt +0 -0
  174. {not1mm-24.11.2 → not1mm-24.11.3.1}/not1mm.egg-info/top_level.txt +0 -0
  175. {not1mm-24.11.2 → not1mm-24.11.3.1}/setup.cfg +0 -0
  176. {not1mm-24.11.2 → not1mm-24.11.3.1}/test/contests.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.11.2
3
+ Version: 24.11.3.1
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
@@ -100,6 +100,7 @@ Requires-Dist: Levenshtein
100
100
  - [Cluster](#cluster)
101
101
  - [N1MM Packets](#n1mm-packets)
102
102
  - [Bands](#bands)
103
+ - [Options](#options)
103
104
  - [Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts](#logging-wsjt-x-ft8ft4etc-and-fldigi-rtty-contacts)
104
105
  - [Sending CW](#sending-cw)
105
106
  - [Editing macro keys](#editing-macro-keys)
@@ -118,7 +119,7 @@ Requires-Dist: Levenshtein
118
119
  - [Cabrillo](#cabrillo)
119
120
  - [ADIF](#adif)
120
121
  - [Recalulate Mults](#recalulate-mults)
121
- - [Testing Out ESM Currently only in CQ WW](#testing-out-esm-currently-only-in-cq-ww)
122
+ - [ESM](#esm)
122
123
  - [Run States](#run-states)
123
124
  - [CQ](#cq)
124
125
  - [Call Entered send His Call and the Exchange](#call-entered-send-his-call-and-the-exchange)
@@ -128,10 +129,12 @@ Requires-Dist: Levenshtein
128
129
  - [With his call entered, Send your call](#with-his-call-entered-send-your-call)
129
130
  - [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
130
131
  - [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
132
+ - [Call History Files](#call-history-files)
131
133
  - [Contest specific notes](#contest-specific-notes)
132
134
  - [ARRL Sweekstakes](#arrl-sweekstakes)
133
135
  - [The exchange parser](#the-exchange-parser)
134
136
  - [The exchange](#the-exchange)
137
+ - [RAEM](#raem)
135
138
 
136
139
  ## What and why is Not1MM
137
140
 
@@ -181,7 +184,7 @@ when the program craps the bed. I'm only one guy, so if you see a bug let me kno
181
184
 
182
185
  I've recently added portions of code to watch for WSTJ-X and fldigi QSOs. I've added
183
186
  the Weekly RTTY Test, So RTTY could be tested. Also added FT8/4 and RTTY to ARRL Field
184
- Day and ARRL VHF. Found works better if you don't use FlDigi for making the QSO at all.
187
+ Day and ARRL VHF. Found it works better if you don't use FlDigi for making the QSO at all.
185
188
  Rather just using it as a RTTY modem and sending the text for it to send from Not1MM
186
189
  using the function keys or ESM.
187
190
 
@@ -216,7 +219,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
216
219
  - **CQ WPX CW, RTTY, SSB**
217
220
  - **CQ World Wide CW, RTTY, SSB**
218
221
  - **CWOps CWT**
219
- - Helvetia
222
+ - **Helvetia**
220
223
  - IARU Fieldday R1 CW, SSB
221
224
  - IARU HF
222
225
  - ICWC MST
@@ -224,6 +227,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
224
227
  - **K1USN Slow Speed Test**
225
228
  - **NAQP CW, RTTY, SSB**
226
229
  - Phone Weekly Test
230
+ - **RAEM**
227
231
  - **RAC Canada Day**
228
232
  - **REF CW, SSB**
229
233
  - Stew Perry Topband
@@ -232,6 +236,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
232
236
 
233
237
  ## Recent Changes (Polishing the Turd)
234
238
 
239
+ - [24-11-3-1] Fixed CWT ESM, Add Call History to CWT, Helvetia, WFD, NAQP, K1USN. Add ESM Helvetia.
240
+ - [24-11-3] Added RAEM contest
235
241
  - [24-11-2] Add beginning of call history files. Add command buttons.
236
242
 
237
243
  See [CHANGELOG.md](CHANGELOG.md) for prior changes.
@@ -607,6 +613,13 @@ appear. Those without will not.
607
613
 
608
614
  ![Bands Configuration Screen](https://github.com/mbridak/not1mm/raw/master/pic/configure_bands.png)
609
615
 
616
+ ### Options
617
+
618
+ On the Options TAB you can select to use Enter Sends Message (ESM), configure its function keys.
619
+ Select whether or not to use Call History info.
620
+
621
+ ![Bands Options Screen](https://github.com/mbridak/not1mm/blob/master/pic/configuration_options.png?raw=true)
622
+
610
623
  ## Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts
611
624
 
612
625
  **Digital modes only working for:**
@@ -733,6 +746,7 @@ is this has happened, since the gridsquare will replace the word "Regional".
733
746
  | [CTRL-M] | Mark Callsign to the bandmap window to work later. |
734
747
  | [CTRL-G] | Tune to a spot matching partial text in the callsign entry field (CAT Required). |
735
748
  | [CTRL-SHIFT-K] | Open CW text input field. |
749
+ | [CTRL-=] | Log the contact without sending the ESM macros.|
736
750
 
737
751
  ### The Log Window
738
752
 
@@ -836,7 +850,7 @@ After editing a contact and before generating a Cabrillo file. There is a Misc
836
850
  menu option that will recalculate the multipliers incase an edit had caused a
837
851
  change.
838
852
 
839
- ## Testing Out ESM Currently only in CQ WW
853
+ ## ESM
840
854
 
841
855
  I caved and started working on ESM or Enter Sends Message. To test it out you can
842
856
  go to `FILE -> Configuration Settings`
@@ -883,6 +897,10 @@ QRZ (for Run) or Exchange (for S&P) is sent.
883
897
 
884
898
  ![With exchange entered, send your exchange and log it](https://github.com/mbridak/not1mm/raw/master/pic/esm_sp_logit.png)
885
899
 
900
+ ## Call History Files
901
+
902
+ I've started work on using 'call history files'.
903
+
886
904
  ## Contest specific notes
887
905
 
888
906
  I found it might be beneficial to have a section devoted to wierd quirky things
@@ -925,3 +943,8 @@ In the `Sent Exchange` field of the New Contest dialog put in the Precidence,
925
943
  Call, Check and Section. Example: `A K6GTE 17 ORG`.
926
944
 
927
945
  For the Run Exchange macro I'd put `{HISCALL} {SENTNR} {EXCH}`.
946
+
947
+ ### RAEM
948
+
949
+ In the New/Edit Contest dialog, in the exchange field put just your Lat and Lon.
950
+ for me 33N117W. And in the exchange macro put `# {EXCH}`.
@@ -69,6 +69,7 @@
69
69
  - [Cluster](#cluster)
70
70
  - [N1MM Packets](#n1mm-packets)
71
71
  - [Bands](#bands)
72
+ - [Options](#options)
72
73
  - [Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts](#logging-wsjt-x-ft8ft4etc-and-fldigi-rtty-contacts)
73
74
  - [Sending CW](#sending-cw)
74
75
  - [Editing macro keys](#editing-macro-keys)
@@ -87,7 +88,7 @@
87
88
  - [Cabrillo](#cabrillo)
88
89
  - [ADIF](#adif)
89
90
  - [Recalulate Mults](#recalulate-mults)
90
- - [Testing Out ESM Currently only in CQ WW](#testing-out-esm-currently-only-in-cq-ww)
91
+ - [ESM](#esm)
91
92
  - [Run States](#run-states)
92
93
  - [CQ](#cq)
93
94
  - [Call Entered send His Call and the Exchange](#call-entered-send-his-call-and-the-exchange)
@@ -97,10 +98,12 @@
97
98
  - [With his call entered, Send your call](#with-his-call-entered-send-your-call)
98
99
  - [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
99
100
  - [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
101
+ - [Call History Files](#call-history-files)
100
102
  - [Contest specific notes](#contest-specific-notes)
101
103
  - [ARRL Sweekstakes](#arrl-sweekstakes)
102
104
  - [The exchange parser](#the-exchange-parser)
103
105
  - [The exchange](#the-exchange)
106
+ - [RAEM](#raem)
104
107
 
105
108
  ## What and why is Not1MM
106
109
 
@@ -150,7 +153,7 @@ when the program craps the bed. I'm only one guy, so if you see a bug let me kno
150
153
 
151
154
  I've recently added portions of code to watch for WSTJ-X and fldigi QSOs. I've added
152
155
  the Weekly RTTY Test, So RTTY could be tested. Also added FT8/4 and RTTY to ARRL Field
153
- Day and ARRL VHF. Found works better if you don't use FlDigi for making the QSO at all.
156
+ Day and ARRL VHF. Found it works better if you don't use FlDigi for making the QSO at all.
154
157
  Rather just using it as a RTTY modem and sending the text for it to send from Not1MM
155
158
  using the function keys or ESM.
156
159
 
@@ -185,7 +188,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
185
188
  - **CQ WPX CW, RTTY, SSB**
186
189
  - **CQ World Wide CW, RTTY, SSB**
187
190
  - **CWOps CWT**
188
- - Helvetia
191
+ - **Helvetia**
189
192
  - IARU Fieldday R1 CW, SSB
190
193
  - IARU HF
191
194
  - ICWC MST
@@ -193,6 +196,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
193
196
  - **K1USN Slow Speed Test**
194
197
  - **NAQP CW, RTTY, SSB**
195
198
  - Phone Weekly Test
199
+ - **RAEM**
196
200
  - **RAC Canada Day**
197
201
  - **REF CW, SSB**
198
202
  - Stew Perry Topband
@@ -201,6 +205,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
201
205
 
202
206
  ## Recent Changes (Polishing the Turd)
203
207
 
208
+ - [24-11-3-1] Fixed CWT ESM, Add Call History to CWT, Helvetia, WFD, NAQP, K1USN. Add ESM Helvetia.
209
+ - [24-11-3] Added RAEM contest
204
210
  - [24-11-2] Add beginning of call history files. Add command buttons.
205
211
 
206
212
  See [CHANGELOG.md](CHANGELOG.md) for prior changes.
@@ -576,6 +582,13 @@ appear. Those without will not.
576
582
 
577
583
  ![Bands Configuration Screen](https://github.com/mbridak/not1mm/raw/master/pic/configure_bands.png)
578
584
 
585
+ ### Options
586
+
587
+ On the Options TAB you can select to use Enter Sends Message (ESM), configure its function keys.
588
+ Select whether or not to use Call History info.
589
+
590
+ ![Bands Options Screen](https://github.com/mbridak/not1mm/blob/master/pic/configuration_options.png?raw=true)
591
+
579
592
  ## Logging WSJT-X FT8/FT4/ETC and FLDIGI RTTY contacts
580
593
 
581
594
  **Digital modes only working for:**
@@ -702,6 +715,7 @@ is this has happened, since the gridsquare will replace the word "Regional".
702
715
  | [CTRL-M] | Mark Callsign to the bandmap window to work later. |
703
716
  | [CTRL-G] | Tune to a spot matching partial text in the callsign entry field (CAT Required). |
704
717
  | [CTRL-SHIFT-K] | Open CW text input field. |
718
+ | [CTRL-=] | Log the contact without sending the ESM macros.|
705
719
 
706
720
  ### The Log Window
707
721
 
@@ -805,7 +819,7 @@ After editing a contact and before generating a Cabrillo file. There is a Misc
805
819
  menu option that will recalculate the multipliers incase an edit had caused a
806
820
  change.
807
821
 
808
- ## Testing Out ESM Currently only in CQ WW
822
+ ## ESM
809
823
 
810
824
  I caved and started working on ESM or Enter Sends Message. To test it out you can
811
825
  go to `FILE -> Configuration Settings`
@@ -852,6 +866,10 @@ QRZ (for Run) or Exchange (for S&P) is sent.
852
866
 
853
867
  ![With exchange entered, send your exchange and log it](https://github.com/mbridak/not1mm/raw/master/pic/esm_sp_logit.png)
854
868
 
869
+ ## Call History Files
870
+
871
+ I've started work on using 'call history files'.
872
+
855
873
  ## Contest specific notes
856
874
 
857
875
  I found it might be beneficial to have a section devoted to wierd quirky things
@@ -894,3 +912,8 @@ In the `Sent Exchange` field of the New Contest dialog put in the Precidence,
894
912
  Call, Check and Section. Example: `A K6GTE 17 ORG`.
895
913
 
896
914
  For the Run Exchange macro I'd put `{HISCALL} {SENTNR} {EXCH}`.
915
+
916
+ ### RAEM
917
+
918
+ In the New/Edit Contest dialog, in the exchange field put just your Lat and Lon.
919
+ for me 33N117W. And in the exchange macro put `# {EXCH}`.
@@ -737,12 +737,16 @@ class MainWindow(QtWidgets.QMainWindow):
737
737
  group = {}
738
738
  fields = line.strip().split(",")
739
739
  # ['4U1WB','MDC','DC','89','']
740
+ number_of_fields = len(fields)
740
741
  count = 0
741
742
  try:
742
743
  for item in item_names:
743
744
  if item == "":
744
745
  continue
745
- group[item] = fields[count]
746
+ if count < number_of_fields:
747
+ group[item] = fields[count]
748
+ else:
749
+ group[item] = ""
746
750
  count += 1
747
751
  group_list.append(group)
748
752
  # database.add_callhistory_item(group)
@@ -1736,13 +1740,14 @@ class MainWindow(QtWidgets.QMainWindow):
1736
1740
  "[Shift-Tab]\tMove cursor left One field.\n"
1737
1741
  "[SPACE]\tWhen in the callsign field, will move the input to the\n"
1738
1742
  "\tfirst field needed for the exchange.\n"
1739
- "[Enter]\tSubmits the fields to the log.\n"
1743
+ "[Enter]\tSubmits the fields to the log. Unless ESM is enabled.\n"
1740
1744
  "[F1-F12]\tSend (CW or Voice) macros.\n"
1741
1745
  "[CTRL-G]\tTune to a spot matching partial text in the callsign\n"
1742
1746
  "\tentry field (CAT Required).\n"
1743
1747
  "[CTRL-M]\tMark Callsign to the bandmap window to work later."
1744
1748
  "[CTRL-S]\tSpot Callsign to the cluster.\n"
1745
1749
  "[CTRL-SHIFT-K] Open CW text input field.\n"
1750
+ "[CTRL-=]\tLog the contact without sending the ESM macros.\n"
1746
1751
  )
1747
1752
 
1748
1753
  def filepicker(self, action: str) -> str:
@@ -2284,6 +2289,7 @@ class MainWindow(QtWidgets.QMainWindow):
2284
2289
  self.dupe_indicator.hide()
2285
2290
  self.contact = self.database.empty_contact.copy()
2286
2291
  self.heading_distance.setText("")
2292
+ self.history_info.setText("")
2287
2293
  self.dx_entity.setText("")
2288
2294
 
2289
2295
  if self.contest:
@@ -2294,7 +2300,10 @@ class MainWindow(QtWidgets.QMainWindow):
2294
2300
  score = self.contest.calc_score(self)
2295
2301
  self.score.setText(str(score))
2296
2302
  self.contest.reset_label(self)
2297
- if self.contest.name != "ICWC Medium Speed Test":
2303
+ if (
2304
+ self.contest.name != "ICWC Medium Speed Test"
2305
+ and self.contest.name != "RAEM"
2306
+ ):
2298
2307
  if self.current_mode in ("CW", "RTTY"):
2299
2308
  self.sent.setText("599")
2300
2309
  self.receive.setText("599")
@@ -367,6 +367,11 @@
367
367
  <string>PHONE WEEKLY TEST</string>
368
368
  </property>
369
369
  </item>
370
+ <item>
371
+ <property name="text">
372
+ <string>RAEM</string>
373
+ </property>
374
+ </item>
370
375
  <item>
371
376
  <property name="text">
372
377
  <string>REF CW</string>
@@ -0,0 +1,3 @@
1
+ """It's the version"""
2
+
3
+ __version__ = "24.11.3.1"
@@ -194,7 +194,7 @@ def cabrillo(self, file_encoding):
194
194
  logger.debug("%s", filename)
195
195
  log = self.database.fetch_all_contacts_asc()
196
196
  try:
197
- with open(filename, "w", encoding="utf-8") as file_descriptor:
197
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
198
198
  output_cabrillo_line(
199
199
  "START-OF-LOG: 3.0",
200
200
  "\r\n",
@@ -193,7 +193,7 @@ def cabrillo(self, file_encoding):
193
193
  logger.debug("%s", filename)
194
194
  log = self.database.fetch_all_contacts_asc()
195
195
  try:
196
- with open(filename, "w", encoding="utf-8") as file_descriptor:
196
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
197
197
  output_cabrillo_line(
198
198
  "START-OF-LOG: 3.0",
199
199
  "\r\n",
@@ -195,7 +195,7 @@ def cabrillo(self, file_encoding):
195
195
  logger.debug("%s", filename)
196
196
  log = self.database.fetch_all_contacts_asc()
197
197
  try:
198
- with open(filename, "w", encoding="utf-8") as file_descriptor:
198
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
199
199
  output_cabrillo_line(
200
200
  "START-OF-LOG: 3.0",
201
201
  "\r\n",
@@ -195,7 +195,7 @@ def cabrillo(self, file_encoding):
195
195
  logger.debug("%s", filename)
196
196
  log = self.database.fetch_all_contacts_asc()
197
197
  try:
198
- with open(filename, "w", encoding="utf-8") as file_descriptor:
198
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
199
199
  output_cabrillo_line(
200
200
  "START-OF-LOG: 3.0",
201
201
  "\r\n",
@@ -277,7 +277,7 @@ def cabrillo(self, file_encoding):
277
277
  logger.debug("%s", filename)
278
278
  log = self.database.fetch_all_contacts_asc()
279
279
  try:
280
- with open(filename, "w", encoding="utf-8") as file_descriptor:
280
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
281
281
  output_cabrillo_line(
282
282
  "START-OF-LOG: 3.0",
283
283
  "\r\n",
@@ -219,7 +219,7 @@ def cabrillo(self, file_encoding):
219
219
  logger.debug("%s", filename)
220
220
  log = self.database.fetch_all_contacts_asc()
221
221
  try:
222
- with open(filename, "w", encoding="utf-8") as file_descriptor:
222
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
223
223
  output_cabrillo_line(
224
224
  "START-OF-LOG: 3.0",
225
225
  "\r\n",
@@ -219,7 +219,7 @@ def cabrillo(self, file_encoding):
219
219
  logger.debug("%s", filename)
220
220
  log = self.database.fetch_all_contacts_asc()
221
221
  try:
222
- with open(filename, "w", encoding="utf-8") as file_descriptor:
222
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
223
223
  output_cabrillo_line(
224
224
  "START-OF-LOG: 3.0",
225
225
  "\r\n",
@@ -173,7 +173,7 @@ def cabrillo(self, file_encoding):
173
173
  logger.debug("%s", filename)
174
174
  log = self.database.fetch_all_contacts_asc()
175
175
  try:
176
- with open(filename, "w", encoding="utf-8") as file_descriptor:
176
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
177
177
  output_cabrillo_line(
178
178
  "START-OF-LOG: 3.0",
179
179
  "\r\n",
@@ -216,7 +216,7 @@ def cabrillo(self, file_encoding):
216
216
  logger.debug("%s", filename)
217
217
  log = self.database.fetch_all_contacts_asc()
218
218
  try:
219
- with open(filename, "w", encoding="utf-8") as file_descriptor:
219
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
220
220
  output_cabrillo_line(
221
221
  "START-OF-LOG: 3.0",
222
222
  "\r\n",
@@ -206,7 +206,7 @@ def cabrillo(self, file_encoding):
206
206
  logger.debug("%s", filename)
207
207
  log = self.database.fetch_all_contacts_asc()
208
208
  try:
209
- with open(filename, "w", encoding="utf-8") as file_descriptor:
209
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
210
210
  output_cabrillo_line(
211
211
  "START-OF-LOG: 3.0",
212
212
  "\r\n",
@@ -256,7 +256,7 @@ def cabrillo(self, file_encoding):
256
256
  logger.debug("%s", filename)
257
257
  log = self.database.fetch_all_contacts_asc()
258
258
  try:
259
- with open(filename, "w", encoding="utf-8") as file_descriptor:
259
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
260
260
  output_cabrillo_line(
261
261
  "START-OF-LOG: 3.0",
262
262
  "\r\n",
@@ -224,7 +224,7 @@ def cabrillo(self, file_encoding):
224
224
  logger.debug("%s", filename)
225
225
  log = self.database.fetch_all_contacts_asc()
226
226
  try:
227
- with open(filename, "w", encoding="utf-8") as file_descriptor:
227
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
228
228
  output_cabrillo_line(
229
229
  "START-OF-LOG: 3.0",
230
230
  "\r\n",
@@ -224,7 +224,7 @@ def cabrillo(self, file_encoding):
224
224
  logger.debug("%s", filename)
225
225
  log = self.database.fetch_all_contacts_asc()
226
226
  try:
227
- with open(filename, "w", encoding="utf-8") as file_descriptor:
227
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
228
228
  output_cabrillo_line(
229
229
  "START-OF-LOG: 3.0",
230
230
  "\r\n",
@@ -247,7 +247,7 @@ def cabrillo(self, file_encoding):
247
247
  logger.debug("%s", filename)
248
248
  log = self.database.fetch_all_contacts_asc()
249
249
  try:
250
- with open(filename, "w", encoding="utf-8") as file_descriptor:
250
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
251
251
  output_cabrillo_line(
252
252
  "START-OF-LOG: 3.0",
253
253
  "\r\n",
@@ -234,7 +234,7 @@ def cabrillo(self, file_encoding):
234
234
  logger.debug("%s", filename)
235
235
  log = self.database.fetch_all_contacts_asc()
236
236
  try:
237
- with open(filename, "w", encoding="utf-8") as file_descriptor:
237
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
238
238
  output_cabrillo_line(
239
239
  "START-OF-LOG: 3.0",
240
240
  "\r\n",
@@ -234,7 +234,7 @@ def cabrillo(self, file_encoding):
234
234
  logger.debug("%s", filename)
235
235
  log = self.database.fetch_all_contacts_asc()
236
236
  try:
237
- with open(filename, "w", encoding="utf-8") as file_descriptor:
237
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
238
238
  output_cabrillo_line(
239
239
  "START-OF-LOG: 3.0",
240
240
  "\r\n",
@@ -266,7 +266,7 @@ def cabrillo(self, file_encoding):
266
266
  logger.debug("%s", filename)
267
267
  log = self.database.fetch_all_contacts_asc()
268
268
  try:
269
- with open(filename, "w", encoding="utf-8") as file_descriptor:
269
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
270
270
  output_cabrillo_line(
271
271
  "START-OF-LOG: 3.0",
272
272
  "\r\n",
@@ -265,7 +265,7 @@ def cabrillo(self, file_encoding):
265
265
  logger.debug("%s", filename)
266
266
  log = self.database.fetch_all_contacts_asc()
267
267
  try:
268
- with open(filename, "w", encoding="utf-8") as file_descriptor:
268
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
269
269
  output_cabrillo_line(
270
270
  "START-OF-LOG: 3.0",
271
271
  "\r\n",
@@ -231,7 +231,7 @@ def cabrillo(self, file_encoding):
231
231
  logger.debug("%s", filename)
232
232
  log = self.database.fetch_all_contacts_asc()
233
233
  try:
234
- with open(filename, "w", encoding="utf-8") as file_descriptor:
234
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
235
235
  output_cabrillo_line(
236
236
  "START-OF-LOG: 3.0",
237
237
  "\r\n",
@@ -254,7 +254,7 @@ def cabrillo(self, file_encoding):
254
254
  logger.debug("%s", filename)
255
255
  log = self.database.fetch_all_contacts_asc()
256
256
  try:
257
- with open(filename, "w", encoding="utf-8") as file_descriptor:
257
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
258
258
  output_cabrillo_line(
259
259
  "START-OF-LOG: 3.0",
260
260
  "\r\n",
@@ -230,7 +230,7 @@ def cabrillo(self, file_encoding):
230
230
  logger.debug("%s", filename)
231
231
  log = self.database.fetch_all_contacts_asc()
232
232
  try:
233
- with open(filename, "w", encoding="utf-8") as file_descriptor:
233
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
234
234
  output_cabrillo_line(
235
235
  "START-OF-LOG: 3.0",
236
236
  "\r\n",
@@ -224,7 +224,7 @@ def cabrillo(self, file_encoding):
224
224
  logger.debug("%s", filename)
225
225
  log = self.database.fetch_all_contacts_asc()
226
226
  try:
227
- with open(filename, "w", encoding="utf-8") as file_descriptor:
227
+ with open(filename, "w", encoding=file_encoding) as file_descriptor:
228
228
  output_cabrillo_line(
229
229
  "START-OF-LOG: 3.0",
230
230
  "\r\n",
@@ -478,13 +478,11 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
478
478
  if self.other_2.text() == "" or self.other_1.text() == "":
479
479
  self.make_button_green(self.esm_dict["AGN"])
480
480
  buttons_to_send.append(self.esm_dict["AGN"])
481
- elif self.other_1.text().isalpha() and self.other_2.text().isalpha():
481
+ else:
482
482
  self.make_button_green(self.esm_dict["QRZ"])
483
483
  buttons_to_send.append(self.esm_dict["QRZ"])
484
484
  buttons_to_send.append("LOGIT")
485
- else:
486
- self.make_button_green(self.esm_dict["AGN"])
487
- buttons_to_send.append(self.esm_dict["AGN"])
485
+
488
486
  if with_enter is True and bool(len(buttons_to_send)):
489
487
  for button in buttons_to_send:
490
488
  if button:
@@ -502,13 +500,11 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
502
500
  if self.other_2.text() == "" or self.other_1.text() == "":
503
501
  self.make_button_green(self.esm_dict["AGN"])
504
502
  buttons_to_send.append(self.esm_dict["AGN"])
505
- elif self.other_1.text().isalpha() and self.other_2.text().isalpha():
503
+ else:
506
504
  self.make_button_green(self.esm_dict["EXCH"])
507
505
  buttons_to_send.append(self.esm_dict["EXCH"])
508
506
  buttons_to_send.append("LOGIT")
509
- else:
510
- self.make_button_green(self.esm_dict["AGN"])
511
- buttons_to_send.append(self.esm_dict["AGN"])
507
+
512
508
  if with_enter is True and bool(len(buttons_to_send)):
513
509
  for button in buttons_to_send:
514
510
  if button:
@@ -516,3 +512,14 @@ def process_esm(self, new_focused_widget=None, with_enter=False):
516
512
  self.save_contact()
517
513
  continue
518
514
  self.process_function_key(button)
515
+
516
+
517
+ def check_call_history(self):
518
+ """"""
519
+ result = self.database.fetch_call_history(self.callsign.text())
520
+ if result:
521
+ self.history_info.setText(f"{result.get('UserText','')}")
522
+ if self.other_1.text() == "":
523
+ self.other_1.setText(f"{result.get('Name', '')}")
524
+ if self.other_2.text() == "":
525
+ self.other_2.setText(f"{result.get('Exch1', '')}")