From c4d7df8b5dbb965954764122deffa525e1379fc6 Mon Sep 17 00:00:00 2001 From: Martin Quarda Date: Fri, 4 Apr 2025 09:34:44 +0200 Subject: [PATCH] testing dialog --- SW/PC/Stopwatch/log.json | 2 +- SW/PC/Stopwatch/registrace.py | 37 +++++++++++++++++++++++++---------- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/SW/PC/Stopwatch/log.json b/SW/PC/Stopwatch/log.json index fe51488..60b0742 100644 --- a/SW/PC/Stopwatch/log.json +++ b/SW/PC/Stopwatch/log.json @@ -1 +1 @@ -[] +[] diff --git a/SW/PC/Stopwatch/registrace.py b/SW/PC/Stopwatch/registrace.py index 92867fd..90fcea9 100644 --- a/SW/PC/Stopwatch/registrace.py +++ b/SW/PC/Stopwatch/registrace.py @@ -6,7 +6,8 @@ import time import json import usb.core import usb.util -from PyQt6 import QtWidgets, uic, QtGui +from PyQt6 import QtWidgets, uic, QtGui, QtCore +from PyQt6.QtCore import pyqtSignal as Signal, pyqtSlot as Slot from queue import Queue from requests.adapters import HTTPAdapter, Retry @@ -46,17 +47,31 @@ with open('log.json', 'r') as f: queue = Queue() -def worker(): - while True: - item = queue.get() - log.append(item) - with open('log.json', 'w') as f: - f.write(json.dumps(log)) - response = session.post(item['url'], json=item['json']) - print(item, response) +class Worker(QtCore.QThread): + returned_state = Signal(str) + def __init__(self): + super().__init__() + self.returned_state.connect(self.handle_returned_state) + self.worker_thread = threading.Thread(target=worker) + self.worker_thread.start() + + def worker(): + while True: + item = queue.get() + log.append(item) + with open('log.json', 'w') as f: + f.write(json.dumps(log)) + response = session.post(item['url'], json=item['json']) + + self.returned_state.emit(f'{response.status_code}') + + print(item, response) + def handle_returned_state(self, state): + mb = QtWidgets.QMessageBox(text=f"{state}") + mb.exec() -threading.Thread(target=worker).start() +worker = Worker() def register_racer(): @@ -114,6 +129,8 @@ def findByCard(card_id): def updateLastCard(card_id): global last_card, last_time + if card_id == last_card and datetime.datetime.now() - last_time < datetime.timedelta(seconds=15): + return time = last_time = datetime.datetime.now() last_card = card_id window.lastCard.setText(str(card_id))