not1mm 24.3.25__tar.gz → 24.3.27__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 (159) hide show
  1. {not1mm-24.3.25 → not1mm-24.3.27}/PKG-INFO +223 -78
  2. {not1mm-24.3.25 → not1mm-24.3.27}/README.md +222 -77
  3. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/__main__.py +66 -6
  4. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/bandmap.py +42 -12
  5. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/checkwindow.py +15 -3
  6. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/version.py +1 -1
  7. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/logwindow.py +7 -4
  8. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/vfo.py +2 -2
  9. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm.egg-info/PKG-INFO +223 -78
  10. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm.egg-info/SOURCES.txt +0 -6
  11. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm.egg-info/top_level.txt +0 -2
  12. {not1mm-24.3.25 → not1mm-24.3.27}/pyproject.toml +3 -1
  13. not1mm-24.3.25/not1mm/testing/fakeflrig.py +0 -88
  14. not1mm-24.3.25/not1mm/testing/flrigclient.py +0 -54
  15. not1mm-24.3.25/not1mm/testing/multicast_listener.py +0 -46
  16. not1mm-24.3.25/not1mm/testing/n1mm_listener.py +0 -47
  17. not1mm-24.3.25/not1mm/testing/simulant.py +0 -384
  18. not1mm-24.3.25/not1mm/testing/test.py +0 -8
  19. {not1mm-24.3.25 → not1mm-24.3.27}/LICENSE +0 -0
  20. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/__init__.py +0 -0
  21. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/JetBrainsMono-Regular.ttf +0 -0
  22. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/MASTER.SCP +0 -0
  23. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/about.ui +0 -0
  24. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  25. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/bandmap.ui +0 -0
  26. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/check.png +0 -0
  27. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/checkwindow.ui +0 -0
  28. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/configuration.ui +0 -0
  29. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/contests.sql +0 -0
  30. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/cty.json +0 -0
  31. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/cwmacros.txt +0 -0
  32. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/donors.html +0 -0
  33. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/editcontact.ui +0 -0
  34. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/editmacro.ui +0 -0
  35. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/greendot.png +0 -0
  36. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/k6gte-not1mm.desktop +0 -0
  37. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/k6gte.not1mm-128.png +0 -0
  38. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/k6gte.not1mm-32.png +0 -0
  39. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/k6gte.not1mm-64.png +0 -0
  40. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/logwindow.ui +0 -0
  41. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/main.ui +0 -0
  42. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/new_contest.ui +0 -0
  43. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/not1mm.html +0 -0
  44. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/opon.ui +0 -0
  45. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/0.wav +0 -0
  46. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/1.wav +0 -0
  47. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/2.wav +0 -0
  48. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/3.wav +0 -0
  49. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/4.wav +0 -0
  50. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/5.wav +0 -0
  51. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/6.wav +0 -0
  52. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/7.wav +0 -0
  53. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/73.wav +0 -0
  54. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/8.wav +0 -0
  55. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/9.wav +0 -0
  56. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/a.wav +0 -0
  57. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/again.wav +0 -0
  58. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/b.wav +0 -0
  59. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/c.wav +0 -0
  60. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/contest.wav +0 -0
  61. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/cq.wav +0 -0
  62. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/d.wav +0 -0
  63. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/e.wav +0 -0
  64. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/f.wav +0 -0
  65. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/g.wav +0 -0
  66. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/h.wav +0 -0
  67. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/i.wav +0 -0
  68. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/j.wav +0 -0
  69. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/k.wav +0 -0
  70. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/k6gte.wav +0 -0
  71. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/l.wav +0 -0
  72. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/m.wav +0 -0
  73. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/mynumber.wav +0 -0
  74. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/n.wav +0 -0
  75. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/nil.wav +0 -0
  76. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/o.wav +0 -0
  77. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/p.wav +0 -0
  78. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/q.wav +0 -0
  79. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/r.wav +0 -0
  80. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/roger.wav +0 -0
  81. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/s.wav +0 -0
  82. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/space.wav +0 -0
  83. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/t.wav +0 -0
  84. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/thankyou.wav +0 -0
  85. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  86. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/u.wav +0 -0
  87. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/v.wav +0 -0
  88. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/w.wav +0 -0
  89. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/x.wav +0 -0
  90. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/y.wav +0 -0
  91. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/yourcall.wav +0 -0
  92. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/phonetics/z.wav +0 -0
  93. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/pickcontest.ui +0 -0
  94. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/radio_green.png +0 -0
  95. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/radio_grey.png +0 -0
  96. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/radio_red.png +0 -0
  97. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/reddot.png +0 -0
  98. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/settings.ui +0 -0
  99. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/ssbmacros.txt +0 -0
  100. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/data/vfo.ui +0 -0
  101. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/fsutils.py +0 -0
  102. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/__init__.py +0 -0
  103. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/about.py +0 -0
  104. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/cat_interface.py +0 -0
  105. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/cwinterface.py +0 -0
  106. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/database.py +0 -0
  107. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/edit_contact.py +0 -0
  108. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/edit_macro.py +0 -0
  109. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/edit_opon.py +0 -0
  110. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/edit_station.py +0 -0
  111. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/ham_utility.py +0 -0
  112. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/lookup.py +0 -0
  113. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/multicast.py +0 -0
  114. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/n1mm.py +0 -0
  115. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/new_contest.py +0 -0
  116. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/plugin_common.py +0 -0
  117. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/select_contest.py +0 -0
  118. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/settings.py +0 -0
  119. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/super_check_partial.py +0 -0
  120. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/lib/versiontest.py +0 -0
  121. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/10_10_fall_cw.py +0 -0
  122. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/10_10_spring_cw.py +0 -0
  123. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/10_10_summer_phone.py +0 -0
  124. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/10_10_winter_phone.py +0 -0
  125. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/__init__.py +0 -0
  126. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/arrl_10m.py +0 -0
  127. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/arrl_dx_cw.py +0 -0
  128. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  129. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/arrl_field_day.py +0 -0
  130. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  131. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/arrl_ss_cw.py +0 -0
  132. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/arrl_ss_phone.py +0 -0
  133. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/arrl_vhf_jan.py +0 -0
  134. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/arrl_vhf_jun.py +0 -0
  135. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/arrl_vhf_sep.py +0 -0
  136. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/canada_day.py +0 -0
  137. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/cq_160_cw.py +0 -0
  138. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/cq_160_ssb.py +0 -0
  139. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/cq_wpx_cw.py +0 -0
  140. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  141. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/cq_ww_cw.py +0 -0
  142. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/cq_ww_ssb.py +0 -0
  143. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/cwt.py +0 -0
  144. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/general_logging.py +0 -0
  145. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/iaru_hf.py +0 -0
  146. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/jidx_cw.py +0 -0
  147. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/jidx_ph.py +0 -0
  148. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/naqp_cw.py +0 -0
  149. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/naqp_ssb.py +0 -0
  150. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/phone_weekly_test.py +0 -0
  151. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/stew_perry_topband.py +0 -0
  152. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm/plugins/winter_field_day.py +0 -0
  153. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm.egg-info/dependency_links.txt +0 -0
  154. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm.egg-info/entry_points.txt +0 -0
  155. {not1mm-24.3.25 → not1mm-24.3.27}/not1mm.egg-info/requires.txt +0 -0
  156. {not1mm-24.3.25 → not1mm-24.3.27}/setup.cfg +0 -0
  157. {not1mm-24.3.25 → not1mm-24.3.27}/testing/detectdark.py +0 -0
  158. {not1mm-24.3.25 → not1mm-24.3.27}/testing/test.py +0 -0
  159. {not1mm-24.3.25 → not1mm-24.3.27}/usb_vfo_knob/code.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.3.25
3
+ Version: 24.3.27
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
@@ -49,15 +49,19 @@ The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<
49
49
  - [List of should be working contests](#list-of-should-be-working-contests)
50
50
  - [Recent Changes](#recent-changes)
51
51
  - [Installation](#installation)
52
+ - [Prerequisites](#prerequisites)
53
+ - [Common recipes for Ubuntu and Fedora](#common-recipes-for-ubuntu-and-fedora)
54
+ - [Ubuntu 22.04 LTS](#ubuntu-2204-lts)
55
+ - [Ubuntu 23.04](#ubuntu-2304)
56
+ - [Fedora 38 \& 39](#fedora-38--39)
52
57
  - [Python, PyPI, pip and pipx](#python-pypi-pip-and-pipx)
53
58
  - [Bootstrapping pipx](#bootstrapping-pipx)
54
59
  - [Installing with pipx](#installing-with-pipx)
55
- - [Installing portaudio](#installing-portaudio)
56
- - [After install](#after-install)
60
+ - [After the install](#after-the-install)
57
61
  - [You may or may not get a warning message like](#you-may-or-may-not-get-a-warning-message-like)
58
62
  - [Or this fan favorite](#or-this-fan-favorite)
59
- - [Wayland Compositor](#wayland-compositor)
60
63
  - [Running from source](#running-from-source)
64
+ - [Wayland Compositor](#wayland-compositor)
61
65
  - [Various data file locations](#various-data-file-locations)
62
66
  - [Data](#data)
63
67
  - [Config](#config)
@@ -107,20 +111,28 @@ The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<
107
111
 
108
112
  ## What and why is Not1MM
109
113
 
110
- Not1MM's interface is a blatant ripoff of N1MM.
111
- It is NOT N1MM and any problem you have with this software should in no way reflect on their software.
114
+ Not1MM's interface is a blatant ripoff of N1MM. It is NOT N1MM and any problem
115
+ you have with this software should in no way reflect on their software.
112
116
 
113
- If you use Windows(tm), you should run away from Not1MM and use someother program.
117
+ If you use Windows(tm), you should run away from Not1MM and use someother
118
+ program.
114
119
 
115
- I personally don't use Windows(tm). While it may be possible to get N1MM working under Wine, I haven't checked. I'd rather not have to jump thru the hoops.
120
+ I personally don't use Windows(tm). While it may be possible to get N1MM working
121
+ under Wine, I haven't checked. I'd rather not have to jump thru the hoops.
116
122
 
117
- **Currently this exists for my own personal amusement**.
118
- Something to do in my free time.
119
- While I'm not watching TV, Right vs Left political 'News' programs, mind numbing 'Reality' shows etc...
123
+ **Currently this exists for my own personal amusement**. Something to do in my
124
+ free time. While I'm not watching TV, Right vs Left political 'News' programs,
125
+ mind numbing 'Reality' shows etc...
120
126
 
121
127
  ## Current state
122
128
 
123
- The current state is "**BETA**". I've used it for a few contests, and was able to work contacts and submit a cabrillo at the end. I'm not a "Contester". So I'll add contests as/if I work them. I'm only one guy, so if you see a bug let me know. I don't do much of any Data or RTTY operating. This is why you don't see RTTY in the list of working contests. The Lord helps those who burn people at the... I mean who help themselves. Feel free to fill in that hole with a pull request.
129
+ The current state is "**BETA**". I've used it for a few contests, and was able
130
+ to work contacts and submit a cabrillo at the end. I'm not a "Contester". So
131
+ I'll add contests as/if I work them. I'm only one guy, so if you see a bug let
132
+ me know. I don't do much of any Data or RTTY operating. This is why you don't
133
+ see RTTY in the list of working contests. The Lord helps those who burn people
134
+ at the... I mean who help themselves. Feel free to fill in that hole with a pull
135
+ request.
124
136
 
125
137
  ![main screen](https://github.com/mbridak/not1mm/raw/master/pic/main.png)
126
138
 
@@ -167,6 +179,8 @@ I wish to thank those who've contributed to the project.
167
179
 
168
180
  ## Recent Changes
169
181
 
182
+ - [24-3-27] Made items in the checkwindow clickable. Removed connection check in bandmap preventing marked calls from appearing.
183
+ - [24-3-25-1] Dark mode sorted out. Atleast for me...
170
184
  - [24-3-25] Yanked version 24-3-24-1. Fixed widget focus issues.
171
185
  - [24-3-24-1] Killed an SQL query bug causing crash when pressing arrow down.
172
186
  - [24-3-24] Reworked fsutil.py to correct directory paths for Linux.
@@ -185,15 +199,58 @@ See [CHANGELOG.md](CHANGELOG.md) for prior changes.
185
199
 
186
200
  ## Installation
187
201
 
202
+ ### Prerequisites
203
+
204
+ not1mm requires Python 3.9+, PyQt5 and libportaudio2. You should install these
205
+ through your distribution's package manager before continuing.
206
+
207
+ ### Common recipes for Ubuntu and Fedora
208
+
209
+ #### Ubuntu 22.04 LTS
210
+
211
+ ```bash
212
+ sudo apt update
213
+ sudo apt upgrade
214
+ sudo apt install -y libportaudio2 python3-pip python3-pyqt5 python3-numpy
215
+ pip install -U not1mm
216
+ ```
217
+
218
+ #### Ubuntu 23.04
219
+
220
+ ```bash
221
+ sudo apt update
222
+ sudo apt upgrade
223
+ sudo apt install -y libportaudio2 pipx
224
+ pipx install not1mm
225
+ pipx ensurepath
226
+ ```
227
+
228
+ #### Fedora 38 & 39
229
+
230
+ ```bash
231
+ sudo dnf upgrade --refresh
232
+ sudo dnf install python3-pip portaudio
233
+ pip install not1mm
234
+ ```
235
+
236
+ You can now open a new terminal and type not1mm. On it's first run, it may or
237
+ may not install a lovely non AI generated icon, which you can later click on to
238
+ launch the application.
239
+
188
240
  ### Python, PyPI, pip and pipx
189
241
 
190
- This software is a Python package hosted on PyPI, and installable with the pip or pipx command. If this is your first exposure to Python packaging you can get all the details from:
242
+ This software is a Python package hosted on PyPI, and installable with the pip
243
+ or pipx command. If this is your first exposure to Python packaging you can get
244
+ all the details from:
191
245
 
192
246
  - [The PyPA](https://packaging.python.org/en/latest/tutorials/installing-packages/)
193
247
  - [Install packages in a virtual environment using pip and venv](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/)
194
248
  - [Installing stand alone command line tools](https://packaging.python.org/en/latest/guides/installing-stand-alone-command-line-tools/)
195
249
 
196
- In short, You should install stuff into a Python virtual environment. Newer Linux distros will make you do this unless you include a command line argument akin to '--break-my-system' when using pip. I'm not telling you to use pipx. But... **Use pipx**.
250
+ In short, You should install stuff into a Python virtual environment. Newer
251
+ Linux distros will make you do this unless you include a command line argument
252
+ akin to '--break-my-system' when using pip. I'm not telling you to use pipx.
253
+ But... **Use pipx**.
197
254
 
198
255
  ### Bootstrapping pipx
199
256
 
@@ -227,22 +284,11 @@ If you need to later update not1mm, you can do so with:
227
284
  pipx upgrade not1mm
228
285
  ```
229
286
 
230
- ### Installing portaudio
231
-
232
- not1mm uses portaudio to play audio. You can install it with:
233
-
234
- ```bash
235
- # Ubuntu
236
- sudo apt install -y libportaudio2
237
-
238
- # Fedora
239
- sudo dnf install python3-pip portaudio
240
- ```
287
+ ## After the install
241
288
 
242
- ## After install
243
-
244
- You can now open a new terminal and type `not1mm`. On it's first run, it may or may not install a lovely non AI generated
245
- icon, which you can later click on to launch the application.
289
+ You can now open a new terminal and type `not1mm`. On it's first run, it may or
290
+ may not install a lovely non AI generated icon, which you can later click on to
291
+ launch the application.
246
292
 
247
293
  ### You may or may not get a warning message like
248
294
 
@@ -265,15 +311,14 @@ To avoid this you can export an environment variable and launch the app like thi
265
311
 
266
312
  `mbridak@vm:~$ export QT_QPA_PLATFORM=wayland; not1mm`
267
313
 
268
- For a more permanent solution you can place the line `export QT_QPA_PLATFORM=wayland` in your home directories .bashrc file. Then after logging out and back in you should be able to launch it normally.
269
-
270
- ## Wayland Compositor
271
-
272
- One side effect of Wayland is that we are not able to request for a window to regain or retain focus. So if you were to click on a spot in the bandmap window to tune to that spot, you would have to then click on the main window to continue entering contest data. I'm aware of this, but I can not change it.
314
+ For a more permanent solution you can place the line
315
+ `export QT_QPA_PLATFORM=wayland` in your home directories .bashrc file. Then
316
+ after logging out and back in you should be able to launch it normally.
273
317
 
274
318
  ### Running from source
275
319
 
276
- Since this is packaged for PyPI, if you want to work on your own source branch, after cloning from github you would:
320
+ Since this is packaged for PyPI, if you want to work on your own source branch,
321
+ after cloning from github you would:
277
322
 
278
323
  ```bash
279
324
  pip install --upgrade pip
@@ -282,7 +327,8 @@ pip install build
282
327
  source rebuild.sh
283
328
  ```
284
329
 
285
- from the root directory. This installs a build chain and a local editable copy of not1mm.
330
+ from the root directory. This installs a build chain and a local editable copy
331
+ of not1mm.
286
332
 
287
333
  There's two ways to launch the program from the local editable copy.
288
334
 
@@ -298,41 +344,62 @@ or be in some other directory and just type:
298
344
  not1mm
299
345
  ```
300
346
 
347
+ ## Wayland Compositor
348
+
349
+ One side effect of Wayland is that we are not able to request for a window to
350
+ regain or retain focus. So if you were to click on a spot in the bandmap window
351
+ to tune to that spot, you would have to then click on the main window to
352
+ continue entering contest data. I'm aware of this, but I can not change it.
353
+
301
354
  ## Various data file locations
302
355
 
303
356
  ### Data
304
357
 
305
- If your system has an `XDG_DATA_HOME` environment variable set, the database and CW macro files can be found there. Otherwise they will be found at `yourhome/.local/share/not1mm`
358
+ If your system has an `XDG_DATA_HOME` environment variable set, the database and
359
+ CW macro files can be found there. Otherwise they will be found at
360
+ `yourhome/.local/share/not1mm`
306
361
 
307
362
  ### Config
308
363
 
309
- Configuration file(s) can be found at the location defined by `XDG_CONFIG_HOME`. Otherwise they will be found at `yourhome/.config/not1mm`
364
+ Configuration file(s) can be found at the location defined by `XDG_CONFIG_HOME`.
365
+ Otherwise they will be found at `yourhome/.config/not1mm`
310
366
 
311
367
  ## The database
312
368
 
313
369
  ### Why
314
370
 
315
- The database holds... wait for it... data... I know shocker right. A database can hold one or many contest logs. It also holds the station information, everything shown in the Station Settings dialog. You can have one database for the rest of your life. Filled with hundreds of contests you've logged. Or, you can create a new database to hold just one contest. You do You Boo.
371
+ The database holds... wait for it... data... I know shocker right. A database
372
+ can hold one or many contest logs. It also holds the station information,
373
+ everything shown in the Station Settings dialog. You can have one database for
374
+ the rest of your life. Filled with hundreds of contests you've logged. Or, you
375
+ can create a new database to hold just one contest. You do You Boo.
316
376
 
317
377
  ### The first one
318
378
 
319
- On the initial running, a database is created for you called `ham.db`. This, and all future databases, are located in the data directory mentioned above.
379
+ On the initial running, a database is created for you called `ham.db`. This, and
380
+ all future databases, are located in the data directory mentioned above.
320
381
 
321
382
  ### Why limit yourself
322
383
 
323
- You can create a new database by selecting `File` > `New Database` from the main window, and give it a snazzy name. Why limit yourself. Hell, create one every day for all I care. You can manage your own digital disaster.
384
+ You can create a new database by selecting `File` > `New Database` from the main
385
+ window, and give it a snazzy name. Why limit yourself. Hell, create one every
386
+ day for all I care. You can manage your own digital disaster.
324
387
 
325
388
  ### Revisiting an old friend
326
389
 
327
- You can select a previously created databases for use by selecting `File` > `Open Database`.
390
+ You can select a previously created databases for use by selecting
391
+ `File` > `Open Database`.
328
392
 
329
393
  ## Station Settings dialog (REQUIRED)
330
394
 
331
- After initial run of the program or creating a new database you will need to fill out the Station Settings dialog that will pop up.
395
+ After initial run of the program or creating a new database you will need to
396
+ fill out the Station Settings dialog that will pop up.
332
397
 
333
398
  ![settings screen](https://github.com/mbridak/not1mm/raw/master/pic/settings.png)
334
399
 
335
- You can fill it out if you want to. You can leave our friends behind. 'Cause your friends don't fill, and if they don't fill. Well, they're no friends of mine.
400
+ You can fill it out if you want to. You can leave our friends behind.
401
+ 'Cause your friends don't fill, and if they don't fill. Well, they're no friends
402
+ of mine.
336
403
 
337
404
  You can fill. You can fill. Everyone look at your keys.
338
405
 
@@ -340,7 +407,8 @@ You can fill. You can fill. Everyone look at your keys.
340
407
 
341
408
  ### Changing station information
342
409
 
343
- Station information can be changed any time by going to `File` > `Station Settings` and editing the information.
410
+ Station information can be changed any time by going to
411
+ `File` > `Station Settings` and editing the information.
344
412
 
345
413
  ## Selecting a contest (REQUIRED)
346
414
 
@@ -358,11 +426,15 @@ Select `File` > `Open Contest`
358
426
 
359
427
  ### Editing existing contest parameters
360
428
 
361
- You can edit the parameters of a previously defined contest by selecting it as the current contest. Then select `File` > `Edit Current Contest`. Click `OK` to save the new values and reload the contest. `Cancel` to keep the existing parameters.
429
+ You can edit the parameters of a previously defined contest by selecting it as
430
+ the current contest. Then select `File` > `Edit Current Contest`. Click `OK` to
431
+ save the new values and reload the contest. `Cancel` to keep the existing
432
+ parameters.
362
433
 
363
434
  ## Configuration Settings
364
435
 
365
- To setup your CAT control, CW keyer, Callsign lookups, select `File` > `Configuration Settings`
436
+ To setup your CAT control, CW keyer, Callsign lookups, select
437
+ `File` > `Configuration Settings`
366
438
 
367
439
  The tabs for groups and n1mm are disabled and are for future expansion.
368
440
 
@@ -370,7 +442,8 @@ The tabs for groups and n1mm are disabled and are for future expansion.
370
442
 
371
443
  ### Lookup
372
444
 
373
- For callsign lookup, Two services are supported. QRZ and HamQTH. They require a username and password, Enter it here.
445
+ For callsign lookup, Two services are supported. QRZ and HamQTH. They require a
446
+ username and password, Enter it here.
374
447
 
375
448
  ### Soundcard
376
449
 
@@ -378,41 +451,59 @@ Choose the sound output device for the voice keyer.
378
451
 
379
452
  ### CAT Control
380
453
 
381
- Under the `CAT` TAB, you can choose either `rigctld` normally with an IP of `127.0.0.1` and a port of `4532`. Or `flrig`, IP normally of `127.0.0.1` and a port of `12345`. `None` is always an option, but is it really? There's an onscreen icon for CAT status. Green good, Red bad, Grey neither.
454
+ Under the `CAT` TAB, you can choose either `rigctld` normally with an IP of
455
+ `127.0.0.1` and a port of `4532`. Or `flrig`, IP normally of `127.0.0.1` and a
456
+ port of `12345`. `None` is always an option, but is it really? There's an
457
+ onscreen icon for CAT status. Green good, Red bad, Grey neither.
382
458
 
383
459
  ### CW Keyer interface
384
460
 
385
- Under the `CW` TAB, There are three options. `cwdaemon`, which normally uses IP `127.0.0.1` and port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` and port `8000`. Or `None`, if you want to Morse it like it's 1899.
461
+ Under the `CW` TAB, There are three options. `cwdaemon`, which normally uses IP
462
+ `127.0.0.1` and port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` and
463
+ port `8000`. Or `None`, if you want to Morse it like it's 1899.
386
464
 
387
465
  ### Cluster
388
466
 
389
467
  ![Configuration Settings screen](https://github.com/mbridak/not1mm/raw/master/pic/configuration_cluster.png)
390
468
 
391
- Under the `Cluster` TAB you can change the default AR Cluster server, port and filter settings used for the bandmap window.
469
+ Under the `Cluster` TAB you can change the default AR Cluster server, port and
470
+ filter settings used for the bandmap window.
392
471
 
393
472
  ### N1MM Packets
394
473
 
395
- Work has started on N1MM udp packets. So far just RadioInfo, contactinfo, contactreplace and contactdelete.
474
+ Work has started on N1MM udp packets. So far just RadioInfo, contactinfo,
475
+ contactreplace and contactdelete.
396
476
 
397
477
  ![N1MM Packet Configuration Screen](https://github.com/mbridak/not1mm/blob/master/pic/n1mm_packet_config.png?raw=true)
398
478
 
399
- When entering IP and Ports, enter them with a colon ':' between them. You can enter multiple pairs on the same line if separated by a space ' '.
479
+ When entering IP and Ports, enter them with a colon ':' between them. You can
480
+ enter multiple pairs on the same line if separated by a space ' '.
400
481
 
401
482
  ### Bands
402
483
 
403
- You can define which bands appear in the main window. Those with checkmarks will appear. Those without will not.
484
+ You can define which bands appear in the main window. Those with checkmarks will
485
+ appear. Those without will not.
404
486
 
405
487
  ![Bands Configuration Screen](https://github.com/mbridak/not1mm/raw/master/pic/configure_bands.png)
406
488
 
407
489
  ## Sending CW
408
490
 
409
- Other than sending CW by hand, you can also send predefined CW text messages by pressing F1 - F12. See next section on Editing macro keys. If you need to send something freeform, you can press CTRL-SHIFT-K, this will expose an entry field at the bottom of the window which you can type directly into. When you're done you can either press CTRL-SHIFT-K again, or press the Enter Key to close the field.
491
+ Other than sending CW by hand, you can also send predefined CW text messages by
492
+ pressing F1 - F12. See next section on Editing macro keys. If you need to send
493
+ something freeform, you can press CTRL-SHIFT-K, this will expose an entry field
494
+ at the bottom of the window which you can type directly into. When you're done
495
+ you can either press CTRL-SHIFT-K again, or press the Enter Key to close the
496
+ field.
410
497
 
411
498
  ## Editing macro keys
412
499
 
413
- To edit the macros, choose `File` > `Edit Macros`. This will open your systems registered text editor with current macros loaded. When your done just save the file and close the editor. The file loaded to edit, CW or SSB, will be determined by your current operating mode.
500
+ To edit the macros, choose `File` > `Edit Macros`. This will open your systems
501
+ registered text editor with current macros loaded. When your done just save the
502
+ file and close the editor. The file loaded to edit, CW or SSB, will be
503
+ determined by your current operating mode.
414
504
 
415
- After editing and saving the macro file. You can force the logger to reload the macro file by toggeling between `Run` and `S&P` states.
505
+ After editing and saving the macro file. You can force the logger to reload the
506
+ macro file by toggeling between `Run` and `S&P` states.
416
507
 
417
508
  ### Macro substitutions
418
509
 
@@ -429,19 +520,37 @@ You can include a limited set of substitution instructions.
429
520
 
430
521
  ### Macro use with voice
431
522
 
432
- The macros when used with voice, will also accept filenames of WAV files to play, excluding the file extension. The filename must be enclosed by brackets. For example `[CQ]` will play `cq.wav`, `[again]` will play `again.wav`. The wav files are stored in the operators personal data directory. The filenames must be in lowercase. See [Various data file locations](#various-data-file-locations) above for the location of your data files. For me, the macro `[cq]` will play `/home/mbridak/.local/share/not1mm/K6GTE/cq.wav`
523
+ The macros when used with voice, will also accept filenames of WAV files to
524
+ play, excluding the file extension. The filename must be enclosed by brackets.
525
+ For example `[CQ]` will play `cq.wav`, `[again]` will play `again.wav`. The wav
526
+ files are stored in the operators personal data directory. The filenames must be
527
+ in lowercase. See [Various data file locations](#various-data-file-locations)
528
+ above for the location of your data files. For me, the macro `[cq]` will play
529
+ `/home/mbridak/.local/share/not1mm/K6GTE/cq.wav`
433
530
 
434
- **The current wav files in place are not the ones you will want to use. They sound like an idiot.** You can use something like Audacity to record new wav files in your own voice.
531
+ **The current wav files in place are not the ones you will want to use. They
532
+ sound like an idiot.** You can use something like Audacity to record new wav
533
+ files in your own voice.
435
534
 
436
- Aside from the `[filename]` wav files, there are also NATO phonetic wav files for each letter and number. So if your macro key holds `{HISCALL} {SNT} {SENTNR}` and you have entered K5TUX in callsign field during CQ WW SSB while in CQ Zone 3. You'll here Kilo 5 Tango Uniform X-ray, 5 9 9, 3. Hopefully not in an idiots voice.
535
+ Aside from the `[filename]` wav files, there are also NATO phonetic wav files
536
+ for each letter and number. So if your macro key holds
537
+ `{HISCALL} {SNT} {SENTNR}` and you have entered K5TUX in callsign field during
538
+ CQ WW SSB while in CQ Zone 3. You'll here Kilo 5 Tango Uniform X-ray, 5 9 9, 3.
539
+ Hopefully not in an idiots voice.
437
540
 
438
541
  ## cty.dat and QRZ lookups for distance and bearing
439
542
 
440
- When a callsign is entered, a look up is first done in a cty.dat file to determin the country of origin, geographic center, cq zone and ITU region. Great circle calculations are done to determin the heading and distance from your gridsquare to the grographic center. This information then displayed at the bottom left.
543
+ When a callsign is entered, a look up is first done in a cty.dat file to
544
+ determin the country of origin, geographic center, cq zone and ITU region.
545
+ Great circle calculations are done to determin the heading and distance from
546
+ your gridsquare to the grographic center. This information then displayed at the
547
+ bottom left.
441
548
 
442
549
  ![snapshot of heading and distance](https://github.com/mbridak/not1mm/raw/master/pic/heading_distance.png)
443
550
 
444
- After this, a request is made to QRZ for the gridsquare of the callsign. If there is a response the information is recalculated and displayed. You'll know is this has happened, since the gridsquare will replace the word "Regional".
551
+ After this, a request is made to QRZ for the gridsquare of the callsign. If
552
+ there is a response the information is recalculated and displayed. You'll know
553
+ is this has happened, since the gridsquare will replace the word "Regional".
445
554
 
446
555
  ![snapshot of heading and distance](https://github.com/mbridak/not1mm/raw/master/pic/heading_distance_qrz.png)
447
556
 
@@ -483,11 +592,14 @@ After this, a request is made to QRZ for the gridsquare of the callsign. If ther
483
592
 
484
593
  `Window`>`Log Window`
485
594
 
486
- The Log display gets updated automatically when a contact is entered. The top half is a list of all contacts.
595
+ The Log display gets updated automatically when a contact is entered. The top
596
+ half is a list of all contacts.
487
597
 
488
598
  ![Log Display Window](https://github.com/mbridak/not1mm/raw/master/pic/logdisplay.png)
489
599
 
490
- The bottom half of the log displays contacts sorted by what's currently in the call entry field. The columns displayed in the log window are dependant on what contests is currently active.
600
+ The bottom half of the log displays contacts sorted by what's currently in the
601
+ call entry field. The columns displayed in the log window are dependant on what
602
+ contests is currently active.
491
603
 
492
604
  #### Editing a contact
493
605
 
@@ -499,11 +611,15 @@ You can also Right-Click on a cell to bring up the edit dialog.
499
611
 
500
612
  ![right click edit dialog](https://github.com/mbridak/not1mm/raw/master/pic/edit_dialog.png)
501
613
 
502
- You can not directly edit the multiplier status of a contact. Instead see the next section on recalculating mults. If you change the callsign make sure the `WPX` field is still valid.
614
+ You can not directly edit the multiplier status of a contact. Instead see the
615
+ next section on recalculating mults. If you change the callsign make sure the
616
+ `WPX` field is still valid.
503
617
 
504
618
  ## Recalulate Mults
505
619
 
506
- After editing a contact and before generating a Cabrillo file. There is a Misc menu option that will recalculate the multipliers incase an edit had caused a change.
620
+ After editing a contact and before generating a Cabrillo file. There is a Misc
621
+ menu option that will recalculate the multipliers incase an edit had caused a
622
+ change.
507
623
 
508
624
  ## Bandmap
509
625
 
@@ -511,27 +627,38 @@ After editing a contact and before generating a Cabrillo file. There is a Misc m
511
627
 
512
628
  Put your callsign in the top and press the connect button.
513
629
 
514
- The bandmap window is, as with everything, a work in progress. The bandmap now follows the VFO.
630
+ The bandmap window is, as with everything, a work in progress. The bandmap now
631
+ follows the VFO.
515
632
 
516
633
  ![Bandmap Window](https://github.com/mbridak/not1mm/raw/master/pic/bandmap.png)
517
634
 
518
- VFO indicator now displays as small triangle in the frequency tickmarks. A small blue rectangle shows the receivers bandwidth if one is reported.
635
+ VFO indicator now displays as small triangle in the frequency tickmarks. A small
636
+ blue rectangle shows the receivers bandwidth if one is reported.
519
637
 
520
638
  ![Bandmap Window](https://github.com/mbridak/not1mm/raw/master/pic/VFO_and_bandwidth_markers.png)
521
639
 
522
- Clicked on spots now tune the radio and set the callsign field. Previously worked calls are displayed in red.
640
+ Clicked on spots now tune the radio and set the callsign field. Previously
641
+ worked calls are displayed in red.
523
642
 
524
643
  ## Check Window
525
644
 
526
645
  `Window`>`Check Window`
527
646
 
528
- As you enter a callsign, the Check Window will show probable matches to calls either in the MASTER.SCP file, your local log or the recent telnet spots. The MASTER.SCP column will show results for strings of 3 or more matching characters from the start of the call string. The local log and telnet columns will show matches of any length appearing anywhere in the string.
647
+ As you enter a callsign, the Check Window will show probable matches to calls
648
+ either in the MASTER.SCP file, your local log or the recent telnet spots. The
649
+ MASTER.SCP column will show results for strings of 3 or more matching characters
650
+ from the start of the call string. The local log and telnet columns will show
651
+ matches of any length appearing anywhere in the string.
652
+
653
+ Clicking on any of these items will change the callsign field.
529
654
 
530
655
  ![Check Window](https://github.com/mbridak/not1mm/raw/master/pic/checkwindow.png)
531
656
 
532
657
  ## Remote VFO
533
658
 
534
- You can control the VFO on a remote rig by following the directions listed in the link below. It's a small hardware project with a BOM of under $20, and consisting of two parts.
659
+ You can control the VFO on a remote rig by following the directions listed in
660
+ the link below. It's a small hardware project with a BOM of under $20, and
661
+ consisting of two parts.
535
662
 
536
663
  1. Making the [VFO](https://github.com/mbridak/not1mm/blob/master/usb_vfo_knob/vfo.md)...
537
664
  2. Then... `Window`>`VFO`
@@ -552,7 +679,8 @@ K6GTE_CANADA-DAY_2023-09-04_07-47-05.log
552
679
 
553
680
  Look, a log [eh](https://www.youtube.com/watch?v=El41sHXck-E)?
554
681
 
555
- [This](https://www.youtube.com/watch?v=oMI23JJUpGE) outlines some differences between ARRL Field Day and Canada Day.
682
+ [This](https://www.youtube.com/watch?v=oMI23JJUpGE) outlines some differences
683
+ between ARRL Field Day and Canada Day.
556
684
 
557
685
  ## ADIF
558
686
 
@@ -568,26 +696,43 @@ Added dupe checking. Big Red 'Dupe' will appear if it's a dupe...
568
696
 
569
697
  ## Contest specific notes
570
698
 
571
- I found it might be beneficial to have a section devoted to wierd quirky things about operating a specific contests.
699
+ I found it might be beneficial to have a section devoted to wierd quirky things
700
+ about operating a specific contests.
572
701
 
573
702
  ### ARRL Sweekstakes
574
703
 
575
704
  #### The exchange parser
576
705
 
577
- This was a pain in the tukus. There are so many elements to the exchange, and one input field aside from the callsign field. So I had to write sort of a 'parser'. The parser moves over your input string following some basic rules and is re-evaluated with each keypress and the parsed result will be displayed in the label over the field. The exchange looks like `124 A K6GTE 17 ORG`, a Serial number, Precidence, Callsign, Year Licenced and Section. even though the callsign is given as part of the exchange, the callsign does not have to be entered and is pulled from the callsign field. If the exchange was entered as `124 A 17 ORG` you would see:
706
+ This was a pain in the tukus. There are so many elements to the exchange, and
707
+ one input field aside from the callsign field. So I had to write sort of a
708
+ 'parser'. The parser moves over your input string following some basic rules and
709
+ is re-evaluated with each keypress and the parsed result will be displayed in
710
+ the label over the field. The exchange looks like `124 A K6GTE 17 ORG`, a Serial
711
+ number, Precidence, Callsign, Year Licenced and Section. even though the
712
+ callsign is given as part of the exchange, the callsign does not have to be
713
+ entered and is pulled from the callsign field. If the exchange was entered as
714
+ `124 A 17 ORG` you would see:
578
715
 
579
716
  ![SS Parser Result](https://github.com/mbridak/not1mm/raw/master/pic/ss_parser_1.png)
580
717
 
581
- You can enter the serial number and precidence, or the year and section as pairs. For instance `124A 17ORG`. This would ensure the values get parsed correctly.
718
+ You can enter the serial number and precidence, or the year and section as
719
+ pairs. For instance `124A 17ORG`. This would ensure the values get parsed
720
+ correctly.
582
721
 
583
- You do not have to go back to correct typing. You can just tack the correct items to the end of the field and the older values will get overwritten. So if you entered `124A 17ORG Q`, the precidence will change from A to Q. If you need to change the serial number you must append the precidence to it, `125A`.
722
+ You do not have to go back to correct typing. You can just tack the correct
723
+ items to the end of the field and the older values will get overwritten. So if
724
+ you entered `124A 17ORG Q`, the precidence will change from A to Q. If you need
725
+ to change the serial number you must append the precidence to it, `125A`.
584
726
 
585
- If the callsign was entered wrong in the callsign field, you can put the correct callsign some where in the exchange. As long as it shows up in the parsed label above correctly your good.
727
+ If the callsign was entered wrong in the callsign field, you can put the correct
728
+ callsign some where in the exchange. As long as it shows up in the parsed label
729
+ above correctly your good.
586
730
 
587
731
  The best thing you can do is play around with it to see how it behaves.
588
732
 
589
733
  #### The exchange
590
734
 
591
- In the `Sent Exchange` field of the New Contest dialog put in the Precidence, Call, Check and Section. Example: `A K6GTE 17 ORG`.
735
+ In the `Sent Exchange` field of the New Contest dialog put in the Precidence,
736
+ Call, Check and Section. Example: `A K6GTE 17 ORG`.
592
737
 
593
738
  For the Run Exchange macro I'd put `{HISCALL} # A K6GTE 17 ORG`.