===== Cockpit.Zwischenzeit ===== ==== Einleitung ==== Cockpit-XP unterscheidet zwischen Sektorzeit und Zwischenzeit. Für beide Varianten gibt es entsprechende Befehle im AddOn. Allerdings ist der Programmieraufwand derzeit etwas höher als bei der Topspeed. Da es kein eigenes Event gibt, geht die Verarbeitung nur über das [[cockpit-xp:addOn:ereignisse:diginputevent|DigInputEvent]]. Um hier funktionierenden Code zu erhalten, muss für jeden Eingang in der Rennbahn neben der Funktion ''Zwischenzeit (Station)'' auch ''Ereignis erzeugen: Fahrzeug'' eingestellt sein. Zusätzlich wird es erforderlich, die Nummer der USB-Geräte zu notieren. Es kann vorkommen, dass die Sensoren auf mehr als ein USB-Gerät verteilt sind. \\ {{ :cockpit-xp:addon:befehlsreferenz:cpwiki-cockpit-sektor-und-zwischenzeit-1.png?nolink&640 |}} [[cockpit-xp:addon:befehlsreferenz:cockpit.zwischenzeit|Cockpit.Zwischenzeit]] addiert mit jedem Sektor die gefahrene Zeit in diesem Streckenabschnitt. Daraus ergeben sich folgende Vergleichswert (hier mit 3 Sektormessungen): Zwischenzeit 1 = Sektorzeit 1 \\ Zwischenzeit 2 = Sektorzeit 1 + Sektorzeit 2 \\ Zwischenzeit 3 = Sektorzeit 1 + Sektorzeit 2 + Sektorzeit 3 oder Rundenzeit \\ Die Zeiten für alle Sektorenmesspunkte lässt sich mit dem Befehl [[cockpit-xp:addon:befehlsreferenz:cockpit.resetzwischenzeit|Cockpit.ResetZwischenzeit]] auf ''0'' setzen. ==== Syntax ==== ^ Befehl | Cockpit.Sektorzeit| ^ Funktion | Enthält die Sektorzeit für einen Messpunkt als Integerwert | ^ Typ | Integer | \\ ==== Codebeispiel ===== Der Umfang des Beispielcodes zeigt gut den Unterschied im Aufwand verglichen mit dem Topspeed-Befehl. \\ { Pascal Script Engine } { Event: DigInputEvent } { Parameter: Cockpit.Slot=, Cockpit.Station=, Cockpit.Parameter= } 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 1 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'; // Meldung anzeigen cpShowMessage(msg); end; // END if - USB-Box 2 end. \\ Dieser Code zeigt die Sektor- und Zwischenzeiten an. Zum Vergleich ist mit dem Windows Rechner die Summe der Sektorzeiten addiert. Schön zu sehen, wie sich Sektor- und Zwischenzeit unterscheiden. Ebenfalls gut erkennbar, das Zwischenzeit = der Rundenzeit bzw. der Summe aller 3 Sektorzeiten entspricht. \\ {{:cockpit-xp:addon:befehlsreferenz:cpwiki-cockpit-sektor-und-zwischenzeit-2.png?nolink|}}{{:cockpit-xp:addon:befehlsreferenz:cpwiki-cockpit-sektor-und-zwischenzeit-3.png?nolink|}}{{:cockpit-xp:addon:befehlsreferenz:cpwiki-cockpit-sektor-und-zwischenzeit-4.png?nolink|}} {{ :cockpit-xp:addon:befehlsreferenz:cpwiki-cockpit-sektor-und-zwischenzeit-5.png?nolink |}} \\ ---- [[cockpit-xp:start|Start]] - [[cockpit-xp:faq|FAQ]] - [[cockpit-xp:glossar|Glossar]] - [[cockpit-xp:sitemap|Sitemap]] - [[cockpit-xp:impressum|Impressum]]