Zeitmessprotokoll » Historie » Version 6
Steffen Christgau, 28.04.2017 10:46
1 | 1 | Steffen Christgau | h1. Zeitmessprotokoll |
---|---|---|---|
2 | |||
3 | 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. |
||
4 | |||
5 | h2. Datenformat |
||
6 | |||
7 | 5 | Steffen Christgau | 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. |
8 | 1 | Steffen Christgau | |
9 | 6 | Steffen Christgau | 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. |
10 | 1 | Steffen Christgau | |
11 | Beispiel: @COMMAND arg1=value1 arg2=value2@ |
||
12 | |||
13 | Antworten (sofern vorgesehen) werden von Aquarius ebenfalls zeilenweise gesendet. Eine Leerzeile folgt einer mehrzeiligen Antwort und deren Ende zu signalisieren. |
||
14 | |||
15 | Groß- und Kleinschreibung ist grundsätzlich relevant. |
||
16 | |||
17 | h2. Kommandos |
||
18 | |||
19 | h3. Status-Abfrage |
||
20 | |||
21 | 3 | Steffen Christgau | 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. |
22 | 1 | Steffen Christgau | |
23 | 3 | Steffen Christgau | Beispiel (Pfeile am Beginn der Zeile signalisieren die Richtung der Daten, Aquarius links, Client rechts): |
24 | 1 | Steffen Christgau | |
25 | 2 | Steffen Christgau | <pre> |
26 | < STATUS |
||
27 | > 12 1 1 12:00:53.934 |
||
28 | > 12 2 2 12:00:53.934 |
||
29 | > 12 3 3 12:00:53.934 |
||
30 | > |
||
31 | 4 | Steffen Christgau | </pre>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. |
32 | 2 | Steffen Christgau | |
33 | 1 | Steffen Christgau | h3. Zeitmessdaten senden |
34 | |||
35 | 2 | Steffen Christgau | Um Zeiten an Aquarius zu senden, muss das Kommando @TIME@ abgesetzt werden. Es können die folgenden Argumente angegeben werden, die alle optional sind: |
36 | |||
37 | * time: Tageszeit für die Zeitmessdaten. Wird diese Argument nicht angegeben, wird die aktuelle Zeit auf dem empfangenden Aquarius-Rechner verwendet. |
||
38 | * bib: Startnummer des Boots, für das die Zeit aufgezeichnet werden soll. |
||
39 | * lane: Startbahn des Boots, für das die Zeit aufgezeichnet werden soll. |
||
40 | * comp: Nummer des Laufs, für den die Zwischenzeit gelten soll. |
||
41 | * split: Nummer der Zwischenzeit. 0 bedeutet Start, 1 die erste Zwischenzeit und so fort. Das Ziel hat die Nummer 64. |
||
42 | * 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. |
||
43 | |||
44 | Es gelten folgende Einschränkungen: |
||
45 | 1 | Steffen Christgau | * Die Startnummer (bib) hat Vorrang gegenüber der Bahn (lane) wenn beide angegeben werden. |
46 | 2 | Steffen Christgau | * Wenn die Zwischenzeitnummer (split) und Distanz (dist) gleichzeitig angegeben werden, hat die Zwischenzeitnummer Vorrang. |
47 | 4 | Steffen Christgau | * Zeit muss im Format hh:mm:ss.ddd (d = Tausendstel) angegeben werden |
48 | 2 | Steffen Christgau | |
49 | Auf dieses Kommando wird keine Antwort gesendet. |
||
50 | |||
51 | Beispiele: |
||
52 | |||
53 | # Neue Zielzeit (automatisch ermittelt) für undefiniertes Boot |
||
54 | <pre> |
||
55 | < TIME |
||
56 | </pre> |
||
57 | # explizite Zeitangabe für ein Boot |
||
58 | <pre> |
||
59 | < TIME time=17:00:00.100 split=1 bib=27 comp=8 |
||
60 | 1 | Steffen Christgau | </pre>Startnummer 27 hat in Lauf 8 die erste Zwischenzeit um sehr kurz nach 17 Uhr überquert. |
61 | 2 | Steffen Christgau | # mit Streckenmarke und Bahn |
62 | <pre> |
||
63 | 4 | Steffen Christgau | < TIME time=17:00:00.100 dist=1500 lane=3 comp=8 |
64 | 2 | Steffen Christgau | </pre>Das Boot auf Bahn 3 hat in Lauf 8 die Streckenmarke bei 1500 Meter um sehr kurz nach 17 Uhr überquert. |