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