not1mm 24.4.25__py3-none-any.whl → 24.4.26__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 +51 -48
- not1mm/lib/version.py +1 -1
- not1mm/radio.py +17 -1
- {not1mm-24.4.25.dist-info → not1mm-24.4.26.dist-info}/METADATA +22 -1
- {not1mm-24.4.25.dist-info → not1mm-24.4.26.dist-info}/RECORD +9 -9
- {not1mm-24.4.25.dist-info → not1mm-24.4.26.dist-info}/LICENSE +0 -0
- {not1mm-24.4.25.dist-info → not1mm-24.4.26.dist-info}/WHEEL +0 -0
- {not1mm-24.4.25.dist-info → not1mm-24.4.26.dist-info}/entry_points.txt +0 -0
- {not1mm-24.4.25.dist-info → not1mm-24.4.26.dist-info}/top_level.txt +0 -0
not1mm/__main__.py
CHANGED
@@ -42,7 +42,6 @@ from PyQt6.QtGui import QFontDatabase, QColorConstants
|
|
42
42
|
from PyQt6.QtWidgets import QFileDialog
|
43
43
|
|
44
44
|
from not1mm.lib.about import About
|
45
|
-
from not1mm.lib.cat_interface import CAT
|
46
45
|
from not1mm.lib.cwinterface import CW
|
47
46
|
from not1mm.lib.database import DataBase
|
48
47
|
from not1mm.lib.edit_macro import EditMacro
|
@@ -151,10 +150,11 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
151
150
|
"cluster_port": 7373,
|
152
151
|
"cluster_filter": "Set DX Filter SpotterCont=NA",
|
153
152
|
"cluster_mode": "OPEN",
|
154
|
-
"logwindow":
|
155
|
-
"bandmapwindow":
|
156
|
-
"checkwindow":
|
153
|
+
"logwindow": False,
|
154
|
+
"bandmapwindow": False,
|
155
|
+
"checkwindow": False,
|
157
156
|
"vfowindow": False,
|
157
|
+
"darkmode": True,
|
158
158
|
}
|
159
159
|
appstarted = False
|
160
160
|
contact = {}
|
@@ -3197,9 +3197,12 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3197
3197
|
destination_file.write_bytes(child.read_bytes())
|
3198
3198
|
|
3199
3199
|
def poll_radio(self, the_dict):
|
3200
|
-
"""
|
3200
|
+
"""
|
3201
|
+
Gets called by thread worker radio.py
|
3202
|
+
Passing in a dictionary object with the
|
3203
|
+
vfo freq, mode, bandwidth, and online state of the radio.
|
3204
|
+
"""
|
3201
3205
|
self.set_radio_icon(0)
|
3202
|
-
print(f"{the_dict=}")
|
3203
3206
|
info_dirty = False
|
3204
3207
|
vfo = the_dict.get("vfoa", "")
|
3205
3208
|
mode = the_dict.get("mode", "")
|
@@ -3211,52 +3214,52 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3211
3214
|
else:
|
3212
3215
|
self.set_radio_icon(2)
|
3213
3216
|
|
3214
|
-
|
3215
|
-
|
3216
|
-
|
3217
|
-
|
3218
|
-
|
3219
|
-
|
3217
|
+
if vfo == "":
|
3218
|
+
return
|
3219
|
+
if self.radio_state.get("vfoa") != vfo:
|
3220
|
+
info_dirty = True
|
3221
|
+
self.radio_state["vfoa"] = vfo
|
3222
|
+
band = getband(str(vfo))
|
3223
|
+
self.radio_state["band"] = band
|
3224
|
+
self.contact["Band"] = get_logged_band(str(vfo))
|
3225
|
+
self.set_band_indicator(band)
|
3220
3226
|
|
3221
|
-
|
3222
|
-
|
3223
|
-
|
3224
|
-
info_dirty = True
|
3225
|
-
self.radio_state["vfoa"] = vfo
|
3226
|
-
band = getband(str(vfo))
|
3227
|
-
self.radio_state["band"] = band
|
3228
|
-
self.contact["Band"] = get_logged_band(str(vfo))
|
3229
|
-
self.set_band_indicator(band)
|
3227
|
+
if self.radio_state.get("mode") != mode:
|
3228
|
+
info_dirty = True
|
3229
|
+
self.radio_state["mode"] = mode
|
3230
3230
|
|
3231
|
-
|
3232
|
-
|
3233
|
-
|
3231
|
+
if self.radio_state.get("bw") != bw:
|
3232
|
+
info_dirty = True
|
3233
|
+
self.radio_state["bw"] = bw
|
3234
3234
|
|
3235
|
-
|
3236
|
-
|
3237
|
-
|
3235
|
+
if mode == "CW":
|
3236
|
+
self.setmode(mode)
|
3237
|
+
if mode == "LSB" or mode == "USB":
|
3238
|
+
self.setmode("SSB")
|
3239
|
+
if mode == "RTTY":
|
3240
|
+
self.setmode("RTTY")
|
3238
3241
|
|
3239
|
-
|
3240
|
-
|
3241
|
-
|
3242
|
-
|
3243
|
-
|
3244
|
-
|
3245
|
-
|
3246
|
-
|
3247
|
-
|
3248
|
-
|
3249
|
-
|
3250
|
-
|
3251
|
-
|
3252
|
-
|
3253
|
-
|
3254
|
-
|
3255
|
-
|
3256
|
-
|
3257
|
-
|
3258
|
-
|
3259
|
-
|
3242
|
+
if info_dirty:
|
3243
|
+
logger.debug("VFO: %s MODE: %s BW: %s", vfo, mode, bw)
|
3244
|
+
self.set_window_title()
|
3245
|
+
cmd = {}
|
3246
|
+
cmd["cmd"] = "RADIO_STATE"
|
3247
|
+
cmd["station"] = platform.node()
|
3248
|
+
cmd["band"] = band
|
3249
|
+
cmd["vfoa"] = vfo
|
3250
|
+
cmd["mode"] = mode
|
3251
|
+
cmd["bw"] = bw
|
3252
|
+
self.multicast_interface.send_as_json(cmd)
|
3253
|
+
if self.n1mm:
|
3254
|
+
if self.n1mm.send_radio_packets:
|
3255
|
+
self.n1mm.radio_info["Freq"] = vfo[:-1]
|
3256
|
+
self.n1mm.radio_info["TXFreq"] = vfo[:-1]
|
3257
|
+
self.n1mm.radio_info["Mode"] = mode
|
3258
|
+
self.n1mm.radio_info["OpCall"] = self.current_op
|
3259
|
+
self.n1mm.radio_info["IsRunning"] = str(
|
3260
|
+
self.pref.get("run_state", False)
|
3261
|
+
)
|
3262
|
+
self.n1mm.send_radio()
|
3260
3263
|
|
3261
3264
|
def edit_cw_macros(self) -> None:
|
3262
3265
|
"""
|
not1mm/lib/version.py
CHANGED
not1mm/radio.py
CHANGED
@@ -24,7 +24,7 @@ class Radio(QObject):
|
|
24
24
|
vfoa = "14030000"
|
25
25
|
mode = "CW"
|
26
26
|
bw = "500"
|
27
|
-
delta =
|
27
|
+
delta = 1
|
28
28
|
poll_time = datetime.datetime.now() + datetime.timedelta(seconds=delta)
|
29
29
|
time_to_quit = False
|
30
30
|
online = False
|
@@ -76,11 +76,27 @@ class Radio(QObject):
|
|
76
76
|
if self.cat:
|
77
77
|
self.cat.set_vfo(vfo)
|
78
78
|
self.vfoa = vfo
|
79
|
+
self.poll_callback.emit(
|
80
|
+
{
|
81
|
+
"vfoa": self.vfoa,
|
82
|
+
"mode": self.mode,
|
83
|
+
"bw": self.bw,
|
84
|
+
"online": self.online,
|
85
|
+
}
|
86
|
+
)
|
79
87
|
|
80
88
|
def set_mode(self, mode):
|
81
89
|
if self.cat:
|
82
90
|
self.cat.set_mode(mode)
|
83
91
|
self.mode = mode
|
92
|
+
self.poll_callback.emit(
|
93
|
+
{
|
94
|
+
"vfoa": self.vfoa,
|
95
|
+
"mode": self.mode,
|
96
|
+
"bw": self.bw,
|
97
|
+
"online": self.online,
|
98
|
+
}
|
99
|
+
)
|
84
100
|
|
85
101
|
def ptt_on(self):
|
86
102
|
if self.cat:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.4.
|
3
|
+
Version: 24.4.26
|
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
|
@@ -55,7 +55,9 @@ Requires-Dist: Levenshtein
|
|
55
55
|
- [Common installation recipes for Ubuntu and Fedora](#common-installation-recipes-for-ubuntu-and-fedora)
|
56
56
|
- [Ubuntu 22.04 LTS](#ubuntu-2204-lts)
|
57
57
|
- [Ubuntu 23.04](#ubuntu-2304)
|
58
|
+
- [Ubuntu 24.04](#ubuntu-2404)
|
58
59
|
- [Fedora 38 \& 39](#fedora-38--39)
|
60
|
+
- [Fedora 40](#fedora-40)
|
59
61
|
- [Python, PyPI, pip and pipx](#python-pypi-pip-and-pipx)
|
60
62
|
- [Bootstrapping pipx](#bootstrapping-pipx)
|
61
63
|
- [Installing with pipx](#installing-with-pipx)
|
@@ -177,6 +179,7 @@ I wish to thank those who've contributed to the project.
|
|
177
179
|
|
178
180
|
## Recent Changes
|
179
181
|
|
182
|
+
- [24-4-25-1] Reduce delta time to poll. Reorder poll_radio callback. Remove unused CAT lib from main.
|
180
183
|
- [24-4-25] Limited loop in radio.py, reducing clock cycles used. Moved Log window to the top of the logger.
|
181
184
|
- [24-4-24] Placed CAT control into a thread so disconnecting the radio wouldn't lock up the interface.
|
182
185
|
- [24-4-17] Trap OSError if no sound device. Stop fsutils/appdata from creating useless .not1mm and .username folder structures on Linux platforms.
|
@@ -233,6 +236,16 @@ pipx install not1mm
|
|
233
236
|
pipx ensurepath
|
234
237
|
```
|
235
238
|
|
239
|
+
#### Ubuntu 24.04
|
240
|
+
|
241
|
+
```bash
|
242
|
+
sudo apt update
|
243
|
+
sudo apt upgrade
|
244
|
+
sudo apt install -y libportaudio2 pyqt6-dev-tools python3-pip
|
245
|
+
pip install --break-system-packages not1mm
|
246
|
+
source .profile
|
247
|
+
```
|
248
|
+
|
236
249
|
#### Fedora 38 & 39
|
237
250
|
|
238
251
|
```bash
|
@@ -241,6 +254,14 @@ sudo dnf install python3-pip portaudio
|
|
241
254
|
pip install not1mm
|
242
255
|
```
|
243
256
|
|
257
|
+
#### Fedora 40
|
258
|
+
|
259
|
+
```bash
|
260
|
+
sudo dnf upgrade --refresh
|
261
|
+
sudo dnf install python3-pip python3-pyqt6 portaudio
|
262
|
+
pip install not1mm
|
263
|
+
```
|
264
|
+
|
244
265
|
You can now open a new terminal and type not1mm. On it's first run, it may or
|
245
266
|
may not install a lovely non AI generated icon, which you can later click on to
|
246
267
|
launch the application.
|
@@ -1,10 +1,10 @@
|
|
1
1
|
not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
not1mm/__main__.py,sha256=
|
2
|
+
not1mm/__main__.py,sha256=RTpa_ZR5UFaNmdna5xa8zHVUsXX7dSNJ-vvZjBW_08I,123544
|
3
3
|
not1mm/bandmap.py,sha256=3kmRYItrBqpjudFb2NnkGNJpDWkwOpGPQbKwHmYnQ-o,34021
|
4
4
|
not1mm/checkwindow.py,sha256=9ueFgYLM4RFmroMJBXXn98XWO9ZJ-Dop6MwZUXRNFF0,10577
|
5
5
|
not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
|
6
6
|
not1mm/logwindow.py,sha256=UcO8mgs_E7ier2gg_1ESTaRxABEvcpCwKmSibm7hl74,44603
|
7
|
-
not1mm/radio.py,sha256=
|
7
|
+
not1mm/radio.py,sha256=im14hFLKu0NreymcYoeSE3gyFHoXygP8azY0nsfBLP0,2876
|
8
8
|
not1mm/vfo.py,sha256=pRRj0XTbeTU9noo3nC1dbg26VYj6gHEw_srUDbyYqC0,12169
|
9
9
|
not1mm/data/JetBrainsMono-Regular.ttf,sha256=UOHctAKY_PzCGh7zy-6f6egnCcSK0wzmF0csBqO9lDY,203952
|
10
10
|
not1mm/data/MASTER.SCP,sha256=1vQRvEZ865brfmmajp-Lj-hgWejVGI992q8o971bUV8,366478
|
@@ -106,7 +106,7 @@ not1mm/lib/plugin_common.py,sha256=AAKBPCXzTWZJb-h08uPNnHVG7bSCg7kwukc211gFivY,8
|
|
106
106
|
not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
|
107
107
|
not1mm/lib/settings.py,sha256=i4Za_BZDl9UotB10o8sjIkzRdR0493rMI5VaQltUZHA,9054
|
108
108
|
not1mm/lib/super_check_partial.py,sha256=p5l3u2ZOCBtlWgbvskC50FpuoaIpR07tfC6zTdRWbh4,2334
|
109
|
-
not1mm/lib/version.py,sha256=
|
109
|
+
not1mm/lib/version.py,sha256=lPQishm4hmFWwKk5ErP8Ktbyz8JmCVbtE3C3poObc-g,48
|
110
110
|
not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
|
111
111
|
not1mm/plugins/10_10_fall_cw.py,sha256=fUjfwjuscDjicXIxsO0JHh7xTR9Vu0iPsrOLb896Qak,10873
|
112
112
|
not1mm/plugins/10_10_spring_cw.py,sha256=WNaJP5mBQfaB6SxnFI0Vawt3AKDr94tKVtAK-EVhtUY,10878
|
@@ -140,9 +140,9 @@ not1mm/plugins/naqp_ssb.py,sha256=IWksulcb2_DxlkeW0h3048t8I-u00G_67KBVKkp-TV4,11
|
|
140
140
|
not1mm/plugins/phone_weekly_test.py,sha256=gCX0ESUoiQzDp9puwibt9-dRembNsiuEeBdawCVvjHA,12316
|
141
141
|
not1mm/plugins/stew_perry_topband.py,sha256=DIMI3mGMKokXXb9pPLqdhBI6JVnnIs7ZnAL23nFmshE,10588
|
142
142
|
not1mm/plugins/winter_field_day.py,sha256=4rcfRtobwjHO6BNL3WOTHzBmyyeuX79BNGBG8PfjrI8,10238
|
143
|
-
not1mm-24.4.
|
144
|
-
not1mm-24.4.
|
145
|
-
not1mm-24.4.
|
146
|
-
not1mm-24.4.
|
147
|
-
not1mm-24.4.
|
148
|
-
not1mm-24.4.
|
143
|
+
not1mm-24.4.26.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
144
|
+
not1mm-24.4.26.dist-info/METADATA,sha256=wdO0q57c03NHGkJR8JKTiGHPHDpIdew_akMRy4tZBlc,28272
|
145
|
+
not1mm-24.4.26.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
146
|
+
not1mm-24.4.26.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
147
|
+
not1mm-24.4.26.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
|
148
|
+
not1mm-24.4.26.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|