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 +27 -23
- not1mm/lib/plugin_common.py +1 -0
- not1mm/lib/version.py +1 -1
- not1mm/plugins/arrl_field_day.py +21 -0
- {not1mm-25.3.5.dist-info → not1mm-25.3.14.dist-info}/METADATA +9 -3
- {not1mm-25.3.5.dist-info → not1mm-25.3.14.dist-info}/RECORD +10 -10
- {not1mm-25.3.5.dist-info → not1mm-25.3.14.dist-info}/WHEEL +1 -1
- {not1mm-25.3.5.dist-info → not1mm-25.3.14.dist-info}/LICENSE +0 -0
- {not1mm-25.3.5.dist-info → not1mm-25.3.14.dist-info}/entry_points.txt +0 -0
- {not1mm-25.3.5.dist-info → not1mm-25.3.14.dist-info}/top_level.txt +0 -0
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
|
3484
|
-
self.rig_control.
|
3485
|
-
|
3486
|
-
if self.
|
3487
|
-
self.
|
3488
|
-
|
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
|
3509
|
-
self.rig_control.
|
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
|
3531
|
-
self.rig_control.
|
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
|
-
|
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
|
3760
|
-
self.rig_control.
|
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
|
-
|
3793
|
-
|
3794
|
-
|
3795
|
-
|
3796
|
-
|
3797
|
-
|
3798
|
-
|
3799
|
-
|
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)
|
not1mm/lib/plugin_common.py
CHANGED
@@ -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
not1mm/plugins/arrl_field_day.py
CHANGED
@@ -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.
|
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
|
-
|
923
|
-
go to `FILE -> Configuration Settings`
|
925
|
+
To use Call History files, go to `FILE -> Configuration Settings`
|
924
926
|
|
925
927
|

|
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=
|
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=
|
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=
|
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=
|
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.
|
171
|
-
not1mm-25.3.
|
172
|
-
not1mm-25.3.
|
173
|
-
not1mm-25.3.
|
174
|
-
not1mm-25.3.
|
175
|
-
not1mm-25.3.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|