Zeitmessprotokoll¶
- Inhaltsverzeichnis
- Zeitmessprotokoll
Neben der Unterstützung für Software-Protokollen von Hardware-Herstellern, wie Omega oder Tag Heuer, zwecks Unterstützung von Zielkameras oder hoch-präzisen Uhren bietet Aquarius ein Software-Protokoll mit dem sich Zeitmessung umsetzen lässt. Das Protokoll lässt sich unabhängig vom Transportmedium (TCP/IP, serielle Schnittstelle) unter Datei -> Verbindungseinstellungen
einrichten.
Datenformat¶
Daten werden im Protokoll zeilenweise übertragen. Als Zeilenumbruch werden sowohl CR-LF-Sequenzen (vgl. ASCII-Code) und einzelne LF-Zeichen akzeptiert. Gesendet werden immer CR-LF-Sequenzen.
Eine Zeile, die an Aquarius gesendet wird, besteht aus einem Kommando und optionalen Argumenten. Argumente werden durch Leerzeichen vom Kommando sowie voneinander getrennt. Argumente bestehen aus Schlüssel-Wert-Paaren. Dem Namen (Schlüssel) des Argumente folgt ein "=", darauf der jeweilige Wert.
Beispiel: COMMAND arg1=value1 arg2=value2
Antworten (sofern vorgesehen) werden von Aquarius ebenfalls zeilenweise gesendet. Eine Leerzeile folgt einer mehrzeiligen Antwort, um deren Ende zu signalisieren.
Groß- und Kleinschreibung ist grundsätzlich relevant.
Kommandos¶
Status-Abfrage¶
Mit dem Kommando ?STATUS
(keine Argumente) werden die gestarteten Läufe und die gestarteten Boote abgefragt. Die Antwort enthält so viele Zeilen (ohne abschließende Leerzeile) wie gestartete Boote vorliegen. Neben der Laufnummer werden die (individuelle) Startzeit, Startbahn und Startnummer der Boote übermittelt. Die Startzeit wird im Format hh:mm:ss.ddd
(ddd = Tausendstel der Sekunde) übertragen. Die Angaben sind durch ein einzelnes Leerzeichen voneinander getrennt.
Beispiel (Pfeile am Beginn der Zeile signalisieren die Richtung der Daten, Aquarius links, Client rechts):
< ?STATUS > 12 1 1 12:00:53.934 > 12 2 2 12:00:53.934 > 12 3 3 12:00:53.934 >Hier starten im Lauf mit der Nummer 12, drei Boote auf den Bahnen 1 bis 3 mit identischen Startnummern. Startzeit für alle Boote ist kurz nach 12:00 Uhr. Eine Sortierung der Datensätze ist nicht definiert. Die Leerzeile signalisiert das Ende der Datensätze.
Zeitmessdaten senden¶
Um Zeiten an Aquarius zu senden, muss das Kommando TIME
abgesetzt werden. Es können die folgenden Argumente angegeben werden, die alle optional sind:
- time: Tageszeit für die Zeitmessdaten. Wird diese Argument nicht angegeben, wird die aktuelle Zeit auf dem empfangenden Aquarius-Rechner verwendet.
- bib: Startnummer des Boots, für das die Zeit aufgezeichnet werden soll.
- lane: Startbahn des Boots, für das die Zeit aufgezeichnet werden soll.
- comp: Nummer des Laufs, für den die Zwischenzeit gelten soll.
- split: Nummer der Zwischenzeit. 0 bedeutet Start, 1 die erste Zwischenzeit und so fort. Das Ziel hat die Nummer 64.
- dist: Streckenmarke (in Meter), an der die Zeit gemessen worden ist. Bei einem 2000-Meter-Rennen mit drei Zwischenzeiten liegt die erste Zwischenzeit bei Streckenmarke 1500, die dritte bei 500. Bei einem Rennen über 1000 Meter mit einer Zwischenzeit liegt die erste (und einzige) Marke ebenfalls bei 500 Meter. So genügt es, die feste Position statt der variablen Zwischenzeitnummer zu übertragen.
- open {NEW}, ohne Wert: der Lauf wird in der Oberfläche geöffnet.
- Die Startnummer (bib) hat Vorrang gegenüber der Bahn (lane) wenn beide angegeben werden.
- Wenn die Zwischenzeitnummer (split) und Distanz (dist) gleichzeitig angegeben werden, hat die Zwischenzeitnummer Vorrang.
- Zeit muss im Format hh:mm:ss.ddd (d = Tausendstel) angegeben werden
Auf dieses Kommando wird keine Antwort gesendet.
Beispiele:
- Neue Zielzeit (automatisch ermittelt) für undefiniertes Boot
< TIME
- explizite Zeitangabe für ein Boot
< TIME time=17:00:00.100 split=1 bib=27 comp=8
Startnummer 27 hat in Lauf 8 die erste Zwischenzeit um sehr kurz nach 17 Uhr überquert. - mit Streckenmarke und Bahn
< TIME time=17:00:00.100 dist=1500 lane=3 comp=8
Das Boot auf Bahn 3 hat in Lauf 8 die Streckenmarke bei 1500 Meter um sehr kurz nach 17 Uhr überquert.
Fehlstart auslösen¶
seit Version 3.13
Für ein gestartetes Rennen kann ein Fehlstart mit dem FALSESTART
-Kommando ausgelöst werden. Im Wesentlichen werden hierbei die gleichen Parameter unterstützt wie beim TIME
-Kommando.
Liste der in Zeitmessung geöffneten Läufe¶
Mit Kommando ?OPEN
können die auf dem Rechner, zu dem die Verbindung hergestellt worden ist, geöffneten Läufe abgefragt werden. Die Antwort enthält die Liste geöffneten der Läufe mit ihrer Laufnummer, der Datenbank-ID und ihrem Zustand (geplant, gestartet, etc.). Beispiel:
< ?OPEN > 437 1 3 > 438 2 1 > 439 3 1 >
Der Zustand eines Laufs kann dabei folgende Werte annehmen: {TODO}
Die Reihenfolge der übermittelten Läufe entspricht der Reihenfolge, in der die Läufe geöffnet worden sind.
Benachrichtigung über geänderte Läufe¶
Wird ein Lauf im Zeitmessfenster des verbundenen Rechners geöffnet oder geschlossen, wird eine entsprechende einzeilige Benachrichtigung versendet. Diese Beginnt mit einem Ausrufezeichen, dem das Wort OPEN
folgt und schließlich ein Plus (neuer Lauf geöffnet) oder ein Minus (bereits geöffneter Lauf geschlossen). Mit Leerzeichen getrennt wird die Datenbank-ID und die Laufnummer ausgegeben. Beispiel:
> !OPEN- 437 1 > !OPEN+ 440 4
Der im vorherigen Beispiel noch geöffnete (erste) Lauf ist geschlossen worden. Im Anschluss wurde der Lauf mit der Nummer 4 und Datenbank-ID 440 geöffnet.
Startliste eines Laufs abfragen¶
Das Kommando ?STARTLIST
ermöglicht das Abfragen der Startliste eines Laufs. Dies kann entweder über die Datenbank-ID (Parameter id
) oder die im Zeitplan vergebene Laufnummer (Parameter nr
) erfolgen. Die ID wird bei gleichzeitiger Angabe beider Informationen bevorzugt. Zu beachten ist, dass nur Startlisten von Läufen abgefragt werden können, die auf dem anfragten Rechner in der Zeitmessung geöffnet sind. Die Antwort enthält dabei die Bahn, die Startnummer, den Status des Boots und die Kurzbezeichnung des Bootes auf der jeweiligen Bahn. Eventuell frei gelassene Bahnen werden nicht angezeigt. Der Status des Boots gibt Auskunft über eine eventuelle Abmeldung. Bei einem Wert von 0 liegt keine Abmeldung vor. Ein Wert ungleich 0 signalisiert das Gegenteil. Die Bootsbezeichnung wird von einfachen Anführungsstrichen umgeben. Treten im Bootsnamen selbst einfache Anführungsstriche auf, werden diese verdoppelt (RC 'A' von 1980 -> 'RC ''A'' von 1980')
Beispiel:
< ?STARTLIST id=440 > 2 13 0 'RC Stadt A' > 3 14 1 'RK Dorf D' > 5 15 0 'Rgm. Insel ''C'' / Dorf D' > 6 15 0 'RC Stadt A' >
Von Steffen Christgau vor etwa 1 Monat aktualisiert · 19 Revisionen