diff --git a/tracker.py b/tracker.py index 83db67b..7bd6c61 100644 --- a/tracker.py +++ b/tracker.py @@ -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}")