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.



Start - FAQ - Glossar - Sitemap - Impressum

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