Dieser Befehl setzt die Zwischenzeiten für alle Slots/IDs auf 0.
| Befehl | Cockpit.ResetZwischenzeit |
|---|---|
| Funktion | Alle Zwischenzeiten für alle Slots/IDs auf 0 setzen |
| Typ |
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.

