Eigene Skripte schreiben

Skripte für tägliche Ergebnisse

SeeYou berechnet die Werte der Tagesleistung wie Distanz, Geschwindigkeit, Abflug- und Zielzeit usw. Es liegt in der Verantwortung des Wertungsskriptes, zu bestimmen, wie viele PUNKTE für die erreichte Leistung vergeben werden. 

SeeYou Competition-Skripte werden mit den Innerfuse-Pascal-Skripten implementiert ( http://www.carlo-kok.com). Es handelt sich um recht einfache Pascal-Routinen mit einigen Ausnahmen. 

Sie können Skripte mit Notepad oder einem anderen Texteditor Ihrer Wahl schreiben. Sie können die Skripte für jede Wettbewerbsklasse separat mit Bearbeiten > Wettbewerbseigenschaften > Skripte zuweisen. 

Es ist wichtig, die allgemeine Struktur des Skripts beizubehalten: 

Programm Scoring_Script_Name;

beginnen

... // Ihr Skript hier

Ende.

und die Skripte fortlaufend zu nummerieren:

Es gibt viele Variablen, die für das Scoring-Skript verfügbar sind. Siehe unten für verfügbare Variablen für Daily Script.

Skripte für Gesamtergebnisse

Sie können auch ein Skript für Gesamtergebnisse schreiben. Die Vorgehensweise ist dieselbe wie bei den täglichen Skripten, außer dass sie sich unter Bearbeiten > Wettbewerbseigenschaften > Gesamtskript befinden. Siehe unten für verfügbare Variablen für das Gesamtskript. 

Wie funktioniert das?

Ein TPilots-Datensatz wird von SeeYou für das Scoring-Skript bereitgestellt. Der TPilots-Datensatz und ein paar andere Felder bestimmen alle Informationen, die für die Berechnung der Wertung für einen bestimmten Wettbewerbstag erforderlich sind. Dies ist die Definition des TPilot-Datensatzes: 

SKRIPT FÜR TAGESPUNKTE

Piloten[i] = Datensatz (Werte sind Double, wenn nicht anders angegeben)

  • sstart in den Ergebnismengen angezeigte Startzeit in Sekunden
  • sfinish Zielzeit, die in den Ergebnismengen in Sekunden angezeigt wird (negative Werte - kein Ziel) 
  • sdis Abstand in den Ergebnissen in Metern (negative Werte werden in Klammern angezeigt)
  • sspeed Geschwindigkeit in den Ergebnissen in m/s (negative Werte werden in Klammern angezeigt)
  • Punkte Punkte in den Ergebnissen angezeigt
  • pointString: String; eine String-Darstellung der Punkte für die benutzerdefinierte Ausgabe
  • Hcap-Handicap-Faktor wie im Pilot-Setup angegeben
  • Strafpunkte, die im Dialog Tagesleistung definiert sind
  • start Startzeit der Aufgabe (-1 wenn kein Start)
  • finish Endzeitpunkt der Aufgabe (-1 wenn kein Ende)
  • Abgeflogene Strecke
  • speed Geschwindigkeit der beendeten Takte (-1 wenn kein Ende, berücksichtigt die Taskzeit)
  • tstart Startzeitpunkt des Tasks mit Uhrzeit (-1 wenn kein Start)
  • tfinish Endzeit der Aufgabe mit Zeit
  • tdis geflogene Strecke in Task-Zeit
  • tspeed geflogene Strecke geteilt durch Task-Zeit
  • Start Startzeit (-1 wenn kein Start)
  • Landung Landezeit (-1 wenn keine Landung)
  • phototime Außenlandungszeit (-1 wenn keine Außenlandung)
  • isHc auf TRUE gesetzt, wenn nicht konkurrierend verwendet wird
  • FinishAlt Höhe des Task-Endes
  • DisToGoal Abstand zwischen Aufgabenlandepunkt und Fluglandepunkt
  • Wert der Tag-Zeichenkette, wie im Dialogfeld "Tagesleistung" definiert
  • Leg,LegT Array von TLeg-Datensätzen (siehe Definition für TLeg unten)
  • Warnung: String; wird verwendet, um eine Benutzerwarnung einzurichten
  • CompID: String; Wettbewerbs-ID des Segelflugzeugs
  • PilotTag: String; String-Wert wie im Pilot-Editierdialog definiert
  • user_str1,user_str2,user_str3: String; Benutzerstrings, Verwendung für alles
  • td1,td2,td3: Double; temporäre Variablen, Verwendung für alles
  • Marker: Array von TMarker (siehe Definition für TMarker unten)
  • PotStarts: array of Integer; Array aller gültigen Überschreitungen der Startlinie. In Sekunden seit Mitternacht

TLeg = Datensatz; enthält Beininformationen

  • start,finish,d,crs Double; Zeit in Sekunden, Entfernung in Metern, crs in Radiant
  • td1,td2,td3 Double; Variablen können als temporäre Variablen verwendet werden  

TMarkers = Datensatz; dieser Datensatz enthält Informationen über alle Zeiten, in denen die Schaltfläche "Pilot Event Marker" gedrückt wurde

  • Tsec: Integer; Zeit jeder Betätigung der Pilotevent-Taste
  • Msg: Optionale Nachricht, die mit der Pilot-Ereignismarkierung in der IGC-Datei gespeichert wird

Andere Variablen

  • info1..info2 Informationsstrings, die in den Ergebnissen angezeigt werden
  • DayTag Zeichenkettenwert wie im Dialogfeld "Tageseigenschaften" definiert
  • ShowMessage( s:string ); verwenden Sie dies zum Debuggen Ihrer Skripte 

Aufgabe = Datensatz; enthält grundlegende Informationen über die Aufgabe

  • TotalDis: Double; Taskdistanz in Metern
  • TaskTime: Integer; Task-Zeit in Sekunden  
  • NoStartBeforeTime: Integer; Startzeit in Sekunden
  • Punkt: Array of TTaskPoint; Beschreibung der Aufgabe
  • ClassID: string; Ein Enum der vorhandenen Klassen:
    • Welt
    • Verein
    • Standard
    • 13_5_meter
    • 15_meter
    • 18_meter
    • Doppelsitzer
    • öffnen
    • hang_glider_flexible
    • hang_glider_rigid
    • gleitschirm
    • unbekannt
  • ClassName: string; Optionaler schöner Name für die angegebene Klasse (wie bei Soaring Spot eingegeben)

TTaskPoint = Datensatz; enthält grundlegende Informationen über Taskpoint und Strecke

  • lon,lat: Double; 
  • d,crs: Double; Abstand, Kurs zum nächsten Punkt
  • td1,td2,td3 Double; Variablen können als temporäre Variablen verwendet werden

SKRIPT FÜR GESAMTPUNKTE

Piloten = Rekord

  • Total : Double; Gesamtpunkte (Standardwert ist die Summe der DayPoints, nicht 0)
  • TotalString : String; wenn dieser Wert nicht leer ist, wird die Gesamtpunktzahl als der in diesem Wert definierte String angezeigt 
  • DayPts : array of Double; Punkte von jedem Tag, wie in täglichen Skripten berechnet
  • DayPtsString : array of String; Gleiche Funktionalität wie TotalString
Aktualisiert am April 20, 2021

War dieser Artikel hilfreich?

Verwandte Artikel