Skip to content

Commit a5e557e

Browse files
committed
@mbridak get rate window to auto update.
1 parent 0c8a9da commit a5e557e

File tree

1 file changed

+46
-2
lines changed

1 file changed

+46
-2
lines changed

not1mm/ratewindow.py

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@
99
# pylint: disable=no-name-in-module, unused-import, no-member, invalid-name, c-extension-no-member
1010
# pylint: disable=logging-fstring-interpolation, line-too-long
1111

12+
import datetime
13+
import time
1214
import logging
1315
import os
1416

1517
from PyQt6 import uic
16-
from PyQt6.QtWidgets import QLabel, QVBoxLayout, QWidget, QDockWidget
18+
from PyQt6.QtWidgets import QLabel, QWidget, QDockWidget
1719
from PyQt6.QtGui import QMouseEvent, QColorConstants, QPalette, QColor
18-
from PyQt6.QtCore import pyqtSignal
20+
from PyQt6.QtCore import pyqtSignal, QTimer
1921

2022
import not1mm.fsutils as fsutils
2123
from not1mm.lib.database import DataBase
@@ -33,6 +35,7 @@ class RateWindow(QDockWidget):
3335
message = pyqtSignal(dict)
3436
dbname = None
3537
pref = {}
38+
poll_time = datetime.datetime.now() + datetime.timedelta(milliseconds=1000)
3639

3740
def __init__(self):
3841
super().__init__()
@@ -45,6 +48,9 @@ def __init__(self):
4548
self.database.current_contest = self.pref.get("contest", 0)
4649

4750
uic.loadUi(fsutils.APP_DATA_PATH / "ratewindow.ui", self)
51+
self.timer = QTimer()
52+
self.timer.timeout.connect(self.get_run_and_total_qs)
53+
self.timer.start(1000)
4854

4955
def msg_from_main(self, packet):
5056
""""""
@@ -128,3 +134,41 @@ def load_pref(self) -> None:
128134
except (IOError, JSONDecodeError) as exception:
129135
logger.critical("Error: %s", exception)
130136
self.setDarkMode(self.pref.get("darkmode", False))
137+
138+
def get_run_and_total_qs(self):
139+
"""get numbers"""
140+
141+
# last_hour
142+
# 10_last_qso
143+
# hundred_last_qso
144+
# since_starttime
145+
# --------------------
146+
# time_on
147+
# time_off
148+
# --------------------
149+
# run_qso
150+
# sandp_qso
151+
# hour_run_qso
152+
# hour_sandp_qso
153+
# --------------------
154+
# avg_km
155+
# avg_pts
156+
# --------------------
157+
# time_by_mult
158+
# qso_counts
159+
# mult_counts
160+
# mult_worth
161+
# {'runs': 3, 'totalqs': 3}
162+
163+
# WHERE datetime(timestamp) > datetime(current_timestamp, '-60 minutes')
164+
if self.active:
165+
query = f"select sum(IsRunQSO) as runs, count(*) as totalqs from dxlog where ContestNR = {self.database.current_contest};"
166+
result = self.database.exec_sql(query)
167+
sandp = result.get("totalqs", 0) - result.get("runs", 0)
168+
self.run_qso.setText(f"{result.get("runs", 0)}")
169+
self.sandp_qso.setText(f"{sandp}")
170+
self.qso_counts.setText(f"{result.get("totalqs", 0)} pts")
171+
172+
query = f"select count(*) as totalqs from dxlog where ContestNR = {self.database.current_contest} and datetime(TS) > datetime(current_timestamp, '-60 minutes');"
173+
result = self.database.exec_sql(query)
174+
self.last_hour.setText(f"{result.get("totalqs", 0)} Q/h")

0 commit comments

Comments
 (0)