not1mm 25.4.11.3__py3-none-any.whl → 25.4.12__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 +17 -0
- not1mm/data/main.ui +34 -0
- not1mm/lib/version.py +1 -1
- not1mm/test.py +34 -5
- {not1mm-25.4.11.3.dist-info → not1mm-25.4.12.dist-info}/METADATA +2 -1
- {not1mm-25.4.11.3.dist-info → not1mm-25.4.12.dist-info}/RECORD +10 -10
- {not1mm-25.4.11.3.dist-info → not1mm-25.4.12.dist-info}/WHEEL +0 -0
- {not1mm-25.4.11.3.dist-info → not1mm-25.4.12.dist-info}/entry_points.txt +0 -0
- {not1mm-25.4.11.3.dist-info → not1mm-25.4.12.dist-info}/licenses/LICENSE +0 -0
- {not1mm-25.4.11.3.dist-info → not1mm-25.4.12.dist-info}/top_level.txt +0 -0
not1mm/__main__.py
CHANGED
@@ -189,6 +189,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
189
189
|
current_widget = None
|
190
190
|
|
191
191
|
auto_cq = False
|
192
|
+
auto_cq_then = datetime.datetime.now()
|
192
193
|
auto_cq_time = datetime.datetime.now()
|
193
194
|
auto_cq_delay = 15000
|
194
195
|
|
@@ -226,6 +227,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
226
227
|
}
|
227
228
|
self.cw_entry.hide()
|
228
229
|
self.leftdot.hide()
|
230
|
+
self.cwprogressBar.hide()
|
229
231
|
self.rightdot.hide()
|
230
232
|
self.n1mm = N1MM()
|
231
233
|
self.ft8 = FT8Watcher()
|
@@ -2107,6 +2109,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2107
2109
|
""""""
|
2108
2110
|
self.auto_cq = False
|
2109
2111
|
self.leftdot.hide()
|
2112
|
+
self.cwprogressBar.hide()
|
2110
2113
|
if self.cw is not None:
|
2111
2114
|
if self.cw.servertype == 1:
|
2112
2115
|
self.cw.sendcw("\x1b4")
|
@@ -2361,7 +2364,10 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
2361
2364
|
self.run_sp_buttons_clicked()
|
2362
2365
|
# self.make_button_blue(self.F1)
|
2363
2366
|
self.leftdot.show()
|
2367
|
+
self.cwprogressBar.setValue(100)
|
2368
|
+
self.cwprogressBar.show()
|
2364
2369
|
self.auto_cq = True
|
2370
|
+
self.auto_cq_then = datetime.datetime.now()
|
2365
2371
|
self.auto_cq_time = datetime.datetime.now() + datetime.timedelta(
|
2366
2372
|
milliseconds=self.auto_cq_delay
|
2367
2373
|
)
|
@@ -3813,7 +3819,18 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
3813
3819
|
# This section has nothing to do with polling the radio
|
3814
3820
|
# It's here because it gets called often enough to be useful.
|
3815
3821
|
if self.auto_cq is True:
|
3822
|
+
total_duration = self.auto_cq_time - self.auto_cq_then
|
3823
|
+
elapsed_duration = datetime.datetime.now() - self.auto_cq_then
|
3824
|
+
if total_duration.total_seconds() > 0:
|
3825
|
+
percentage_complete = int(
|
3826
|
+
(elapsed_duration.total_seconds() / total_duration.total_seconds())
|
3827
|
+
* 100
|
3828
|
+
)
|
3829
|
+
percentage_complete = min(100, percentage_complete)
|
3830
|
+
self.cwprogressBar.setValue(100 - percentage_complete)
|
3831
|
+
|
3816
3832
|
if datetime.datetime.now() > self.auto_cq_time:
|
3833
|
+
self.auto_cq_then = datetime.datetime.now()
|
3817
3834
|
self.auto_cq_time = datetime.datetime.now() + datetime.timedelta(
|
3818
3835
|
milliseconds=self.auto_cq_delay
|
3819
3836
|
)
|
not1mm/data/main.ui
CHANGED
@@ -935,6 +935,40 @@
|
|
935
935
|
</property>
|
936
936
|
</widget>
|
937
937
|
</item>
|
938
|
+
<item>
|
939
|
+
<widget class="QProgressBar" name="cwprogressBar">
|
940
|
+
<property name="sizePolicy">
|
941
|
+
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
942
|
+
<horstretch>0</horstretch>
|
943
|
+
<verstretch>0</verstretch>
|
944
|
+
</sizepolicy>
|
945
|
+
</property>
|
946
|
+
<property name="minimumSize">
|
947
|
+
<size>
|
948
|
+
<width>0</width>
|
949
|
+
<height>0</height>
|
950
|
+
</size>
|
951
|
+
</property>
|
952
|
+
<property name="maximumSize">
|
953
|
+
<size>
|
954
|
+
<width>5</width>
|
955
|
+
<height>29</height>
|
956
|
+
</size>
|
957
|
+
</property>
|
958
|
+
<property name="value">
|
959
|
+
<number>50</number>
|
960
|
+
</property>
|
961
|
+
<property name="textVisible">
|
962
|
+
<bool>false</bool>
|
963
|
+
</property>
|
964
|
+
<property name="orientation">
|
965
|
+
<enum>Qt::Vertical</enum>
|
966
|
+
</property>
|
967
|
+
<property name="invertedAppearance">
|
968
|
+
<bool>false</bool>
|
969
|
+
</property>
|
970
|
+
</widget>
|
971
|
+
</item>
|
938
972
|
<item>
|
939
973
|
<widget class="QLabel" name="rightdot">
|
940
974
|
<property name="text">
|
not1mm/lib/version.py
CHANGED
not1mm/test.py
CHANGED
@@ -1,8 +1,37 @@
|
|
1
|
-
|
2
|
-
""""""
|
3
|
-
...
|
1
|
+
import datetime
|
4
2
|
|
5
3
|
|
6
|
-
|
4
|
+
# Assume self.auto_cq_delay is defined (e.g., in milliseconds)
|
5
|
+
class SomeClass:
|
6
|
+
def __init__(self, auto_cq_delay_ms):
|
7
|
+
self.auto_cq_delay = auto_cq_delay_ms
|
7
8
|
|
8
|
-
|
9
|
+
|
10
|
+
# Example instantiation
|
11
|
+
instance = SomeClass(auto_cq_delay_ms=5000) # 5 seconds delay
|
12
|
+
|
13
|
+
|
14
|
+
then = datetime.datetime.now()
|
15
|
+
future = datetime.datetime.now() + datetime.timedelta(milliseconds=15000)
|
16
|
+
|
17
|
+
|
18
|
+
# Calculate the total duration between 'then' and 'future'
|
19
|
+
total_duration = future - then
|
20
|
+
|
21
|
+
while datetime.datetime.now() < future:
|
22
|
+
|
23
|
+
now = datetime.datetime.now()
|
24
|
+
# Calculate the elapsed duration between 'then' and 'now'
|
25
|
+
elapsed_duration = now - then
|
26
|
+
|
27
|
+
# Avoid division by zero if total_duration is zero (though unlikely in this scenario)
|
28
|
+
if total_duration.total_seconds() > 0:
|
29
|
+
# Calculate the percentage of the way 'now' is to 'future'
|
30
|
+
percentage_complete = (
|
31
|
+
elapsed_duration.total_seconds() / total_duration.total_seconds()
|
32
|
+
) * 100
|
33
|
+
print(f"Current time is {percentage_complete:.2f}% of the way to 'future'.")
|
34
|
+
else:
|
35
|
+
print(
|
36
|
+
"'future' is the same as or before 'then', so percentage cannot be calculated meaningfully."
|
37
|
+
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: not1mm
|
3
|
-
Version: 25.4.
|
3
|
+
Version: 25.4.12
|
4
4
|
Summary: NOT1MM Logger
|
5
5
|
Author-email: Michael Bridak <michael.bridak@gmail.com>
|
6
6
|
License: GPL-3.0-or-later
|
@@ -251,6 +251,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
251
251
|
|
252
252
|
## Recent Changes
|
253
253
|
|
254
|
+
- [25-4-12] Added an Auto CQ time to fire progress bar.
|
254
255
|
- [25-4-11-3] Fixed issue with winkeyer not sending multiple macros in ESM mode.
|
255
256
|
- [25-4-11-2] Fixed a crash.
|
256
257
|
- [25-4-11-1] Add clear buffer to winkeyer interface to stop sending.
|
@@ -1,5 +1,5 @@
|
|
1
1
|
not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
not1mm/__main__.py,sha256=
|
2
|
+
not1mm/__main__.py,sha256=_sobv7fOxQw5gIM1Q2-fLSMn2EXSdOgki0PnZ2xTFGo,153631
|
3
3
|
not1mm/bandmap.py,sha256=-zu5slsuAm2GmeW8g3yvURzsuQxemwIQfw1HEq8xKHM,29920
|
4
4
|
not1mm/checkwindow.py,sha256=zEHlw40j6Wr3rvKbCQf2lcezCoiZqaBqEvBjQU5aKW0,7630
|
5
5
|
not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
|
@@ -9,7 +9,7 @@ not1mm/radio.py,sha256=_b-tSFuDLoBKnABxrsafGQu2p33U-KOubY7-qgLV2yg,5408
|
|
9
9
|
not1mm/ratewindow.py,sha256=PeFmmXYKA6ikR8AzWB6n5TS_1NoaHLocw4pSdySq_7A,6995
|
10
10
|
not1mm/rtc_service.py,sha256=axAwnCBuTr-QL0YwXtWvg9tjwhcFsiiEZFgFjOofX6k,2816
|
11
11
|
not1mm/statistics.py,sha256=YbXBCr8wtmXlF21ojgsh0jY_G-dnCApUFe87JZclZAI,7712
|
12
|
-
not1mm/test.py,sha256=
|
12
|
+
not1mm/test.py,sha256=BNhsSvLnNG5hN4pywIWnj4pUBI-wQYY4Ejfbl97knmw,1198
|
13
13
|
not1mm/vfo.py,sha256=3kdSfLHLHAGgSE8b8H9n-jFUg_5L7tvrZt_7YCkdsLo,8945
|
14
14
|
not1mm/voice_keying.py,sha256=HZImqC5NgnyW2nknNYQ3b7I8-6S_hxpq5G4RcIRXn_k,3005
|
15
15
|
not1mm/data/JetBrainsMono-ExtraLight.ttf,sha256=g5Hn7BPounWMGDj1a8zZcyKMz03HSqW__pUluRR7Evg,274144
|
@@ -33,7 +33,7 @@ not1mm/data/k6gte.not1mm-32.png,sha256=XdTsCa3xqwTfn26Ga7RwO_Vlbg_77RKkSc8bMxVcC
|
|
33
33
|
not1mm/data/k6gte.not1mm-64.png,sha256=6ku45Gq1g5ezh04F07osoKRtanb3e4kbx5XdIEh3N90,2925
|
34
34
|
not1mm/data/logwindow.ui,sha256=f7vULj96tHIQuR1nJMyvPHHcmVgzkhv9D1isyojsnFU,1458
|
35
35
|
not1mm/data/logwindowx.ui,sha256=CwpI-h7cI1yqyldH9quKftsdHL5lTyL9ABOcf80nfqc,1632
|
36
|
-
not1mm/data/main.ui,sha256
|
36
|
+
not1mm/data/main.ui,sha256=-JDQXOaxj8_7Wda9KT2rEM4YUjBs31CiT1Rjc_DBobM,64907
|
37
37
|
not1mm/data/new_contest.ui,sha256=Q8ZORq_9iRls5AJTroh1HAhEkTCOu02nBv9e9xXMOCU,25119
|
38
38
|
not1mm/data/not1mm.html,sha256=c9-mfjMwDt4f5pySUruz2gREW33CQ2_rCddM2z5CZQo,23273
|
39
39
|
not1mm/data/opon.ui,sha256=QDicqAk2lORG2UWsHa6jHlsGn6uzrrI2R4HSAocpPes,2258
|
@@ -118,7 +118,7 @@ not1mm/lib/plugin_common.py,sha256=D1OBjyLmX7zuSPqgTCmHwXzAKA12J_zTQItvyIem-4Y,1
|
|
118
118
|
not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
|
119
119
|
not1mm/lib/settings.py,sha256=mXffn8Xaj5KATPQinNBR0V5DbHWQPsRfh24_axWGYuk,15254
|
120
120
|
not1mm/lib/super_check_partial.py,sha256=hwT2NRwobu0PLDyw6ltmbmcAtGBD02CKGFbgGWjXMqA,2334
|
121
|
-
not1mm/lib/version.py,sha256=
|
121
|
+
not1mm/lib/version.py,sha256=atqnAZN-9H5r7AsrRXx2wU6Jo8y4lw4ILqxIBpKnWYk,48
|
122
122
|
not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
|
123
123
|
not1mm/plugins/10_10_fall_cw.py,sha256=oJh3JKqjOpnWElSlZpiQ631UnaOd8qra5s9bl_QoInk,14783
|
124
124
|
not1mm/plugins/10_10_spring_cw.py,sha256=p7dSDtbFK0e6Xouw2V6swYn3VFVgHKyx4IfRWyBjMZY,14786
|
@@ -178,9 +178,9 @@ not1mm/plugins/stew_perry_topband.py,sha256=3U-Dr28haBTqTaZWLiC1qHQBmLsLENDL-ihy
|
|
178
178
|
not1mm/plugins/ukeidx.py,sha256=0ABGW7_9Ui0Rgr8mkPBxOJokAIerM1a4-HWnl6VsnV8,19105
|
179
179
|
not1mm/plugins/weekly_rtty.py,sha256=C8Xs3Q5UgSYx-mFFar8BVARWtmqlyrbeC98Ubzb4UN8,20128
|
180
180
|
not1mm/plugins/winter_field_day.py,sha256=hmAMgkdqIXtnCNyUp8J9Bb8liN8wj10wps6ROuG-Bok,15284
|
181
|
-
not1mm-25.4.
|
182
|
-
not1mm-25.4.
|
183
|
-
not1mm-25.4.
|
184
|
-
not1mm-25.4.
|
185
|
-
not1mm-25.4.
|
186
|
-
not1mm-25.4.
|
181
|
+
not1mm-25.4.12.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
182
|
+
not1mm-25.4.12.dist-info/METADATA,sha256=2CaR_uTiFmy3n94pB5vwG4eRTjCO0iTgLAkVBU9C3rA,38276
|
183
|
+
not1mm-25.4.12.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
184
|
+
not1mm-25.4.12.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
|
185
|
+
not1mm-25.4.12.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
|
186
|
+
not1mm-25.4.12.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|