not1mm 25.3.5__tar.gz → 25.3.14__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 (180) hide show
  1. {not1mm-25.3.5 → not1mm-25.3.14}/PKG-INFO +9 -3
  2. {not1mm-25.3.5 → not1mm-25.3.14}/README.md +8 -2
  3. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/__main__.py +27 -23
  4. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/plugin_common.py +1 -0
  5. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/version.py +1 -1
  6. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/arrl_field_day.py +21 -0
  7. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm.egg-info/PKG-INFO +9 -3
  8. {not1mm-25.3.5 → not1mm-25.3.14}/pyproject.toml +1 -1
  9. {not1mm-25.3.5 → not1mm-25.3.14}/LICENSE +0 -0
  10. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/__init__.py +0 -0
  11. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/bandmap.py +0 -0
  12. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/checkwindow.py +0 -0
  13. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
  14. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/MASTER.SCP +0 -0
  15. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/about.ui +0 -0
  16. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  17. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/bandmap.ui +0 -0
  18. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/check.png +0 -0
  19. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/checkwindow.ui +0 -0
  20. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/configuration.ui +0 -0
  21. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/contests.sql +0 -0
  22. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/cty.json +0 -0
  23. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/cwmacros.txt +0 -0
  24. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/donors.html +0 -0
  25. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/editcontact.ui +0 -0
  26. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/editmacro.ui +0 -0
  27. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/greendot.png +0 -0
  28. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/k6gte-not1mm.desktop +0 -0
  29. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/k6gte.not1mm-128.png +0 -0
  30. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/k6gte.not1mm-32.png +0 -0
  31. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/k6gte.not1mm-64.png +0 -0
  32. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/logwindow.ui +0 -0
  33. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/logwindowx.ui +0 -0
  34. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/main.ui +0 -0
  35. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/new_contest.ui +0 -0
  36. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/not1mm.html +0 -0
  37. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/opon.ui +0 -0
  38. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/0.wav +0 -0
  39. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/1.wav +0 -0
  40. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/2.wav +0 -0
  41. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/3.wav +0 -0
  42. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/4.wav +0 -0
  43. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/5.wav +0 -0
  44. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/6.wav +0 -0
  45. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/7.wav +0 -0
  46. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/73.wav +0 -0
  47. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/8.wav +0 -0
  48. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/9.wav +0 -0
  49. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/a.wav +0 -0
  50. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/again.wav +0 -0
  51. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/b.wav +0 -0
  52. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/c.wav +0 -0
  53. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/contest.wav +0 -0
  54. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/cq.wav +0 -0
  55. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/cq2.wav +0 -0
  56. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/d.wav +0 -0
  57. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/e.wav +0 -0
  58. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/f.wav +0 -0
  59. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/g.wav +0 -0
  60. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/h.wav +0 -0
  61. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/i.wav +0 -0
  62. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/j.wav +0 -0
  63. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/k.wav +0 -0
  64. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/k6gte.wav +0 -0
  65. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/l.wav +0 -0
  66. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/m.wav +0 -0
  67. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/mynumber.wav +0 -0
  68. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/n.wav +0 -0
  69. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/nil.wav +0 -0
  70. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/o.wav +0 -0
  71. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/p.wav +0 -0
  72. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/q.wav +0 -0
  73. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/r.wav +0 -0
  74. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/roger.wav +0 -0
  75. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/s.wav +0 -0
  76. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/space.wav +0 -0
  77. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/t.wav +0 -0
  78. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/thankyou.wav +0 -0
  79. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  80. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/u.wav +0 -0
  81. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/v.wav +0 -0
  82. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/w.wav +0 -0
  83. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/x.wav +0 -0
  84. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/y.wav +0 -0
  85. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/yourcall.wav +0 -0
  86. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/phonetics/z.wav +0 -0
  87. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/pickcontest.ui +0 -0
  88. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/radio_green.png +0 -0
  89. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/radio_grey.png +0 -0
  90. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/radio_red.png +0 -0
  91. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/ratewindow.ui +0 -0
  92. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/reddot.png +0 -0
  93. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/rttymacros.txt +0 -0
  94. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/settings.ui +0 -0
  95. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/splash.png +0 -0
  96. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/ssbmacros.txt +0 -0
  97. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/data/vfo.ui +0 -0
  98. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/fsutils.py +0 -0
  99. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/__init__.py +0 -0
  100. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/about.py +0 -0
  101. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/cat_interface.py +0 -0
  102. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/cwinterface.py +0 -0
  103. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/database.py +0 -0
  104. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/edit_contact.py +0 -0
  105. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/edit_macro.py +0 -0
  106. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/edit_opon.py +0 -0
  107. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/edit_station.py +0 -0
  108. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/fldigi_sendstring.py +0 -0
  109. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/ft8_watcher.py +0 -0
  110. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/ham_utility.py +0 -0
  111. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/lookup.py +0 -0
  112. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/multicast.py +0 -0
  113. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/n1mm.py +0 -0
  114. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/new_contest.py +0 -0
  115. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/select_contest.py +0 -0
  116. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/settings.py +0 -0
  117. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/super_check_partial.py +0 -0
  118. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lib/versiontest.py +0 -0
  119. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/logwindow.py +0 -0
  120. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/lookupservice.py +0 -0
  121. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/10_10_fall_cw.py +0 -0
  122. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/10_10_spring_cw.py +0 -0
  123. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/10_10_summer_phone.py +0 -0
  124. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/10_10_winter_phone.py +0 -0
  125. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/__init__.py +0 -0
  126. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/arrl_10m.py +0 -0
  127. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/arrl_160m.py +0 -0
  128. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/arrl_dx_cw.py +0 -0
  129. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  130. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  131. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/arrl_ss_cw.py +0 -0
  132. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/arrl_ss_phone.py +0 -0
  133. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/arrl_vhf_jan.py +0 -0
  134. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/arrl_vhf_jun.py +0 -0
  135. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/arrl_vhf_sep.py +0 -0
  136. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/canada_day.py +0 -0
  137. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/cq_160_cw.py +0 -0
  138. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/cq_160_ssb.py +0 -0
  139. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/cq_wpx_cw.py +0 -0
  140. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/cq_wpx_rtty.py +0 -0
  141. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  142. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/cq_ww_cw.py +0 -0
  143. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/cq_ww_rtty.py +0 -0
  144. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/cq_ww_ssb.py +0 -0
  145. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/cwt.py +0 -0
  146. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/darc_xmas.py +0 -0
  147. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/general_logging.py +0 -0
  148. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/helvetia.py +0 -0
  149. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
  150. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
  151. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/iaru_hf.py +0 -0
  152. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/icwc_mst.py +0 -0
  153. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/jidx_cw.py +0 -0
  154. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/jidx_ph.py +0 -0
  155. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/k1usn_sst.py +0 -0
  156. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/labre_rs_digi.py +0 -0
  157. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/lz-dx.py +0 -0
  158. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/naqp_cw.py +0 -0
  159. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/naqp_rtty.py +0 -0
  160. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/naqp_ssb.py +0 -0
  161. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/phone_weekly_test.py +0 -0
  162. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/raem.py +0 -0
  163. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/randomgram.py +0 -0
  164. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/ref_cw.py +0 -0
  165. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/ref_ssb.py +0 -0
  166. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/stew_perry_topband.py +0 -0
  167. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/weekly_rtty.py +0 -0
  168. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/plugins/winter_field_day.py +0 -0
  169. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/radio.py +0 -0
  170. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/ratewindow.py +0 -0
  171. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/rtc_service.py +0 -0
  172. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/test.py +0 -0
  173. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/vfo.py +0 -0
  174. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm/voice_keying.py +0 -0
  175. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm.egg-info/SOURCES.txt +0 -0
  176. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm.egg-info/dependency_links.txt +0 -0
  177. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm.egg-info/entry_points.txt +0 -0
  178. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm.egg-info/requires.txt +0 -0
  179. {not1mm-25.3.5 → not1mm-25.3.14}/not1mm.egg-info/top_level.txt +0 -0
  180. {not1mm-25.3.5 → not1mm-25.3.14}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: not1mm
3
- Version: 25.3.5
3
+ Version: 25.3.14
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
@@ -133,6 +133,7 @@ Requires-Dist: Levenshtein
133
133
  - [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
134
134
  - [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
135
135
  - [Call History Files](#call-history-files)
136
+ - [Creating your own Call History files](#creating-your-own-call-history-files)
136
137
  - [Contest specific notes](#contest-specific-notes)
137
138
  - [ARRL Sweekstakes](#arrl-sweekstakes)
138
139
  - [The exchange parser](#the-exchange-parser)
@@ -240,6 +241,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
240
241
 
241
242
  ## Recent Changes
242
243
 
244
+ - [25-3-14] Add call history support to ARR Field Day.
245
+ - [25-3-10] Slight change to adif header. Slight change to CAT status icon state.
243
246
  - [25-3-5] Added checks for blank/comment lines in the macros
244
247
  - [25-3-2] Added call history support to ARRL DX, just in time for it to be over.
245
248
  - [25-3-1] Add {OTHER1} and {OTHER2} macros.
@@ -919,13 +922,16 @@ QRZ (for Run) or Exchange (for S&P) is sent.
919
922
 
920
923
  ## Call History Files
921
924
 
922
- I've started work on using 'call history files'. To test it, you can
923
- go to `FILE -> Configuration Settings`
925
+ To use Call History files, go to `FILE -> Configuration Settings`
924
926
 
925
927
  ![Config Screen](https://github.com/mbridak/not1mm/raw/master/pic/configuration_options.png)
926
928
 
927
929
  Place a check in the `Use Call History` box. Call history files are very specific to the contest you are working. Example files can be obtained from [n1mm's](https://n1mmwp.hamdocs.com/mmfiles/categories/callhistory/?) website. They have a searchbox so you can find the contest you are looking for. If you are feeling masocistic, you can craft your own. The general makeup of the file is a header defining the fields to be used, followed by by lines of comma separated data.
928
930
 
931
+ ### Creating your own Call History files
932
+
933
+ You can use [adif2callhistory](https://github.com/mbridak/adif2callhistory) to generate your own call history file from your ADIF files. You can use a list of call history keys used for each contest [here](https://github.com/mbridak/not1mm/blob/master/call_history_keys.md).
934
+
929
935
  An example file excerpt looks like:
930
936
 
931
937
  ```text
@@ -102,6 +102,7 @@
102
102
  - [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
103
103
  - [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
104
104
  - [Call History Files](#call-history-files)
105
+ - [Creating your own Call History files](#creating-your-own-call-history-files)
105
106
  - [Contest specific notes](#contest-specific-notes)
106
107
  - [ARRL Sweekstakes](#arrl-sweekstakes)
107
108
  - [The exchange parser](#the-exchange-parser)
@@ -209,6 +210,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
209
210
 
210
211
  ## Recent Changes
211
212
 
213
+ - [25-3-14] Add call history support to ARR Field Day.
214
+ - [25-3-10] Slight change to adif header. Slight change to CAT status icon state.
212
215
  - [25-3-5] Added checks for blank/comment lines in the macros
213
216
  - [25-3-2] Added call history support to ARRL DX, just in time for it to be over.
214
217
  - [25-3-1] Add {OTHER1} and {OTHER2} macros.
@@ -888,13 +891,16 @@ QRZ (for Run) or Exchange (for S&P) is sent.
888
891
 
889
892
  ## Call History Files
890
893
 
891
- I've started work on using 'call history files'. To test it, you can
892
- go to `FILE -> Configuration Settings`
894
+ To use Call History files, go to `FILE -> Configuration Settings`
893
895
 
894
896
  ![Config Screen](https://github.com/mbridak/not1mm/raw/master/pic/configuration_options.png)
895
897
 
896
898
  Place a check in the `Use Call History` box. Call history files are very specific to the contest you are working. Example files can be obtained from [n1mm's](https://n1mmwp.hamdocs.com/mmfiles/categories/callhistory/?) website. They have a searchbox so you can find the contest you are looking for. If you are feeling masocistic, you can craft your own. The general makeup of the file is a header defining the fields to be used, followed by by lines of comma separated data.
897
899
 
900
+ ### Creating your own Call History files
901
+
902
+ You can use [adif2callhistory](https://github.com/mbridak/adif2callhistory) to generate your own call history file from your ADIF files. You can use a list of call history keys used for each contest [here](https://github.com/mbridak/not1mm/blob/master/call_history_keys.md).
903
+
898
904
  An example file excerpt looks like:
899
905
 
900
906
  ```text
@@ -3480,12 +3480,13 @@ class MainWindow(QtWidgets.QMainWindow):
3480
3480
  None
3481
3481
  """
3482
3482
  if mode in ("CW", "CW-U", "CW-L", "CWR"):
3483
- if self.rig_control and self.rig_control.online:
3484
- self.rig_control.set_mode(self.rig_control.last_cw_mode)
3485
- if self.pref.get("cwtype") == 3 and self.rig_control is not None:
3486
- if self.rig_control.interface == "flrig":
3487
- self.cwspeed_spinbox_changed()
3488
- self.rig_control.cat.set_flrig_cw_send(True)
3483
+ if self.rig_control:
3484
+ if self.rig_control.online:
3485
+ self.rig_control.set_mode(self.rig_control.last_cw_mode)
3486
+ if self.pref.get("cwtype") == 3 and self.rig_control is not None:
3487
+ if self.rig_control.interface == "flrig":
3488
+ self.cwspeed_spinbox_changed()
3489
+ self.rig_control.cat.set_flrig_cw_send(True)
3489
3490
  else:
3490
3491
  self.setmode("CW")
3491
3492
  self.radio_state["mode"] = "CW"
@@ -3505,8 +3506,9 @@ class MainWindow(QtWidgets.QMainWindow):
3505
3506
  "AM-D",
3506
3507
  "FM-D",
3507
3508
  ):
3508
- if self.rig_control and self.rig_control.online:
3509
- self.rig_control.set_mode(self.rig_control.last_data_mode)
3509
+ if self.rig_control:
3510
+ if self.rig_control.online:
3511
+ self.rig_control.set_mode(self.rig_control.last_data_mode)
3510
3512
  else:
3511
3513
  self.radio_state["mode"] = "RTTY"
3512
3514
  self.setmode("RTTY")
@@ -3527,8 +3529,9 @@ class MainWindow(QtWidgets.QMainWindow):
3527
3529
  else:
3528
3530
  self.radio_state["mode"] = "LSB"
3529
3531
 
3530
- if self.rig_control and self.rig_control.online:
3531
- self.rig_control.set_mode(self.radio_state.get("mode"))
3532
+ if self.rig_control:
3533
+ if self.rig_control.online:
3534
+ self.rig_control.set_mode(self.radio_state.get("mode"))
3532
3535
  else:
3533
3536
  self.setmode("SSB")
3534
3537
  band = getband(str(self.radio_state.get("vfoa", "0.0")))
@@ -3732,7 +3735,6 @@ class MainWindow(QtWidgets.QMainWindow):
3732
3735
 
3733
3736
  # The following pertains to radio polling.
3734
3737
  logger.debug(f"{the_dict=}")
3735
- self.set_radio_icon(0)
3736
3738
  info_dirty = False
3737
3739
  vfo = the_dict.get("vfoa", "")
3738
3740
  mode = the_dict.get("mode", "")
@@ -3740,8 +3742,9 @@ class MainWindow(QtWidgets.QMainWindow):
3740
3742
  if bw == "NONE":
3741
3743
  bw = "0"
3742
3744
  online = the_dict.get("online", False)
3743
-
3744
- if online is False:
3745
+ if self.rig_control.interface == "fake":
3746
+ self.set_radio_icon(0)
3747
+ elif online is False:
3745
3748
  self.set_radio_icon(1)
3746
3749
  else:
3747
3750
  self.set_radio_icon(2)
@@ -3756,8 +3759,9 @@ class MainWindow(QtWidgets.QMainWindow):
3756
3759
  self.contact["Band"] = get_logged_band(str(vfo))
3757
3760
  self.set_band_indicator(band)
3758
3761
 
3759
- if self.rig_control and self.rig_control.online:
3760
- self.rig_control.get_modes()
3762
+ if self.rig_control:
3763
+ if self.rig_control.online:
3764
+ self.rig_control.get_modes()
3761
3765
 
3762
3766
  if self.radio_state.get("mode") != mode:
3763
3767
  info_dirty = True
@@ -3789,14 +3793,14 @@ class MainWindow(QtWidgets.QMainWindow):
3789
3793
  ):
3790
3794
  self.setmode("RTTY")
3791
3795
 
3792
- # cmd = {}
3793
- # cmd["cmd"] = "RADIO_STATE"
3794
- # cmd["band"] = band
3795
- # cmd["vfoa"] = vfo
3796
- # cmd["mode"] = mode
3797
- # cmd["bw"] = bw
3798
- # if self.bandmap_window:
3799
- # self.bandmap_window.msg_from_main(cmd)
3796
+ cmd = {}
3797
+ cmd["cmd"] = "RADIO_STATE"
3798
+ cmd["band"] = band
3799
+ cmd["vfoa"] = vfo
3800
+ cmd["mode"] = mode
3801
+ cmd["bw"] = bw
3802
+ if self.bandmap_window:
3803
+ self.bandmap_window.msg_from_main(cmd)
3800
3804
  if info_dirty:
3801
3805
  try:
3802
3806
  logger.debug("VFO: %s MODE: %s BW: %s", vfo, mode, bw)
@@ -82,6 +82,7 @@ def gen_adif(self, cabrillo_name: str, contest_id=""):
82
82
  log = self.database.fetch_all_contacts_asc()
83
83
  try:
84
84
  with open(filename, "w", encoding="utf-8") as file_descriptor:
85
+ print("Not1MM ADIF export", end="\r\n", file=file_descriptor)
85
86
  print("<ADIF_VER:5>2.2.0", end="\r\n", file=file_descriptor)
86
87
  print("<EOH>", end="\r\n", file=file_descriptor)
87
88
  for contact in log:
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "25.3.5"
3
+ __version__ = "25.3.14"
@@ -526,3 +526,24 @@ def get_mults(self):
526
526
  def just_points(self):
527
527
  """"""
528
528
  return get_points(self)
529
+
530
+
531
+ def populate_history_info_line(self):
532
+ result = self.database.fetch_call_history(self.callsign.text())
533
+ if result:
534
+ self.history_info.setText(
535
+ f"{result.get('Call', '')}, {result.get('Exch1', '')}, {result.get('Sect', '')}, {result.get('UserText','...')}"
536
+ )
537
+ else:
538
+ self.history_info.setText("")
539
+
540
+
541
+ def check_call_history(self):
542
+ """"""
543
+ result = self.database.fetch_call_history(self.callsign.text())
544
+ if result:
545
+ self.history_info.setText(f"{result.get('UserText','')}")
546
+ if self.other_1.text() == "":
547
+ self.other_1.setText(f"{result.get('Exch1', '')}")
548
+ if self.other_2.text() == "":
549
+ self.other_2.setText(f"{result.get('Sect', '')}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: not1mm
3
- Version: 25.3.5
3
+ Version: 25.3.14
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
@@ -133,6 +133,7 @@ Requires-Dist: Levenshtein
133
133
  - [If no exchange entered send AGN](#if-no-exchange-entered-send-agn)
134
134
  - [With exchange entered, send your exchange and log it](#with-exchange-entered-send-your-exchange-and-log-it)
135
135
  - [Call History Files](#call-history-files)
136
+ - [Creating your own Call History files](#creating-your-own-call-history-files)
136
137
  - [Contest specific notes](#contest-specific-notes)
137
138
  - [ARRL Sweekstakes](#arrl-sweekstakes)
138
139
  - [The exchange parser](#the-exchange-parser)
@@ -240,6 +241,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
240
241
 
241
242
  ## Recent Changes
242
243
 
244
+ - [25-3-14] Add call history support to ARR Field Day.
245
+ - [25-3-10] Slight change to adif header. Slight change to CAT status icon state.
243
246
  - [25-3-5] Added checks for blank/comment lines in the macros
244
247
  - [25-3-2] Added call history support to ARRL DX, just in time for it to be over.
245
248
  - [25-3-1] Add {OTHER1} and {OTHER2} macros.
@@ -919,13 +922,16 @@ QRZ (for Run) or Exchange (for S&P) is sent.
919
922
 
920
923
  ## Call History Files
921
924
 
922
- I've started work on using 'call history files'. To test it, you can
923
- go to `FILE -> Configuration Settings`
925
+ To use Call History files, go to `FILE -> Configuration Settings`
924
926
 
925
927
  ![Config Screen](https://github.com/mbridak/not1mm/raw/master/pic/configuration_options.png)
926
928
 
927
929
  Place a check in the `Use Call History` box. Call history files are very specific to the contest you are working. Example files can be obtained from [n1mm's](https://n1mmwp.hamdocs.com/mmfiles/categories/callhistory/?) website. They have a searchbox so you can find the contest you are looking for. If you are feeling masocistic, you can craft your own. The general makeup of the file is a header defining the fields to be used, followed by by lines of comma separated data.
928
930
 
931
+ ### Creating your own Call History files
932
+
933
+ You can use [adif2callhistory](https://github.com/mbridak/adif2callhistory) to generate your own call history file from your ADIF files. You can use a list of call history keys used for each contest [here](https://github.com/mbridak/not1mm/blob/master/call_history_keys.md).
934
+
929
935
  An example file excerpt looks like:
930
936
 
931
937
  ```text
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "not1mm"
7
- version = "25.3.5"
7
+ version = "25.3.14"
8
8
  description = "NOT1MM Logger"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
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
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