Audio-Ansagen weiterprogrammiert

This commit is contained in:
Thomas Hooge 2025-09-23 19:35:04 +02:00
parent a5baea524e
commit adb1b4e63a
1 changed files with 50 additions and 33 deletions

View File

@ -239,8 +239,8 @@ class Tracker():
filename = f"{event}.mp3"
else:
filename = f"{event}_{lang}.mp3"
mp3file = os.path.join(cfg['audiopath'], filename)
subprocess.run(["mpg123", "-q", mp3_file])
mp3file = os.path.join(self.audiopath, filename)
subprocess.Popen(["mpg123", "-q", mp3file])
def hero_get_degrees(azimut):
"""
@ -415,48 +415,71 @@ class Tracker():
print("Event: Phasenübergang {} -> {}".format(self.hero_racephase, racephase))
if self.hero_racephase == 0:
if racephase == 1:
os.system("mpg123 -q " + os.path.join(self.audiopath, "startready.mp3"))
# Startlinie bereit
self.hero_play_audio('startready')
print(payload['racestatus'])
#subprocess.popen("mpg123 -q " + os.path.join(self.audiopath, "startready.mp3"))
elif self.hero_racephase == 1:
if racephase == 3:
if racephase == 1:
# Startlinie bereit
self.hero_play_audio('startVerschiebung')
elif racephase == 3:
# Startverschiebung aufgehoben
pass
elif racephase == 4:
os.system("mpg123 -q " + os.path.join(self.audiopath, "dreiMin.mp3"))
self.hero_play_audio('dreiMin')
elif self.hero_racephase == 2:
if racephase == 3:
self.hero_play_audio('vierMin')
elif self.hero_racephase == 3:
if racephase == 4:
pass
pass
if racephase == 1:
self.hero_play_audio('startVerschiebung')
elif self.hero_racephase == 4:
if racephase == 1:
os.system("mpg123 -q " + os.path.join(self.audiopath, "startVerschiebung.mp3"))
self.hero_play_audio('startVerschiebung')
if racephase == 5:
# Blauer Peter oben
os.system("mpg123 -q " + os.path.join(self.audiopath, "startVerschiebung.mp3"))
self.hero_play_audio('zweiMin')
elif self.hero_racephase == 5:
if racephase == 6:
if racephase == 1:
self.hero_play_audio('startVerschiebung')
elif racephase == 6:
# Blauer Peter runter
pass
# 8 -> 2 Allg. Rückruf
# allgmRueck.mp3
elif self.hero_racephase == 7:
if racephase == 8:
# Gestartet
pass
elif self.hero_racephase == 8:
if racephase == 2:
if payload['racestatus']['recallgeneral']:
self.hero_play_audio('allgmRueck')
else:
self.hero_play_audio('abbruch')
self.hero_racephase = racephase
# TODO Einzelrückruf, keine Änderung in der Phase!
#if payload['racestatus']['recallindiv']:
# self.hero_play_audio('einzelRueck')
# Timing
timer = payload['racestatus']['time']
countdown = {
-9: 'neun.mp3',
-8: 'acht.mp3',
-7: 'sieben.mp3',
-6: 'sechs.mp3',
-5: 'fuenf.mp3',
-4: 'vier.mp3',
-3: 'drei.mp3',
-2: 'zwei.mp3',
-1: 'eins.mp3'
-60: 'eineMin',
-50: 'fuenfzig', -40: 'vierzig', -30: 'dreissig',
-20: 'zwanzig', -15: 'fuenfzehn', -10: 'zehn',
-9: 'neun', -8: 'acht', -7: 'sieben', -6: 'sechs',
-5: 'fuenf', -4: 'vier', -3: 'drei', -2: 'zwei',
-1: 'eins', 0 : 'startErfolgt'
}
if payload['racestatus']['time'] == -60:
os.system("mpg123 -q " + os.path.join(self.audiopath, "eineMin.mp3"))
elif payload['racestatus']['time'] > -10 and payload['racestatus']['time'] < 0:
os.system("mpg123 -q " + os.path.join(self.audiopath, countdown[payload['racestatus']['time']]))
# Komplexere Bedingung die nach Start fast keinen Aufwand
# mehr bedeutet
if (timer <= 0) and (timer >= -60) and timer in countdown:
self.hero_play_audio(countdown[timer])
# payload['racestatus']['racestarted']
# payload['racesettings']
"""
@ -471,12 +494,6 @@ class Tracker():
Bahnverkürzung
Rückrufe
phase: 0 vor dem Start racephase: 1
racephase: 4
5 Vorbereitungssignal
racephase: 6 nach vorbereitnug wieder runter
7: Rennen gestartet
"""
else:
self.log.warning(f"UNKNOWN TOPIC: {msg.topic}")