Projektgruppenarbeit:

Test Driven Development, eines Systems zur Erfassung, Bearbeitung und Auswertung von Wettkampfdaten für Schwimmwettkämpfe

Projektgruppenarbeit

In unserem Projekt ging es darum, die Erfassung und Auswertung von Schwimmwettkampfergebnissen zu automatisieren. In der Ausgangssituation werden die Wettkampfergebnisse bei Wettkämpfen mit Handzeitnahme handschriftlich erfasst und ausgewertet. Das ist bei wechselnden Wettkämpfen im Minutentakt ein äußerst stressiges Unterfangen.

Vor allem die Übergabe der handschriftlichen Ergebnisse von den Zielrichtern und den Zeitnehmern an den Auswerter sowie die Erfassung der handschriftlichen ausgewerteten Ergebnisse am Rechner sollen dabei eingespart werden. Außerdem soll die Arbeit in der Auswertung wesentlich erleichtert werden. Im Normalfall gibt es drei bis fünf Zielrichter, die bei jedem Schwimmlauf lediglich die Reihenfolge des Einlaufs der Schwimmer erfassen. Das heißt, sie schreiben die Bahnnummern derjenigen Schwimmer in der Reihenfolge auf, in der sie deren Zielanschlag gesehen bzw. wahrgenommen haben. Es gibt immer eine ungerade Anzahl an Zielrichtern, damit im Notfall immer ein Mehrheitsentscheid möglich ist. Für den Fall von unklaren Situationen nimmt auch der Schiedsrichter den Zieleinlauf auf, der vom Auswerter erfragt werden kann.

Unsere Aufgabe war es jetzt, die in jedem Lauf mit den Positionen beschrifteten Zettel durch Smartphones zu ersetzen. Hier soll es dann möglich sein, die Bahnen per Drag & Drop den jeweiligen Positionen zuzuordnen.

Bei den Zeitnehmern soll die Stoppuhr durch einen „Drücker“ ersetzt werden, der ähnlich wie bei einer Stoppuhr bei Zwischen- und Endzeiten betätigt werden soll. Das Drücken beim Start entfällt hiermit dadurch, dass die mit den Drückern verbundenen „Kleincomputer“ direkt mit dem elektronischen Startsignal der bereits vorhandenen Startanlage gespeist werden.

Zusätzlich soll ein PC mit einer kontrollierenden Funktionalität verwendet werden. Dieser empfängt nach jedem Wettkampf das Resultat der Mini-PCs. Auf diesem soll zu sehen sein, welcher Lauf gerade stattfindet, sowie welche bereits abgeschlossen sind und noch folgen. Außerdem soll es hier möglich sein, Wettkämpfe vorzuziehen, zu beenden und auf Fehlstarts zu reagieren. Er stellt damit eine Wettkampfübersicht und Kontrollinstanz dar. Zusätzlich werden vom Kontroll-PC die Platzierungen der Zielrichter-App entgegengenommen. Nach dem Eintreffen sämtlicher Daten werden alle benötigen Daten zur weiteren Verarbeitung an einen Auswerter-PC weitergeleitet.

Mit dem Auswerter-PC wird kontrolliert, ob die Reihenfolge der Zieleinläufe (Zielrichter) mit den genommenen Zeiten übereinstimmt. Bei Diskrepanzen wird dem Auswerter (Aufgabe im Kampfgericht) ein Vorschlag zur Zeitkorrektur unterbreitet, den er übernehmen oder manuell nachbearbeiten kann. Die ausgewerteten Daten werden letztendlich an die Software „EasyWK“ übergeben, um das Protokoll erstellen und Urkunden drucken zu können.

Team

Gruppe
Teilnehmer
Auswerter-App David Boes
Mengyao Lu
Arne Otten
Kontrollrechner Ina Krefting
Marc Pollmann
Lenex und Datenbank René Kuchenbuch
Zeitmesssystem Rouven Hollens
Keno Peil
Zielrichter-App Anja Grobelnik
Patrick Brink
Henning Pauls
Tom Wessels

Systemkonzept

Abbildung des Systemkonzepts
Nach der anfänglichen Intensivphase begannen die Arbeiten an dem Projekt. Alle Gruppenmitglieder haben sich in ihre jeweiligen Themengebiete eingearbeitet. Nach einigen Wochen wurde bei vielen Gruppen festgestellt, dass das ursprüngliche Konzept einige Probleme hat, bzw. dass manche Problemstellungen auf andere Weise besser gelöst werden könnten. Das Gesamtkonzept wurde daraufhin neu aufgerollt und abgeändert. (siehe Abbildung)

Der Kontroll-PC erhält zuerst eine Lenex-Datei aus EasyWK mit dem Meldeergebnis. So ist dem Kontroll-PC bekannt, welche Wettkämpfe stattfinden, in welcher Reihenfolge und welche Schwimmer teilnehmen. Der aktuelle Wettkampf wird auch der Zielrichter-App mitgeteilt. Der Startsignal-Raspberry-Pi schickt beim Start des Wettkampfs ein Signal an den Kontroll-PC, sodass dieser weiß zu welcher Uhrzeit der Lauf gestartet ist. Sobald einer der Drücker auslöst, schicken diese ihren derzeitigen Timestamp an den Kontroll-PC. Der Kontroll-PC kann den Timestamp dann mit der Uhrzeit des Startsignals verrechnen und eine Zwischen-, bzw. Endzeit bilden. Die Zielrichter sind in der Regel die letzte Instanz, da diese erst ihr Ergebnis abgeben sollten, sobald alle Zeiten genommen wurden und somit alle Schwimmer ins Ziel geschwommen sind. Sobald die Zielrichter ihre Abstimmung abgeben, gilt der Lauf als beendet und die Daten werden vom Kontroll-PC an den Auswerter-PC geschickt. Auch Überkopfstarts wurden implementiert, indem ein alter Lauf erst nach einer konfigurierbaren Anzahl von Sekunden beendet, nachdem das Startsignal für den neuen Lauf gegeben wurde. Dort wird der Lauf ausgewertet und letztendlich in Lenex exportiert, welches in EasyWK importiert wird.

Dokumentation

Das Projekt und die damit verbundene Arbeiten wurden in einer ausführlichen Dokumentation zusammengefasst. Diese kann hier als PDF heruntergeladen werden: