not1mm 25.3.5__py3-none-any.whl → 25.3.14__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
@@ -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:
not1mm/lib/version.py CHANGED
@@ -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
@@ -1,5 +1,5 @@
1
1
  not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- not1mm/__main__.py,sha256=ImYkGDI_vV26zkLHRhpABSaCcVV5mdHzV2I3g0aQXTc,148862
2
+ not1mm/__main__.py,sha256=wAXxJ1iEt-sQWOY7ULvrbmBucI_u4sdAXlmJb-3lbUc,148992
3
3
  not1mm/bandmap.py,sha256=mdSK6oj8plEmr6WVYkzPTCfsHWKl9lea3R14cmRsAI4,31531
4
4
  not1mm/checkwindow.py,sha256=VFAcKYTcoWhmIf91chwY6tyao9FQMWPiUkgDDkkWaog,9670
5
5
  not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
@@ -112,11 +112,11 @@ not1mm/lib/lookup.py,sha256=KECMDi9tflRDzgTLeDfDl7HGWWRHvW3HCjNHyyjoWaY,10835
112
112
  not1mm/lib/multicast.py,sha256=KJcruI-bOuHfHXPjl3SGQhL6I9sKrygy-sdFSvxffUM,3255
113
113
  not1mm/lib/n1mm.py,sha256=H54mpgJF0GAmKavM-nb5OAq2SJFWYkux4eMWWiSRxJc,6288
114
114
  not1mm/lib/new_contest.py,sha256=IznTDMq7yXHB6zBoGUEC_WDYPCPpsSZW4wwMJi16zK0,816
115
- not1mm/lib/plugin_common.py,sha256=M5reDYM-v5IjAa2yTROvZTeTDkXYHb3U52W9mc9GxwA,13213
115
+ not1mm/lib/plugin_common.py,sha256=5tU1e_ES5bZFaLDbYWq7F7CXQ0RCQk7Y3yVF9L9y88Q,13287
116
116
  not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
117
117
  not1mm/lib/settings.py,sha256=mXffn8Xaj5KATPQinNBR0V5DbHWQPsRfh24_axWGYuk,15254
118
118
  not1mm/lib/super_check_partial.py,sha256=hwT2NRwobu0PLDyw6ltmbmcAtGBD02CKGFbgGWjXMqA,2334
119
- not1mm/lib/version.py,sha256=gi_0LSINxGfRh30abAqZxn7WgqDMd2zYr9AyHT3YSPc,47
119
+ not1mm/lib/version.py,sha256=HxJHa_9x2nSORFGcIkHxwbmfktrm-5LWGDSbJk5s0R0,48
120
120
  not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
121
121
  not1mm/plugins/10_10_fall_cw.py,sha256=5QUyGMvGBC-HxcY_z9QbfuxSg3f7p6C9K4qhTxgZE7k,14719
122
122
  not1mm/plugins/10_10_spring_cw.py,sha256=XjYFM263WYyG6nVQzPObW4YC7Z9L93rixSOcVsxPvH4,14722
@@ -127,7 +127,7 @@ not1mm/plugins/arrl_10m.py,sha256=EzVBMdyVtm4LWH-5YR_s--Z7dA8xXLOVTcnAW4ZmLFQ,18
127
127
  not1mm/plugins/arrl_160m.py,sha256=9SHfxjTX_LECOYDsICnoX_Q133atojsJbmFapehleYE,20236
128
128
  not1mm/plugins/arrl_dx_cw.py,sha256=BgGA5U2Jhy-QD4RLL27BWALnlCJ0HUZHNAY5HtHxUoo,18826
129
129
  not1mm/plugins/arrl_dx_ssb.py,sha256=kWFLV84VXFFKn3ThvIUw2RUvqnuNATFsXA_Jb9FD10g,18874
130
- not1mm/plugins/arrl_field_day.py,sha256=X7BLs87ikQEm1xuh2sSj-8KcFA9pqnut6uFGM2xJe7c,16743
130
+ not1mm/plugins/arrl_field_day.py,sha256=jQGn37qeJ7SIUxDCQBXumNxcfgBBtU6zqEOBZJu2MNQ,17477
131
131
  not1mm/plugins/arrl_rtty_ru.py,sha256=_NQUaIXinlY6gSa_f6J1nUpfZBGgg6SAoi1voDmmB20,20893
132
132
  not1mm/plugins/arrl_ss_cw.py,sha256=uv71xstpmBiDTyU5zF8pe6UIS-5v6hi0aMBksbPvCzc,17458
133
133
  not1mm/plugins/arrl_ss_phone.py,sha256=V3dgBXoLb3mWMbb1s-ovx-SoUBL5IxE8omkQbP7siwk,16794
@@ -167,9 +167,9 @@ not1mm/plugins/ref_ssb.py,sha256=Z_XmMpYKcI5dZh4TQqvQDcz-cLpMzpDEKBnb5iHeBLQ,215
167
167
  not1mm/plugins/stew_perry_topband.py,sha256=D1hekmMbx-i4BhaP2uzOK3OzaVVMMdgcN3RmfweNqHo,15341
168
168
  not1mm/plugins/weekly_rtty.py,sha256=rdlIrsxBeuj-RQc5OStVNF7sGCtBK5t6inN5Z7DI4tw,20066
169
169
  not1mm/plugins/winter_field_day.py,sha256=JK4r1vfxs7aADR7ZYbjZniz3f5s3_ipSQDZ0GRNWC7I,15222
170
- not1mm-25.3.5.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
171
- not1mm-25.3.5.dist-info/METADATA,sha256=_V3E4nKSoKm9lxIMjmwt4u7Gx1q4PpOfn4gCg3HjgMs,36289
172
- not1mm-25.3.5.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
173
- not1mm-25.3.5.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
174
- not1mm-25.3.5.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
175
- not1mm-25.3.5.dist-info/RECORD,,
170
+ not1mm-25.3.14.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
171
+ not1mm-25.3.14.dist-info/METADATA,sha256=G05nfJW7IjLC_FVBbGsMFS9mqX514awT1Ny6mqSH_gw,36787
172
+ not1mm-25.3.14.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
173
+ not1mm-25.3.14.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
174
+ not1mm-25.3.14.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
175
+ not1mm-25.3.14.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.2)
2
+ Generator: setuptools (76.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5