Inhaltsverzeichnis
cpGetRacingStatus()
Syntax
| Befehl | cpGetRacingStatus() |
|---|---|
| Funktion | Liefert den Status der aktuellen Session. 'R'=Run(läuft), 'S'=Stopped(Beendet,Abbruch), 'P'=Paused(Chaos). |
| Typ | String |
Codebeispiel
{ Pascal Script Engine }
{ Event: ChangeRealTimeStatus }
{ Parameter: Cockpit.Parameter = <RennStatus> }
const
CrLf = Chr(13) + Chr(10);
var
racingMode : String;
racingStatus : String;
m : String;
s : String;
p : String;
realTimeStatus : Integer;
begin
// Variablen Werte zuweisen
racingMode := cpGetRacingMode();
racingStatus := cpGetRacingStatus();
realTimeStatus := Cockpit.Parameter;
// String für cpGetRacingMode() zusammensetzen
case racingMode of
'Q' : m := 'Qualifikation ('+racingMode+')';
'R' : m := 'Rennen ('+racingMode+')';
'T' : m := 'Training ('+racingMode+')';
end;
// String für cpGetRacingStatus() zusammensetzen
case racingStatus of
'P' : s := 'Pause ('+racingStatus+')';
'R' : s := 'Läuft ('+racingStatus+')';
'S' : s := 'Gestoppt ('+racingStatus+')';
end;
// String für Cockpit.Parameter zusammensetzen
case realTimeStatus of
0 : p := 'Vor Session Start. ('+IntToStr(realTimeStatus)+'). ' +
'Nächster Parameter: (1).';
1 : p := 'Session läuft ('+IntToStr(realTimeStatus)+'). ' +
'Nach Pause nur (1).';
2 : p := 'Start mit Ampel. Sequenz ('+IntToStr(realTimeStatus)+') ' +
' -> (0) -> (1).';
3 : p := 'Sieger ist im Ziel ('+IntToStr(realTimeStatus)+').';
4 : p := 'Session beendet ('+IntToStr(realTimeStatus)+').';
5 : p := 'Nicht verwendet.';
6 : p := 'Chaos ('+IntToStr(realTimeStatus)+').';
7 : p := 'Chaos mit Nachlaufzeit ('+IntToStr(realTimeStatus)+').';
8 : p := 'Nicht verwendet.';
9 : p := 'Session abgebrochen ('+IntToStr(realTimeStatus)+').';
end;
// Strings in Datei protokollieren
Cockpit.WriteLog := '----- Code-Beispiel RacingMode, RacingStatus ' +
'und ChangeRealTimeStatus -----';
Cockpit.WriteLog := 'Rennmodus (cpGetRacingMode) : ' + m;
Cockpit.WriteLog := 'Rennstatus (cpGetRacingStatus): ' + s;
Cockpit.WriteLog := 'ChangeRealTimeStatus (Cockpit.Parameter): ' + p;
Cockpit.WriteLog := '------------------------------------------------' +
'-----------------------------';
// Strings als Meldung anzeigen
cpShowMessage('RennModus: ' + m + CrLf +
'RennStatus: ' + s + CrLf +
'Cockpit.Parameter: ' + p );
end.
Dieser Code schreibt den aktuellen Rennstatus in die String-Variable RennStatus.
Somit kann man gezielt vor allem im ChangeRealTime Event je nach Status weitere Aktivitäten programmieren wie z.B wenn Chaos ausgelöst wurde dann ermittle Chaosauslöser, wenn Session zu Ende dann resete alle Variablen, wenn Quali zu Ende dann blende Strataufstellung ein etc.
Screenshot 1 - Statusabfolge Ampelstart
Screenshot 2 - Status Rennen pausiert (Chaos)
Screenshot 3 - Status nach Aufruf eines Rennbildschirms
