more autonomous
This commit is contained in:
parent
9deda461ee
commit
2221f5b39d
@ -45,9 +45,9 @@ def register_racer():
|
|||||||
index = window.racers.currentIndex()
|
index = window.racers.currentIndex()
|
||||||
racer_id = int(index.data().split(' ')[-1])
|
racer_id = int(index.data().split(' ')[-1])
|
||||||
try:
|
try:
|
||||||
starting_number = int(window.starting_number.text())
|
starting_number = max(filter(lambda r: r['starting_number'], racers), key=lambda racer: racer['starting_number'])['starting_number'] + 1
|
||||||
except Exception:
|
except ValueError:
|
||||||
raise
|
starting_number = 1
|
||||||
|
|
||||||
response = session.post(config['host'] + '/api/card/register', json={'racer_id': racer_id, 'starting_number': starting_number, 'card_id': card_id})
|
response = session.post(config['host'] + '/api/card/register', json={'racer_id': racer_id, 'starting_number': starting_number, 'card_id': card_id})
|
||||||
if response.status_code == 400:
|
if response.status_code == 400:
|
||||||
@ -55,50 +55,21 @@ def register_racer():
|
|||||||
mb.exec()
|
mb.exec()
|
||||||
return
|
return
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
mb = QtWidgets.QMessageBox(text="Neznámá chyba!")
|
mb = QtWidgets.QMessageBox(text=f"Neznámá chyba! {response.status_code} {response.content}")
|
||||||
mb.exec()
|
mb.exec()
|
||||||
return
|
return
|
||||||
|
|
||||||
racer = list(filter(lambda x: x['racer_id'] == racer_id, racers))[0]
|
racer = list(filter(lambda x: x['racer_id'] == racer_id, racers))[0]
|
||||||
racer['card_id'] = card_id
|
racer['card_id'] = card_id
|
||||||
racer['starting_number'] = starting_number
|
racer['starting_number'] = starting_number
|
||||||
|
racer['started'] = False
|
||||||
updateRacers()
|
updateRacers()
|
||||||
mb = QtWidgets.QMessageBox(text="Úspěšné zaregistrování závodníka!")
|
mb = QtWidgets.QMessageBox(text=f"Úspěšné zaregistrování závodníka se startovním číslem {starting_number}!")
|
||||||
mb.exec()
|
mb.exec()
|
||||||
|
|
||||||
|
|
||||||
def unregister_racer():
|
|
||||||
card_id = last_card
|
|
||||||
time = last_time
|
|
||||||
|
|
||||||
response = session.post(config['host'] + '/api/station/register', json={'card_id': card_id, 'time': time.strftime('%d.%m.%Y %H:%M:%S.%f'), 'station_id': config['station_id']})
|
|
||||||
if response != 200:
|
|
||||||
mb = QtWidgets.QMessageBox(text="Selhalo zapsání na Stanici!")
|
|
||||||
mb.exec()
|
|
||||||
return
|
|
||||||
|
|
||||||
racer = list(filter(lambda x: x['card_id'] == card_id, racers))[0]
|
|
||||||
starting_number = racer['starting_number']
|
|
||||||
racer_id = racer['racer_id']
|
|
||||||
racer['card_id'] = None
|
|
||||||
|
|
||||||
response = session.post(config['host'] + '/api/card/unregister', json={'racer_id': racer_id, 'starting_number': starting_number, 'card_id': card_id})
|
|
||||||
|
|
||||||
if response.status_code != 200:
|
|
||||||
mb = QtWidgets.QMessageBox(text="Registrace na stanici proběhla úspěšně, ale karta nebyla odhlášena!")
|
|
||||||
mb.exec()
|
|
||||||
return
|
|
||||||
|
|
||||||
json = response.json()
|
|
||||||
|
|
||||||
mb = QtWidgets.QMessageBox(text=f"Úspěšné odhlášení závodníka! Finální čas je: {json['time']}")
|
|
||||||
mb.exec()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
window = uic.loadUi("registrace.ui")
|
window = uic.loadUi("registrace.ui")
|
||||||
window.register_racer.clicked.connect(register_racer)
|
window.register_racer.clicked.connect(register_racer)
|
||||||
window.unregister_racer.clicked.connect(unregister_racer)
|
|
||||||
window.show()
|
window.show()
|
||||||
|
|
||||||
|
|
||||||
@ -117,8 +88,50 @@ def updateRacers():
|
|||||||
updateRacers()
|
updateRacers()
|
||||||
|
|
||||||
|
|
||||||
|
def findByCard(card_id):
|
||||||
|
for racer in racers:
|
||||||
|
if racer['card_id'] == card_id:
|
||||||
|
return racer
|
||||||
|
|
||||||
|
|
||||||
def updateLastCard(card_id):
|
def updateLastCard(card_id):
|
||||||
window.lastCard.setText(str(card_id))
|
window.lastCard.setText(str(card_id))
|
||||||
|
time = last_time
|
||||||
|
|
||||||
|
racer = findByCard(card_id)
|
||||||
|
if racer:
|
||||||
|
if racer['started']:
|
||||||
|
response = session.post(config['host'] + '/api/station/register', json={'card_id': card_id, 'time': time.strftime('%d.%m.%Y %H:%M:%S.%f'), 'station_id': 6})
|
||||||
|
if response != 200:
|
||||||
|
mb = QtWidgets.QMessageBox(text="Selhalo zapsání na Stanici!")
|
||||||
|
mb.exec()
|
||||||
|
return
|
||||||
|
|
||||||
|
racer = list(filter(lambda x: x['card_id'] == card_id, racers))[0]
|
||||||
|
starting_number = racer['starting_number']
|
||||||
|
racer_id = racer['racer_id']
|
||||||
|
racer['card_id'] = None
|
||||||
|
|
||||||
|
response = session.post(config['host'] + '/api/card/unregister', json={'racer_id': racer_id, 'starting_number': starting_number, 'card_id': card_id})
|
||||||
|
|
||||||
|
if response.status_code != 200:
|
||||||
|
mb = QtWidgets.QMessageBox(text="Registrace na stanici proběhla úspěšně, ale karta nebyla odhlášena!")
|
||||||
|
mb.exec()
|
||||||
|
return
|
||||||
|
|
||||||
|
json = response.json()
|
||||||
|
|
||||||
|
mb = QtWidgets.QMessageBox(text=f"Úspěšné odhlášení závodníka! Finální čas je: {json['time']}")
|
||||||
|
mb.exec()
|
||||||
|
else:
|
||||||
|
response = session.post(config['host'] + '/api/station/register', json={'card_id': card_id, 'time': last_time.strftime('%d.%m.%Y %H:%M:%S.%f'), 'station_id': 1})
|
||||||
|
if response.status_code != 200:
|
||||||
|
mb = QtWidgets.QMessageBox(text="Nastala nějaká chyba na serveru!")
|
||||||
|
mb.exec()
|
||||||
|
return
|
||||||
|
mb = QtWidgets.QMessageBox(text=f"Úspěšné odstartování závodníka {racer['starting_number']}!")
|
||||||
|
mb.exec()
|
||||||
|
racer['started'] = True
|
||||||
|
|
||||||
|
|
||||||
class UsbCardReader():
|
class UsbCardReader():
|
||||||
@ -153,10 +166,10 @@ class UsbCardReader():
|
|||||||
receivedNumber = 10 * receivedNumber + receivedDigit
|
receivedNumber = 10 * receivedNumber + receivedDigit
|
||||||
|
|
||||||
if (( control[0] == 0 )) & (( control[2] == 40 )) & (( not receivedNumber == 0 )):
|
if (( control[0] == 0 )) & (( control[2] == 40 )) & (( not receivedNumber == 0 )):
|
||||||
updateLastCard(receivedNumber)
|
if last_card != receivedNumber or datetime.datetime.now() - last_time > datetime.timedelta(seconds=10):
|
||||||
if last_card != receivedNumber:
|
updateLastCard(receivedNumber)
|
||||||
last_time = datetime.datetime.now()
|
last_time = datetime.datetime.now()
|
||||||
last_card = receivedNumber
|
last_card = receivedNumber
|
||||||
receivedNumber = 0
|
receivedNumber = 0
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
|
@ -14,9 +14,6 @@
|
|||||||
<string>Registrace závodníků</string>
|
<string>Registrace závodníků</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="5" column="0">
|
|
||||||
<widget class="QLineEdit" name="lastCard"/>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QPushButton" name="register_racer">
|
<widget class="QPushButton" name="register_racer">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -24,31 +21,17 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QPushButton" name="unregister_racer">
|
|
||||||
<property name="text">
|
|
||||||
<string>Dokončit</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLineEdit" name="starting_number"/>
|
<widget class="QLineEdit" name="lastCard"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="text">
|
|
||||||
<string>startovní číslo</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
|
||||||
<widget class="QLabel" name="label_2">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>číslo karty</string>
|
<string>číslo karty</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0">
|
<item row="3" column="0">
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
@ -61,7 +44,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1" rowspan="7">
|
<item row="0" column="1" rowspan="4">
|
||||||
<widget class="QListView" name="racers"/>
|
<widget class="QListView" name="racers"/>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user