not1mm 24.11.19__py3-none-any.whl → 24.11.21__py3-none-any.whl
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.
- not1mm/__main__.py +2 -0
- not1mm/data/donors.html +1 -0
- not1mm/lib/cat_interface.py +16 -1
- not1mm/lib/version.py +1 -1
- not1mm/plugins/general_logging.py +113 -0
- {not1mm-24.11.19.dist-info → not1mm-24.11.21.dist-info}/METADATA +4 -4
- {not1mm-24.11.19.dist-info → not1mm-24.11.21.dist-info}/RECORD +11 -11
- {not1mm-24.11.19.dist-info → not1mm-24.11.21.dist-info}/WHEEL +1 -1
- {not1mm-24.11.19.dist-info → not1mm-24.11.21.dist-info}/LICENSE +0 -0
- {not1mm-24.11.19.dist-info → not1mm-24.11.21.dist-info}/entry_points.txt +0 -0
- {not1mm-24.11.19.dist-info → not1mm-24.11.21.dist-info}/top_level.txt +0 -0
not1mm/__main__.py
CHANGED
@@ -1971,6 +1971,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
1971
1971
|
if self.pref.get("cwtype") == 3 and self.rig_control is not None:
|
1972
1972
|
if self.rig_control.interface == "flrig":
|
1973
1973
|
self.rig_control.cat.set_flrig_cw_speed(self.cw_speed.value())
|
1974
|
+
elif self.rig_control.interface == "rigctld":
|
1975
|
+
self.rig_control.cat.set_rigctl_cw_speed(self.cw_speed.value())
|
1974
1976
|
|
1975
1977
|
def stop_cw(self):
|
1976
1978
|
""""""
|
not1mm/data/donors.html
CHANGED
not1mm/lib/cat_interface.py
CHANGED
@@ -9,7 +9,7 @@ rig.cwio_send n:i cwio transmit 1/0 (on/off)
|
|
9
9
|
command lines to test the CW API via XMLRPC
|
10
10
|
|
11
11
|
Setting WPM
|
12
|
-
curl -d "<?xml version='1.0'?><methodCall><methodName>rig.cwio_set_wpm</methodName><params><param><value><i4>28</i4></value></param></params></methodCall>" http://localhost:12345
|
12
|
+
curl -d "<?xml version='1.0'?><methodCall><methodName>rig.cwio_set_wpm</methodName><params><param><value><i4>28</i4></value></param></params></methodCall>" http://localhost:12345
|
13
13
|
|
14
14
|
Setting the text to send
|
15
15
|
curl -d "<?xml version='1.0'?><methodCall><methodName>rig.cwio_text</methodName><params><param><value><string>test test test</string></value></param></params></methodCall>" http://localhost:12345
|
@@ -178,6 +178,21 @@ class CAT:
|
|
178
178
|
self.__initialize_rigctrld()
|
179
179
|
return False
|
180
180
|
|
181
|
+
def set_rigctl_cw_speed(self, speed):
|
182
|
+
"""Set CW speed via rigctld"""
|
183
|
+
if self.rigctrlsocket:
|
184
|
+
try:
|
185
|
+
self.online = True
|
186
|
+
self.rigctrlsocket.send(bytes(f"L KEYSPD {speed}\n", "utf-8"))
|
187
|
+
_ = self.__get_serial_string()
|
188
|
+
return
|
189
|
+
except socket.error as exception:
|
190
|
+
self.online = False
|
191
|
+
logger.debug("set_level_rigctld: %s", f"{exception}")
|
192
|
+
self.rigctrlsocket = None
|
193
|
+
return
|
194
|
+
self.__initialize_rigctrld()
|
195
|
+
|
181
196
|
def sendcwxmlrpc(self, texttosend):
|
182
197
|
"""Add text to flrig's cw send buffer."""
|
183
198
|
logger.debug(f"{texttosend=}")
|
not1mm/lib/version.py
CHANGED
@@ -126,3 +126,116 @@ def cabrillo(self, file_encoding):
|
|
126
126
|
|
127
127
|
def recalculate_mults(self):
|
128
128
|
"""Recalculates multipliers after change in logged qso."""
|
129
|
+
|
130
|
+
|
131
|
+
def process_esm(self, new_focused_widget=None, with_enter=False):
|
132
|
+
"""ESM State Machine"""
|
133
|
+
|
134
|
+
# self.pref["run_state"]
|
135
|
+
|
136
|
+
# -----===== Assigned F-Keys =====-----
|
137
|
+
# self.esm_dict["CQ"]
|
138
|
+
# self.esm_dict["EXCH"]
|
139
|
+
# self.esm_dict["QRZ"]
|
140
|
+
# self.esm_dict["AGN"]
|
141
|
+
# self.esm_dict["HISCALL"]
|
142
|
+
# self.esm_dict["MYCALL"]
|
143
|
+
# self.esm_dict["QSOB4"]
|
144
|
+
|
145
|
+
# ----==== text fields ====----
|
146
|
+
# self.callsign
|
147
|
+
# self.sent
|
148
|
+
# self.receive
|
149
|
+
# self.other_1
|
150
|
+
# self.other_2
|
151
|
+
|
152
|
+
if new_focused_widget is not None:
|
153
|
+
self.current_widget = self.inputs_dict.get(new_focused_widget)
|
154
|
+
|
155
|
+
# print(f"checking esm {self.current_widget=} {with_enter=} {self.pref.get("run_state")=}")
|
156
|
+
|
157
|
+
for a_button in [
|
158
|
+
self.F1,
|
159
|
+
self.F2,
|
160
|
+
self.F3,
|
161
|
+
self.F4,
|
162
|
+
self.F5,
|
163
|
+
self.F6,
|
164
|
+
self.F7,
|
165
|
+
self.F8,
|
166
|
+
self.F9,
|
167
|
+
self.F10,
|
168
|
+
self.F11,
|
169
|
+
self.F12,
|
170
|
+
]:
|
171
|
+
self.restore_button_color(a_button)
|
172
|
+
|
173
|
+
buttons_to_send = []
|
174
|
+
|
175
|
+
if self.pref.get("run_state"):
|
176
|
+
if self.current_widget == "callsign":
|
177
|
+
if len(self.callsign.text()) < 3:
|
178
|
+
self.make_button_green(self.esm_dict["CQ"])
|
179
|
+
buttons_to_send.append(self.esm_dict["CQ"])
|
180
|
+
elif len(self.callsign.text()) > 2:
|
181
|
+
self.make_button_green(self.esm_dict["HISCALL"])
|
182
|
+
self.make_button_green(self.esm_dict["EXCH"])
|
183
|
+
buttons_to_send.append(self.esm_dict["HISCALL"])
|
184
|
+
buttons_to_send.append(self.esm_dict["EXCH"])
|
185
|
+
|
186
|
+
elif self.current_widget in ["other_1", "other_2"]:
|
187
|
+
if self.other_2.text() == "" and self.other_1.text() == "":
|
188
|
+
self.make_button_green(self.esm_dict["AGN"])
|
189
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
190
|
+
else:
|
191
|
+
self.make_button_green(self.esm_dict["QRZ"])
|
192
|
+
buttons_to_send.append(self.esm_dict["QRZ"])
|
193
|
+
buttons_to_send.append("LOGIT")
|
194
|
+
|
195
|
+
if with_enter is True and bool(len(buttons_to_send)):
|
196
|
+
for button in buttons_to_send:
|
197
|
+
if button:
|
198
|
+
if button == "LOGIT":
|
199
|
+
self.save_contact()
|
200
|
+
continue
|
201
|
+
self.process_function_key(button)
|
202
|
+
else:
|
203
|
+
if self.current_widget == "callsign":
|
204
|
+
if len(self.callsign.text()) > 2:
|
205
|
+
self.make_button_green(self.esm_dict["MYCALL"])
|
206
|
+
buttons_to_send.append(self.esm_dict["MYCALL"])
|
207
|
+
|
208
|
+
elif self.current_widget in ["other_1", "other_2"]:
|
209
|
+
if self.other_2.text() == "" and self.other_1.text() == "":
|
210
|
+
self.make_button_green(self.esm_dict["AGN"])
|
211
|
+
buttons_to_send.append(self.esm_dict["AGN"])
|
212
|
+
else:
|
213
|
+
self.make_button_green(self.esm_dict["EXCH"])
|
214
|
+
buttons_to_send.append(self.esm_dict["EXCH"])
|
215
|
+
buttons_to_send.append("LOGIT")
|
216
|
+
if with_enter is True and bool(len(buttons_to_send)):
|
217
|
+
for button in buttons_to_send:
|
218
|
+
if button:
|
219
|
+
if button == "LOGIT":
|
220
|
+
self.save_contact()
|
221
|
+
continue
|
222
|
+
self.process_function_key(button)
|
223
|
+
|
224
|
+
|
225
|
+
def populate_history_info_line(self):
|
226
|
+
result = self.database.fetch_call_history(self.callsign.text())
|
227
|
+
if result:
|
228
|
+
self.history_info.setText(
|
229
|
+
f"{result.get('Call', '')}, {result.get('Name', '')}, {result.get('UserText','...')}"
|
230
|
+
)
|
231
|
+
else:
|
232
|
+
self.history_info.setText("")
|
233
|
+
|
234
|
+
|
235
|
+
def check_call_history(self):
|
236
|
+
""""""
|
237
|
+
result = self.database.fetch_call_history(self.callsign.text())
|
238
|
+
if result:
|
239
|
+
self.history_info.setText(f"{result.get('UserText','')}")
|
240
|
+
if self.other_1.text() == "":
|
241
|
+
self.other_1.setText(f"{result.get('Name', '')}")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.11.
|
3
|
+
Version: 24.11.21
|
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
|
@@ -24,7 +24,7 @@ Requires-Dist: pyserial
|
|
24
24
|
Requires-Dist: sounddevice
|
25
25
|
Requires-Dist: soundfile
|
26
26
|
Requires-Dist: numpy
|
27
|
-
Requires-Dist: notctyparser
|
27
|
+
Requires-Dist: notctyparser>=23.6.21
|
28
28
|
Requires-Dist: rapidfuzz
|
29
29
|
Requires-Dist: appdata
|
30
30
|
Requires-Dist: Levenshtein
|
@@ -205,7 +205,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
205
205
|
|
206
206
|
## List of should be working contests, those in bold have ESM
|
207
207
|
|
208
|
-
- General Logging (There are better general loggers like QLog, KLog, CQRLog)
|
208
|
+
- **General Logging** (There are better general loggers like QLog, KLog, CQRLog)
|
209
209
|
- 10 10 Fall CW
|
210
210
|
- 10 10 Spring CW
|
211
211
|
- 10 10 Summer Phone
|
@@ -238,6 +238,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
238
238
|
|
239
239
|
## Recent Changes (Polishing the Turd)
|
240
240
|
|
241
|
+
- [24-11-21] Merged PR from alduhoo setting CW Speed via rigctld, Added ESM and call history support for General Logging.
|
241
242
|
- [24-11-19] Added ESM to Stew Perry, Phone Weekly, Medium Speed Test and JIDX.
|
242
243
|
- [24-11-18] Accepted PR from dg9vh for the DARC XMAS Contest.
|
243
244
|
- [24-11-17] Accepted PR from dg9vh for the LZ DX contest.
|
@@ -953,7 +954,6 @@ So if one were to go to `FILE -> LOAD CALL HISTORY FILE` and choose a downloaded
|
|
953
954
|
|
954
955
|
Where the Name and State would auto-populate and the UserText info apprears in the bottom left.
|
955
956
|
|
956
|
-
|
957
957
|
## Contest specific notes
|
958
958
|
|
959
959
|
I found it might be beneficial to have a section devoted to wierd quirky things
|
@@ -1,5 +1,5 @@
|
|
1
1
|
not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
not1mm/__main__.py,sha256=
|
2
|
+
not1mm/__main__.py,sha256=gTvMiyHVY5BEFCOCKT7_q6IkcYu1BDU3treXZk3jQ_8,142394
|
3
3
|
not1mm/bandmap.py,sha256=X6mMHXS1kXBbUPZCaKgiVJ6Dz6DE6LEQqtEXfT3telg,30811
|
4
4
|
not1mm/checkwindow.py,sha256=VFAcKYTcoWhmIf91chwY6tyao9FQMWPiUkgDDkkWaog,9670
|
5
5
|
not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
|
@@ -20,7 +20,7 @@ not1mm/data/configuration.ui,sha256=iva5exfJJFBiiITpz6vgCB8e_j0lgsLeVWOltxtUk4g,
|
|
20
20
|
not1mm/data/contests.sql,sha256=4hmJCDvrbxnA_Y5S4T5o52TZieeFk6QUwFerwlFePNA,89307
|
21
21
|
not1mm/data/cty.json,sha256=dPG9K1Pm4Rxd4uJom_gQ8y-sbqiZfILpl4kBAFnOveU,4877142
|
22
22
|
not1mm/data/cwmacros.txt,sha256=NztufsX6R52gAO7VyJ2AHr7wOh41pJTwHKh5Lcs32ds,468
|
23
|
-
not1mm/data/donors.html,sha256=
|
23
|
+
not1mm/data/donors.html,sha256=XCh7XR5SyPzFx88UEaNLIGg41bMVcaNEO5L_c9Lrd2k,146
|
24
24
|
not1mm/data/editcontact.ui,sha256=TNOsXETYfDaON4wj6AkzCJ-n2SmbNRO2-g2SLl5m8s0,27437
|
25
25
|
not1mm/data/editmacro.ui,sha256=Vg-S62ogKYcWlDDlza_JYyZkCQfa8mCfF-cFqpBej-w,2700
|
26
26
|
not1mm/data/greendot.png,sha256=6h6KFMj5mmu07ppPWXXewH0PLAvbOOre-5z6rpzWLLo,474
|
@@ -95,7 +95,7 @@ not1mm/data/phonetics/yourcall.wav,sha256=4kheHJmCiRDL2kjhlgXQ8_u_eEMgKxiNGu5UBk
|
|
95
95
|
not1mm/data/phonetics/z.wav,sha256=arafCi7fwmBLdVDI-PRyaL4U-03PIQDhffwY5noJ_2c,51768
|
96
96
|
not1mm/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
97
97
|
not1mm/lib/about.py,sha256=sWycfGcruN3SaEe4JmaJ61K6D8Itq0WxpUYT-lEcmYM,416
|
98
|
-
not1mm/lib/cat_interface.py,sha256
|
98
|
+
not1mm/lib/cat_interface.py,sha256=-RGssRLL8_iuf6hPAsQZ9itoDISTx0XT-nD3jJ4LKss,24475
|
99
99
|
not1mm/lib/cwinterface.py,sha256=yQL8Dif9oOIynaRItHgvcmu4mYv1TnTpqCHPtkeb09o,4472
|
100
100
|
not1mm/lib/database.py,sha256=nqWp2eJ7JfUTqaQ9AVbx3XjgtlRnYY9ruTQCv2YRreY,48310
|
101
101
|
not1mm/lib/edit_contact.py,sha256=Ki9bGPpqyQQBB1cU8VIBDCal3lbXeQ6qxhzklmhE2_w,353
|
@@ -114,7 +114,7 @@ not1mm/lib/plugin_common.py,sha256=AABdx9DoTT8Znrup7AkfmKGC22hshMsEypiMqV0iKw0,1
|
|
114
114
|
not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
|
115
115
|
not1mm/lib/settings.py,sha256=Xt0WE2ro_kUYdugQ0Pe1SQX07MHrJ0jyQqDqAKKqxuU,13564
|
116
116
|
not1mm/lib/super_check_partial.py,sha256=hwT2NRwobu0PLDyw6ltmbmcAtGBD02CKGFbgGWjXMqA,2334
|
117
|
-
not1mm/lib/version.py,sha256=
|
117
|
+
not1mm/lib/version.py,sha256=2KuOTzQ3XUC08hkaFvx9RVIiA2YL9VANgy4nxwliSJQ,49
|
118
118
|
not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
|
119
119
|
not1mm/plugins/10_10_fall_cw.py,sha256=r2YkRNiMS_3hXrf3zeiijzW24roilyIXnwXwTd07X8M,11208
|
120
120
|
not1mm/plugins/10_10_spring_cw.py,sha256=EBBcVgxDhtAK7cGHq9LOU6LhY9vSqlk7GEkApn3KRYM,11213
|
@@ -142,7 +142,7 @@ not1mm/plugins/cq_ww_rtty.py,sha256=Pfpr8xWJwp2NOci-WQMTUZaMpAtsUGq1jrIIUv6lQ2Y,
|
|
142
142
|
not1mm/plugins/cq_ww_ssb.py,sha256=2zhIbqthXLekQhK22icOScegm6kYZLbmpPMZYEmIM5I,17001
|
143
143
|
not1mm/plugins/cwt.py,sha256=3gA1DqiXxj5NARdG5i0PyFmuq3XSXn6LisZxD5jFs4M,17034
|
144
144
|
not1mm/plugins/darc_xmas.py,sha256=GdtAQVCLogKGzZaexJfzsZms5SbLLlO1YweFPjgvYWw,18458
|
145
|
-
not1mm/plugins/general_logging.py,sha256=
|
145
|
+
not1mm/plugins/general_logging.py,sha256=NV_FCgpAEEQrVRxMDD7nQ2krJgPrhtopizxrGndtUNk,6686
|
146
146
|
not1mm/plugins/helvetia.py,sha256=SRKn7jflfYPUNrvmErDM44af5YWUe57h7JkIwFSbT0Q,19609
|
147
147
|
not1mm/plugins/iaru_fieldday_r1_cw.py,sha256=b-WA-KcixXNTozO5lfqujeCBXFRuM_Ubm_9MIwlrhIs,13555
|
148
148
|
not1mm/plugins/iaru_fieldday_r1_ssb.py,sha256=gQH2XQuE-ywaGq2sde-sPP1_C6_Y81v3FPDiE2BJixA,13560
|
@@ -162,9 +162,9 @@ not1mm/plugins/ref_ssb.py,sha256=G2Gz4kApchmOZQVnBexEokSEvdb-mZWJAfyJ1D6JDGY,204
|
|
162
162
|
not1mm/plugins/stew_perry_topband.py,sha256=Gy_vv6tgkR-3vmvsUVO0pVfHMkUJSxpt7G4secn0RH8,15084
|
163
163
|
not1mm/plugins/weekly_rtty.py,sha256=PI0_AtEdZZKGAuKnP-b2EYn9xwCN1Ablk38trbNP3Rc,19603
|
164
164
|
not1mm/plugins/winter_field_day.py,sha256=9w3tDL9ZWiENSTERc3vzDbBktvI7pnyNvlH6fDjAi08,14841
|
165
|
-
not1mm-24.11.
|
166
|
-
not1mm-24.11.
|
167
|
-
not1mm-24.11.
|
168
|
-
not1mm-24.11.
|
169
|
-
not1mm-24.11.
|
170
|
-
not1mm-24.11.
|
165
|
+
not1mm-24.11.21.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
166
|
+
not1mm-24.11.21.dist-info/METADATA,sha256=xa2JnhPq2yIm7akc8rqc6RMn53bqVd5LqqAoHIfevns,36614
|
167
|
+
not1mm-24.11.21.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
168
|
+
not1mm-24.11.21.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
169
|
+
not1mm-24.11.21.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
|
170
|
+
not1mm-24.11.21.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|