Cockpit.Sensorzeit


Cockpit-XP bietet mehrere Möglichkeiten, Zeitberechnungen durchzuführen. Die hier vorgestellte bezieht sich auf die an einem USB-Gerät angeschlossenen Sensoren zur Zeiterfassung.

Der Befehl Cockpit.Sensorzeit liefert den Zeitpunkt der Überfahrt eines Sensors, der an einem Cockpit-XP USB-Gerät angeschlossen ist. Es spielt keine Rolle, um welche Art Sensor es sich handelt. Prinzipiell könnte man davon ausgehen, dass Cockpit.Rennzeit und Cockpit.Sensorzeit gleiche Inhalte haben, da beide mit dem Start/der Freigabe einer Session beginnen und von 0 hochzählen.

Cockpit.Sensorzeit kommt z.B. zum Einsatz, wenn man Zeitunterschieden zwischen zwei Sensorüberfahrten berechnen möchte, z.B. zur eigenen Ermittlung von Sektor-/Zwischenzeiten.

Sowohl bei Cockpit.Rennzeit, Cockpit.RennzeitInvers als auch cpGetSystemTimeMs sind sonst Abweichungen gegenüber internen Variablen, z.B. Cockpit.Sektorzeit wahrscheinlich.

WICHTIG: Der interne Taktgeber der USB-Geräte wird NICHT angehalten, wenn eine Session unterbrochen (Chaos) ist. Entsprechend können sich mit zunehmender Dauer einer Session signifikante Unterschiede im Vergleich zu den anderen Zeitwerten ergeben.

Syntax

Befehl Cockpit.Sensorzeit
Funktion Liefert einen Zeitstempel der internen Zeitgeber der USB-Box in Millisekunden seit Rennfreigabe, wenn ein Sensor über- (Cockpit IR-Empfänger, Fotowiderstand) oder durchfahren (Gabellichtschranken) wird
Typ Integer


Codebeispiel

{ 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.Sensorzeit);
      
      // Meldungstext erweitern
      cpSetStringVar('message', cpGetStringVar('message') + 'Zeit Sensor 1: ');
      cpSetStringVar('message', cpGetStringVar('message') + 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.Sensorzeit);
      
      // 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: ');
      cpSetStringVar('message', cpGetStringVar('message') + FormatFloat('#,##0', diffZeit21) + ' ms');
      
      // Meldung anzeigen
      cpShowMessage(message);
      
    end;   // END if - Eingang 2
    
  end;   // EDN if - USB-Gerät 1
 
end.


Das Bild das Ergebnis der Auswertung der beiden erfassten Zeitstempel von Sensor 1 und Sensor 2.



Start - FAQ - Glossar - Sitemap - Impressum

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