not1mm 24.7.25.1__py3-none-any.whl → 24.7.28__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
@@ -1264,6 +1264,12 @@ class MainWindow(QtWidgets.QMainWindow):
1264
1264
  else:
1265
1265
  self.cw_speed.hide()
1266
1266
 
1267
+ if hasattr(self.contest, "ft8_handler"):
1268
+ self.contest.set_self(self)
1269
+ self.ft8.set_callback(self.contest.ft8_handler)
1270
+ else:
1271
+ self.ft8.set_callback(None)
1272
+
1267
1273
  self.clearinputs()
1268
1274
  cmd = {}
1269
1275
  cmd["cmd"] = "NEWDB"
@@ -1655,6 +1661,12 @@ class MainWindow(QtWidgets.QMainWindow):
1655
1661
  if self.cw.servertype == 1:
1656
1662
  self.cw.sendcw("\x1b4")
1657
1663
  return
1664
+ if self.rig_control:
1665
+ if self.rig_control.online:
1666
+ if self.pref.get("cwtype") == 3 and self.rig_control is not None:
1667
+ if self.rig_control.interface == "flrig":
1668
+ self.rig_control.cat.set_flrig_cw_send(False)
1669
+ self.rig_control.cat.set_flrig_cw_send(True)
1658
1670
  if event.key() == Qt.Key.Key_Up:
1659
1671
  cmd = {}
1660
1672
  cmd["cmd"] = "PREVSPOT"
@@ -2867,12 +2879,15 @@ class MainWindow(QtWidgets.QMainWindow):
2867
2879
  None
2868
2880
  """
2869
2881
 
2870
- if mode in ("CW", "CW-U", "CW-L"):
2882
+ if mode in ("CW", "CW-U", "CW-L", "CWR"):
2871
2883
  self.setmode("CW")
2872
2884
  self.radio_state["mode"] = "CW"
2873
2885
  if self.rig_control:
2874
2886
  if self.rig_control.online:
2875
2887
  self.rig_control.set_mode("CW")
2888
+ if self.pref.get("cwtype") == 3 and self.rig_control is not None:
2889
+ if self.rig_control.interface == "flrig":
2890
+ self.rig_control.cat.set_flrig_cw_send(True)
2876
2891
  band = getband(str(self.radio_state.get("vfoa", "0.0")))
2877
2892
  self.set_band_indicator(band)
2878
2893
  self.set_window_title()
@@ -3019,7 +3034,7 @@ class MainWindow(QtWidgets.QMainWindow):
3019
3034
 
3020
3035
  def setmode(self, mode: str) -> None:
3021
3036
  """Call when the mode changes."""
3022
- if mode in ("CW", "CW-U", "CW-L"):
3037
+ if mode in ("CW", "CW-U", "CW-L", "CWR"):
3023
3038
  if self.current_mode != "CW":
3024
3039
  self.current_mode = "CW"
3025
3040
  self.sent.setText("599")
@@ -3149,7 +3164,7 @@ class MainWindow(QtWidgets.QMainWindow):
3149
3164
  info_dirty = True
3150
3165
  self.radio_state["bw"] = bw
3151
3166
 
3152
- if mode in ("CW", "CW-U", "CW-L"):
3167
+ if mode in ("CW", "CW-U", "CW-L", "CWR"):
3153
3168
  self.setmode(mode)
3154
3169
  if mode == "LSB" or mode == "USB":
3155
3170
  self.setmode("SSB")
@@ -3379,7 +3394,6 @@ def run() -> None:
3379
3394
  f"Resolved OS file system paths: MODULE_PATH {fsutils.MODULE_PATH}, USER_DATA_PATH {fsutils.USER_DATA_PATH}, CONFIG_PATH {fsutils.CONFIG_PATH}"
3380
3395
  )
3381
3396
  install_icons()
3382
- # timer.start(250)
3383
3397
  sys.exit(app.exec())
3384
3398
 
3385
3399
 
@@ -3403,15 +3417,9 @@ app = QtWidgets.QApplication(sys.argv)
3403
3417
  families = load_fonts_from_dir(os.fspath(fsutils.APP_DATA_PATH))
3404
3418
  logger.info(f"font families {families}")
3405
3419
  window = MainWindow()
3406
- # height = window.pref.get("window_height", 300)
3407
- # width = window.pref.get("window_width", 700)
3408
- # x = window.pref.get("window_x", -1)
3409
- # y = window.pref.get("window_y", -1)
3410
- # window.setGeometry(x, y, width, height)
3411
3420
  window.callsign.setFocus()
3412
3421
  window.show()
3413
- # timer = QtCore.QTimer()
3414
- # timer.timeout.connect(window.poll_radio)
3422
+
3415
3423
 
3416
3424
  if __name__ == "__main__":
3417
3425
  run()
@@ -131,10 +131,9 @@ class CAT:
131
131
 
132
132
  def sendcwxmlrpc(self, texttosend):
133
133
  """..."""
134
- print(f"{texttosend=}")
134
+ logger.debug(f"{texttosend=}")
135
135
  try:
136
136
  self.online = True
137
- self.server.rig.cwio_send(1)
138
137
  self.server.rig.cwio_text(texttosend)
139
138
  return
140
139
  except (
@@ -145,10 +144,27 @@ class CAT:
145
144
  http.client.ResponseNotReady,
146
145
  ) as exception:
147
146
  self.online = False
148
- print("sendcwxmlrpc: %s", f"{exception}")
149
- # logger.debug("sendcwxmlrpc: %s", f"{exception}")
147
+ logger.debug("%s", f"{exception}")
150
148
  return False
151
149
 
150
+ def set_flrig_cw_send(self, send: bool):
151
+ """..."""
152
+ if self.interface == "rigctld":
153
+ return
154
+ try:
155
+ self.online = True
156
+ self.server.rig.cwio_send(int(send))
157
+ except (
158
+ ConnectionRefusedError,
159
+ xmlrpc.client.Fault,
160
+ http.client.BadStatusLine,
161
+ http.client.CannotSendRequest,
162
+ http.client.ResponseNotReady,
163
+ ValueError,
164
+ ) as exception:
165
+ self.online = False
166
+ logger.debug("%s", f"{exception}")
167
+
152
168
  def get_vfo(self) -> str:
153
169
  """Poll the radio for current vfo using the interface"""
154
170
  vfo = ""
not1mm/lib/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "24.7.25.1"
3
+ __version__ = "24.7.28"
@@ -13,6 +13,8 @@ from not1mm.lib.version import __version__
13
13
 
14
14
  logger = logging.getLogger(__name__)
15
15
 
16
+ ALTEREGO = None
17
+
16
18
  EXCHANGE_HINT = "1D ORG"
17
19
 
18
20
  name = "ARRL Field Day"
@@ -319,3 +321,48 @@ def cabrillo(self):
319
321
 
320
322
  def recalculate_mults(self):
321
323
  """Recalculates multipliers after change in logged qso."""
324
+
325
+
326
+ def set_self(the_outie):
327
+ """..."""
328
+ globals()["ALTEREGO"] = the_outie
329
+
330
+
331
+ def ft8_handler(the_packet: dict):
332
+ """Process FT8 QSO packets
333
+
334
+ {
335
+ 'CALL': 'KE0OG',
336
+ 'GRIDSQUARE': 'DM10AT',
337
+ 'MODE': 'FT8',
338
+ 'RST_SENT': '',
339
+ 'RST_RCVD': '',
340
+ 'QSO_DATE': '20210329',
341
+ 'TIME_ON': '183213',
342
+ 'QSO_DATE_OFF': '20210329',
343
+ 'TIME_OFF': '183213',
344
+ 'BAND': '20M',
345
+ 'FREQ': '14.074754',
346
+ 'STATION_CALLSIGN': 'K6GTE',
347
+ 'MY_GRIDSQUARE': 'DM13AT',
348
+ 'CONTEST_ID': 'ARRL-FIELD-DAY',
349
+ 'SRX_STRING': '1D UT',
350
+ 'CLASS': '1D',
351
+ 'ARRL_SECT': 'UT'
352
+ }
353
+
354
+ """
355
+ print(f"{the_packet=}")
356
+
357
+ if ALTEREGO is not None:
358
+
359
+ ALTEREGO.callsign.setText(the_packet.get("CALL"))
360
+ ALTEREGO.contact["Call"] = the_packet.get("CALL", "")
361
+ ALTEREGO.contact["SNT"] = ALTEREGO.sent.text()
362
+ ALTEREGO.contact["RCV"] = ALTEREGO.receive.text()
363
+ ALTEREGO.contact["Exchange1"] = the_packet.get("CLASS", "ERR")
364
+ ALTEREGO.contact["Sect"] = the_packet.get("ARRL_SECT", "ERR")
365
+ ALTEREGO.contact["Mode"] = "FT8"
366
+ ALTEREGO.other_1.setText(the_packet.get("CLASS", "ERR"))
367
+ ALTEREGO.other_2.setText(the_packet.get("ARRL_SECT", "ERR"))
368
+ print(f"\n{ALTEREGO.contact=}\n")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.7.25.1
3
+ Version: 24.7.28
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
@@ -223,6 +223,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
223
223
 
224
224
  ## Recent Changes
225
225
 
226
+ - [24-7-28] Second try at flrig CW.
226
227
  - [24-7-25-1] Have VFO dock widget handle disconnect/reconnect events of the USB VFO knob more gracefully.
227
228
  - [24-7-25] Updated application categories for the desktop file.
228
229
  - [24-7-25] Maybe let flrig send CW... Probably not.
@@ -1,5 +1,5 @@
1
1
  not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- not1mm/__main__.py,sha256=yVBck7JN7jIc49RvxkHhMI9QphC85pLufOH7Uul738o,120573
2
+ not1mm/__main__.py,sha256=3I8eJQEfM6RHZnJmXwK_VtdU1ZPcSNPlvtgziQuzGf4,121134
3
3
  not1mm/bandmap.py,sha256=Ml5DDoybk_I56q2WLYDKE4lfmh6pb9XxW0qpl5nDFYY,32161
4
4
  not1mm/checkwindow.py,sha256=zHxkCQ4BJ-pN80dSTQdiKq8RqY4oWzJveXZhQ2bu3PY,10436
5
5
  not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
@@ -91,7 +91,7 @@ not1mm/data/phonetics/yourcall.wav,sha256=4kheHJmCiRDL2kjhlgXQ8_u_eEMgKxiNGu5UBk
91
91
  not1mm/data/phonetics/z.wav,sha256=arafCi7fwmBLdVDI-PRyaL4U-03PIQDhffwY5noJ_2c,51768
92
92
  not1mm/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
93
  not1mm/lib/about.py,sha256=sWycfGcruN3SaEe4JmaJ61K6D8Itq0WxpUYT-lEcmYM,416
94
- not1mm/lib/cat_interface.py,sha256=-ri3woVU_Q7r7usf5y15lm_9CQVxTgBYn2CSXt48ihg,18390
94
+ not1mm/lib/cat_interface.py,sha256=2Tzez8wO9ZATjheWkHRWTMi2jkt40W6tT7BNBbjVzuI,18839
95
95
  not1mm/lib/cwinterface.py,sha256=Q8p3pScOHczZ8ptICfH1Yu6rCEwQJLgrNwYMN76B2i8,3389
96
96
  not1mm/lib/database.py,sha256=RQoj3JsTejMiiFIN42lY3N4jrj80htftdoFeRqVKnKs,42480
97
97
  not1mm/lib/edit_contact.py,sha256=Ki9bGPpqyQQBB1cU8VIBDCal3lbXeQ6qxhzklmhE2_w,353
@@ -109,7 +109,7 @@ not1mm/lib/plugin_common.py,sha256=AAKBPCXzTWZJb-h08uPNnHVG7bSCg7kwukc211gFivY,8
109
109
  not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
110
110
  not1mm/lib/settings.py,sha256=MWiKXbasaFbzeHTjfzTaTqbCBrIijudP_-0a5jNmUAA,9265
111
111
  not1mm/lib/super_check_partial.py,sha256=p5l3u2ZOCBtlWgbvskC50FpuoaIpR07tfC6zTdRWbh4,2334
112
- not1mm/lib/version.py,sha256=vCCHd-NGTIRQF1HQqLA4TFjkjFR_ZtwCDpkOE8lTF1M,50
112
+ not1mm/lib/version.py,sha256=b0kTxuIhWdsBX0VMhy3fn3YyF3XFCxs03DFSvGpgZjU,48
113
113
  not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
114
114
  not1mm/plugins/10_10_fall_cw.py,sha256=IttjX1yy4nDdACGsiYlPteFG8eVseX_WtoFio6bqHE8,10953
115
115
  not1mm/plugins/10_10_spring_cw.py,sha256=ThCptdM3dX4ywhoy2JRcOEyHSqcJolFaT7O_PYzM1Mg,10958
@@ -119,7 +119,7 @@ not1mm/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
119
  not1mm/plugins/arrl_10m.py,sha256=EyNRb3Sm0Qb-GVm0p05EnadlHisVh7y-sKTBP2ddMLo,13768
120
120
  not1mm/plugins/arrl_dx_cw.py,sha256=LVnYDNFEUiIpQ1TlhOCcRK7JNwH5XPO5WzUoApSUMTY,13802
121
121
  not1mm/plugins/arrl_dx_ssb.py,sha256=fUFzuNbCAfA5sQSYm8ISV3P9Z_2xnuKeOdO6E66zn1k,13805
122
- not1mm/plugins/arrl_field_day.py,sha256=OSro24LsSVW41yecKziWQMjflJbo62P8C53Q3M3-Lb0,10052
122
+ not1mm/plugins/arrl_field_day.py,sha256=bMBrww0-zBnkrLY3JsG1tXumeWGDWgLi1QZiPtriFqE,11387
123
123
  not1mm/plugins/arrl_rtty_ru.py,sha256=hKUS4isjdXo3EYxQrsqsDupPp2chW8fpoWj0T1pTgJ4,7994
124
124
  not1mm/plugins/arrl_ss_cw.py,sha256=4yN68xZMuJRaSUfdiY4hafC07A3lifl5q6DEUZ-oYPQ,13080
125
125
  not1mm/plugins/arrl_ss_phone.py,sha256=Yzc5sNjrY8TlnozbYF6k8hbEamyDuUAD_3-BNqHgXqY,13068
@@ -145,9 +145,9 @@ not1mm/plugins/naqp_ssb.py,sha256=VLWVrSzI0UP1AhSXYn61eZ7or1rz6a_pS_xCKfgS4Jw,11
145
145
  not1mm/plugins/phone_weekly_test.py,sha256=fLpMe03WB9_KgRl6vMgQQt_aktFdqfNt2Sw81CTRAUs,12325
146
146
  not1mm/plugins/stew_perry_topband.py,sha256=CKBQbYl4ETxhXJd2dma4fg_C5pag_s7Nf61SCztZtqE,10668
147
147
  not1mm/plugins/winter_field_day.py,sha256=4rcfRtobwjHO6BNL3WOTHzBmyyeuX79BNGBG8PfjrI8,10238
148
- not1mm-24.7.25.1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
149
- not1mm-24.7.25.1.dist-info/METADATA,sha256=F72Ht3kFbVRg_dd4Y24UagfXACEBvjkEvrQO9ScxBRU,29413
150
- not1mm-24.7.25.1.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
151
- not1mm-24.7.25.1.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
152
- not1mm-24.7.25.1.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
153
- not1mm-24.7.25.1.dist-info/RECORD,,
148
+ not1mm-24.7.28.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
149
+ not1mm-24.7.28.dist-info/METADATA,sha256=KLA7jJ_PK9Xk5W2b7U2UO451JFnOznjizaMPmMTdsDA,29447
150
+ not1mm-24.7.28.dist-info/WHEEL,sha256=Rp8gFpivVLXx-k3U95ozHnQw8yDcPxmhOpn_Gx8d5nc,91
151
+ not1mm-24.7.28.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
152
+ not1mm-24.7.28.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
153
+ not1mm-24.7.28.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (71.1.0)
2
+ Generator: setuptools (72.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5