Cockpit.RennzeitInvers


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 invertierten Rennzeit berechnet.

{ Pascal Script Engine }
{ Event: DigInputEvent }
{ Parameter: 
    Cockpit.Slot=<SlotPlatz;0/1=Status Eingang;>,
    Cockpit.Station=<EingangNummer>,
    Cockpit.Parameter=<DeviceNummer> 
}
    
var
  message : String;
  diffZeit21 : Integer;
  
begin

  // Aktivität auf USB-Gerät 1 erkannt
  if Cockpit.Parameter = 1 then
  begin
    
    // Eingang 1 hat ausgelöst
    if Cockpit.Station = 1 then
    begin
    
      // Zeitstempel 1 speichern
      cpSetIntegerVar('sensorZeit1', Cockpit.RennzeitInvers);
      
      // Meldungstext erweitern
      cpSetStringVar('message', cpGetStringVar('message') + 
                     'Zeit Sensor 1: ' + 
                     FormatFloat('#,##0', cpGetIntegerVar('sensorZeit1')) + 
                     ' ms');
      cpSetStringVar('message', cpGetStringVar('message') + Chr(13) + Chr(10) );
      
    end;  // END if - Eingang 1
    
    
    // Eingang 2 hat ausgelöst
    if Cockpit.Station = 2 then
    begin
    
      // Zeitstempel 2 speichern
      cpSetIntegerVar('sensorZeit2', Cockpit.RennzeitInvers);
      
      // Meldungstext erweitern
      cpSetStringVar('message', cpGetStringVar('message') + 'Zeit Sensor 1: ');
      cpSetStringVar('message', cpGetStringVar('message') + 
                     FormatFloat('#,##0', cpGetIntegerVar('sensorZeit2')) + 
                     ' ms');
      cpSetStringVar('message', cpGetStringVar('message') + Chr(13) + Chr(10) );
      
      // Zeitdifferenz berechnen
      diffZeit21 := cpGetIntegerVar('sensorZeit2') - 
                    cpGetIntegerVar('sensorZeit1');
      
      // Meldungstext erweitern
      cpSetStringVar('message', cpGetStringVar('message') + 
                     'Differenz: ' + FormatFloat('#,##0', diffZeit21) + 
                     ' ms');
      
      // Meldung anzeigen
      cpShowMessage(message);
      
    end;   // END if - Eingang 2
    
  end;   // EDN if - USB-Gerät 1
 
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.rennzeitinvers.txt · Zuletzt geändert: 2020/11/28 12:16 (Externe Bearbeitung)