Inhaltsverzeichnis
Cockpit.ResetZwischenzeit
Einleitung
Dieser Befehl setzt die Zwischenzeiten für alle Slots/IDs auf 0
.
Syntax
Befehl | Cockpit.ResetZwischenzeit |
---|---|
Funktion | Alle Zwischenzeiten für alle Slots/IDs auf 0 setzen |
Typ |
Codebeispiel
Das folgende Beispiel ist recht umfangreich ausgefallen. Es arbeitet mit Cockpit-XP IR-Sensoren und Zwischenzeitmessungen, die auf zwei USB-Boxen verteilt sind.
Sektor 1 liegt auf USB-Box Nummer 2 (Liste im Gerätemanager), die Sektoren 2+3 (Start/Ziel) sind auf USB-Box Nummer 1 konfiguriert. Jeder Eingang benötigt zusätzlich die Funktion Ereignis erzeugen: Fahrzeug
, da sonst das DigInputEvent
Ereignis im AddOn nicht ausgelöst wird.
{ Pascal Script Engine } { Event: DigInputEvent } { Parameter: Cockpit.Slot=<SlotPlatz;0/1=Status Eingang;>, Cockpit.Station=<EingangNummer>, Cockpit.Parameter=<DeviceNummer> } const USBBoxNr1 = 1; USBBoxNr2 = 2; var slot : Integer; eingangNr : Integer; sektorzeit : Integer; zwischenzeit : Integer; rundenzeit : Integer; msg : String; begin // Ereignis an USB-Box 1 erkannt if Cockpit.Parameter = USBBoxNr1 then begin // Nummer des Eingangs, der aktiviert wurde eingangNr := Cockpit.Station; // Slot speichern und einstellen slot := Cockpit.Slot; Cockpit.Slot := slot; // je nach Eingangsnummer Messpunkt einstellen // und Sektor-/Zwischenzeit erfassen case eingangNr of 1..4 : // Eingänge 1-4 = Sektor 3 begin Cockpit.Station := 3; sektorzeit := Cockpit.Sektorzeit; zwischenzeit := Cockpit.Zwischenzeit; rundenzeit := Cockpit.Rundenzeit; end; 5..8 : // Eingänge 5-8 = Sektor 2 begin Cockpit.Station := 2; sektorzeit := Cockpit.Sektorzeit; zwischenzeit := Cockpit.Zwischenzeit; end; end; // Meldung zusammenstellen msg := msg + Chr(13) + Chr(10); msg := msg + 'Sektor [' + IntToStr(Cockpit.Station) + ']: '; msg := msg + cpIntToStr3(sektorzeit) + 's'; msg := msg + Chr(13) + Chr(10); msg := msg + 'Zwischenzeit: ' + cpIntToStr3(zwischenzeit) + 's'; // Rundenzeit nur bei Sektor 3 einblenden if Cockpit.Station = 3 then begin msg := msg + Chr(13) + Chr(10); msg := msg + 'Rundenzeit: ' + cpIntToStr3(rundenzeit) + 's'; end; // Meldung anzeigen cpShowMessage(msg); end; // END if - USB-Box 1 // Ereignis an USB-Box 2 erkannt if Cockpit.Parameter = USBBoxNr2 then begin // Nummer des Eingangs, der aktiviert wurde eingangNr := Cockpit.Station; // Slot speichern und einstellen slot := Cockpit.Slot; Cockpit.Slot := slot; // je nach Eingangsnummer Messpunkt einstellen // und Sektor-/Zwischenzeit erfassen case eingangNr of 1..4 : // Eingänge 1-4 = Sektor 1 begin Cockpit.Station := 1; sektorzeit := Cockpit.Sektorzeit; zwischenzeit := Cockpit.Zwischenzeit; end; end; // Meldung zusammenstellen msg := msg + Chr(13) + Chr(10); msg := msg + 'Sektor [' + IntToStr(Cockpit.Station) + ']: '; msg := msg + cpIntToStr3(sektorzeit) + 's'; msg := msg + Chr(13) + Chr(10); msg := msg + 'Zwischenzeit: ' + cpIntToStr3(zwischenzeit) + 's'; msg := msg + Chr(13) + Chr(10); // Meldung anzeigen cpShowMessage(msg); // Zwischenzeit zurücksetzen Cockpit.ResetZwischenzeit := True; // Meldung erweitern msg := msg + Chr(13) + Chr(10); msg := msg + 'Reset Zwischenzeit durchgeführt'; msg := msg + Chr(13) + Chr(10); // Meldung erweitern msg := msg + Chr(13) + Chr(10); msg := msg + 'Sektor [' + IntToStr(Cockpit.Station) + ']: '; msg := msg + cpIntToStr3(Cockpit.Sektorzeit) + 's'; msg := msg + Chr(13) + Chr(10); msg := msg + 'Zwischenzeit: ' + cpIntToStr3(Cockpit.Zwischenzeit) + 's'; // Meldung anzeigen cpShowMessage(msg); end; // END if - USB-Box 2 end.
Zu sehen ist jeweils eine Meldung der Zwischenzeitsensoren. Bei Sektor 1 wird zusätzlich kurz gewartet und dann die Zwischenzeiten zurückgesetzt. Im Anschluss ergibt sich eine weitere Meldung, die den aktuellen Wert von Cockpit.Sektorzeit und Cockpit.Zwischenzeit anzeigt.
Schön zu sehen, dass sich der Reset-Befehl NUR auf die Zwischenzeit auswirkt.
Die Sektorzeit bleibt erhalten.