Inhaltsverzeichnis

Cockpit.Rennzeit


Cockpit-XP bietet mehrere Möglichkeiten, Zeitberechnungen durchzuführen. Die hier vorgestellte bezieht sich auf die vorgegebene Zeit für einen Rennmodus (Training, Quali, Rennen).

Der Befehl Cockpit.Rennzeit liefert den Zeitpunkt ab dem Start/der Freigabe einer Session.

Ist eingestellt, dass die Rennzeit erst mit der ersten Überfahrt von Start/Ziel beginnt, gilt bis dahin der initiale Wert. Bei einem Training, einer Qualifikation beginnt die Zeit mit Wert 0 und zählt dann hoch, bis die Session beendet ist.

In einem Rennen in der Initalwert die Vorgabezeit in Millisekunden. Bei einem 5 Minuten Rennen ist der Startwert 300.000 ms.

Cockpit.RennzeitInvers basiert in allen 3 Rennmodi auf dem Startwert 0. Der Einsatz ist sinnvoll, wenn man für die Ermittlung von Zeitdifferenzen die Formeln nicht für Rennen und Training/Quali doppelt und mit umgekehrter Subtraktion verwenden möchte.

WICHTIG: Cockpit.Rennzeit und Cockpit.RennzeitInvers erhalten ihre Werte erst mit dem Start einer Session. Im Event StartRealTime ist der Wert noch 0.

Ist der Modus Freies Training gewählt, gibt es keine Zeitvorgabe und die Werte von Cockpit.Rennzeit und Cockpit.RennzeitInvers sind ebenfalls 0.

Syntax

Befehl Cockpit.Rennzeit
Funktion Liefert die laufende Zeit ab dem Start/der Freigabe einer Session.
Typ Integer


Codebeispiel

In dem folgenden Beispiel wird die Differenz zwischen zwei Sensoren aus der Rennzeit berechnet.

  1. { Pascal Script Engine }
  2. { Event: DigInputEvent }
  3. { Parameter:
  4. Cockpit.Slot=<SlotPlatz;0/1=Status Eingang;>,
  5. Cockpit.Station=<EingangNummer>,
  6. Cockpit.Parameter=<DeviceNummer>
  7. }
  8. var
  9. message : String;
  10. diffZeit21 : Integer;
  11. begin
  12.  
  13. // Aktivität auf USB-Gerät 1 erkannt
  14. if Cockpit.Parameter = 1 then
  15. begin
  16. // Eingang 1 hat ausgelöst
  17. if Cockpit.Station = 1 then
  18. begin
  19. // Zeitstempel 1 speichern
  20. cpSetIntegerVar('sensorZeit1', Cockpit.Rennzeit);
  21. // Meldungstext erweitern
  22. cpSetStringVar('message', cpGetStringVar('message') + 'Zeit Sensor 1: ');
  23. cpSetStringVar('message', cpGetStringVar('message') + FormatFloat('#,##0', cpGetIntegerVar('sensorZeit1')) + ' ms');
  24. cpSetStringVar('message', cpGetStringVar('message') + Chr(13) + Chr(10) );
  25. end; // END if - Eingang 1
  26. // Eingang 2 hat ausgelöst
  27. if Cockpit.Station = 2 then
  28. begin
  29. // Zeitstempel 2 speichern
  30. cpSetIntegerVar('sensorZeit2', Cockpit.Rennzeit);
  31. // Meldungstext erweitern
  32. cpSetStringVar('message', cpGetStringVar('message') + 'Zeit Sensor 1: ');
  33. cpSetStringVar('message', cpGetStringVar('message') + FormatFloat('#,##0', cpGetIntegerVar('sensorZeit2')) + ' ms');
  34. cpSetStringVar('message', cpGetStringVar('message') + Chr(13) + Chr(10) );
  35. // Zeitdifferenz berechnen
  36. diffZeit21 := cpGetIntegerVar('sensorZeit2') - cpGetIntegerVar('sensorZeit1');
  37. // Meldungstext erweitern
  38. cpSetStringVar('message', cpGetStringVar('message') + 'Differenz: ');
  39. cpSetStringVar('message', cpGetStringVar('message') + FormatFloat('#,##0', diffZeit21) + ' ms');
  40. // Meldung anzeigen
  41. cpShowMessage(message);
  42. end; // END if - Eingang 2
  43. end; // EDN if - USB-Gerät 1
  44. end.


Das Bild links zeigt das Ergebnis der Auswertung mit eingestellter Rundenvorgabe (10 Runden). In der Mitte die gleichen Werte mit Zeitvorgabe (10 min.) und rechts die Zeiten in einem Freien Training.

Die Zeitdifferenzen zwischen Rennzeit/RennzeitInvers und Sensorzeit ist die Reaktionszeit beim Start einer Session. Die Rennzeit läuft erst bei Überfahrt des 1. Sensors, die Sensorzeit mit der Freigabe der Session.



Start - FAQ - Glossar - Sitemap - Impressum

 
cockpit-xp/addon/befehlsreferenz/cockpit.rennzeit.txt · Zuletzt geändert: 2020/11/28 12:16 (Externe Bearbeitung)