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 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
@@ -3,6 +3,7 @@
3
3
  <center>Donors</center>
4
4
  </h2>
5
5
  <hr />
6
+ <center>Adrian VA3NB</center>
6
7
  <center>Brian KB3ORR</center>
7
8
  <center>Connor KD9LSV</center>
8
9
 
@@ -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
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "24.11.19"
3
+ __version__ = "24.11.21"
@@ -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.19
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 >=23.6.21
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=fgtaA-ZkoYL0I8tuA1X3iitHgUtiRXYYzT6_fbbjfPE,142248
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=8hNzO3Q5a6p-_3egT1hfOjimPf810tKMUM5ukLzUsGM,116
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=ZSWXajCu38RI4d-VpGIUUjAMYSSMIPjaUrHkejJKmts,23908
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=TjfjB8wIB5oYQmLzecQzZe-pvYa2dd0cPEpXKiYh3AE,49
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=2-9We3wo6mbaNqE4GujgvpCsiaVYcNYloqDYO8MKQAc,2787
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.19.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
166
- not1mm-24.11.19.dist-info/METADATA,sha256=xHUlQiTW-vHdEhL_ucf88gQGfnM6VTia96FOyq4u91c,36490
167
- not1mm-24.11.19.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
168
- not1mm-24.11.19.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
169
- not1mm-24.11.19.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
170
- not1mm-24.11.19.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.5.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5