Pisanie własnych skryptów

Skrypty dla codziennych wyników

SeeYou obliczy pozycje wydajności dnia, takie jak odległość znakowania, prędkość, czas startu i mety itp. Zadaniem skryptu jest określenie ilości PUNKTÓW przyznawanych za osiągnięte wyniki. 

Skrypty SeeYou Competition są zaimplementowane przy użyciu skryptów Innerfuse Pascal Scripts ( http://www.carlo-kok.com). Są to bardzo podstawowe procedury Pascala z kilkoma wyjątkami. 

Skrypty można pisać w Notatniku lub w innym edytorze tekstu, który wybierzesz. Możesz przypisać skrypty do każdej klasy zawodów osobno poprzez Edycja > Właściwości zawodów > Skrypty. 

Ważne jest, aby zachować ogólną strukturę scenariusza: 

Program Scoring_Script_Name;

zacznij

... // Twój skrypt tutaj

koniec.

i kolejno numerować skrypty:

Istnieje wiele zmiennych dostępnych dla skryptu scoringowego. Zobacz poniżej, jakie zmienne są dostępne dla skryptu dziennego.

Skrypty dla wyników całkowitych

Możesz również napisać skrypt dla wyników całkowitych. Procedura jest taka sama jak w przypadku skryptów dziennych z tą różnicą, że znajdują się one w Edycja > Właściwości zawodów > Skrypt sumaryczny. Zobacz poniżej, jakie zmienne są dostępne dla skryptu Total. 

Jak to działa?

Rekord TPilots jest dostarczany przez SeeYou do skryptu Scoring. Rekord TPilots i kilka innych pól określają wszystkie informacje potrzebne do obliczenia punktacji za dany dzień zawodów. Oto definicja rekordu TPilot: 

SKRYPT DLA PUNKTÓW DZIENNYCH

Piloci[i] = zapis (wartości są podwójne, jeśli nie wskazano inaczej)

  • sstart czas startu wyświetlany w zestawach wyników w sekundach
  • sfinish czas zakończenia wyświetlany w zestawach wyników w sekundach (wartości ujemne - brak zakończenia) 
  • sdis odległość podana w wynikach w metrach (wartości ujemne będą podane w nawiasach)
  • sspeed prędkość podana w wynikach w m/s (wartości ujemne będą podane w nawiasie)
  • punkty wykazane w wynikach
  • pointString: łańcuch; łańcuchowa reprezentacja punktów dla niestandardowych danych wyjściowych
  • Współczynnik handicapu Hcap podany w konfiguracji pilota
  • punkty karne zdefiniowane w oknie dialogowym Day performance
  • start czas rozpoczęcia zadania (-1 jeśli brak startu)
  • finish czas zakończenia zadania (-1 jeśli brak zakończenia)
  • odległość odlotu
  • prędkość prędkość zakończonych taksów (-1 jeśli brak zakończenia, uwzględnia czas zadania)
  • tstart czas startu zadania z czasem (-1 jeśli brak startu)
  • tfinish czas zakończenia zadania z czasem
  • tdis odległość przelotu w czasie zadania
  • tspeed odległość lotu podzielona przez czas zadania
  • start czas startu (-1 jeśli brak startu)
  • lądowanie czas lądowania (-1 jeśli brak lądowania)
  • phototime czas wychodzenia na ląd (-1 jeśli brak wychodzenia na ląd)
  • isHc ustawione na TRUE, jeśli nie jest używane konkurowanie
  • FinishAlt wysokość zakończenia zadania
  • DisToGoal odległość między punktem lądowania zadania a punktem lądowania lotu
  • Wartość ciągu znaczników zdefiniowana w oknie dialogowym Day performace
  • Leg,LegT tablica rekordów TLeg (patrz definicja TLeg poniżej)
  • Ostrzeżenie: String; służy do ustawiania ostrzeżenia dla użytkownika
  • CompID: String; Identyfikator konkurencji szybowca.
  • PilotTag: String; wartość łańcuchowa zdefiniowana w oknie dialogowym edycji pilota
  • user_str1,user_str2,user_str3: String; łańcuchy użytkownika, użyj do czegokolwiek
  • td1,td2,td3: Double; zmienne tymczasowe, użyj do czegokolwiek
  • Markery: tablica TMarker (patrz definicja TMarker poniżej)
  • PotStarts: array of Integer; Tablica wszystkich ważnych przekroczeń linii startu. W sekundach od północy

TLeg = zapis; przechowywanie informacji o nodze

  • start,finish,d,crs Podwójne; czas w sekundach, odległość w metrach, crs w radianach
  • td1,td2,td3 Podwójne; zmienne mogą być używane jako zmienne tymczasowe  

TMarkers = rekord; w tym rekordzie przechowywane są informacje o wszystkich momentach naciśnięcia przycisku Pilot Event Marker

  • Tsec: Integer; Czas każdego naciśnięcia przycisku Pilote Event
  • Msg: Opcjonalna wiadomość, która jest przechowywana wraz ze znacznikiem zdarzenia pilotażowego w pliku IGC.

Pozostałe zmienne

  • info1..info2 ciągi informacyjne wyświetlane na wynikach
  • Wartość łańcuchowa DayTag zdefiniowana w oknie dialogowym właściwości dnia
  • ShowMessage( s:string ); użyj tego do debugowania swoich skryptów 

Zadanie = zapis; zawiera podstawowe informacje o zadaniu

  • TotalDis: Double; odległość zadania w metrach
  • TaskTime: Integer; czas zadania w sekundach  
  • NoStartBeforeTime: Integer; czas rozpoczęcia w sekundach
  • Point: Array of TTaskPoint; opis zadania
  • ClassID: string; Lista istniejących klas:
    • świat
    • klub
    • standard
    • 13_5_meter
    • 15_metr
    • 18_metr
    • podwójne siedzenie
    • otwórz
    • hang_glider_flexible
    • hang_glider_rigid
    • paralotnia
    • nieznany
  • ClassName: string; opcjonalnie miła nazwa dla danej klasy (jak wprowadzono w Soaring Spot)

TTaskPoint = rekord; przechowuje podstawowe informacje o punkcie zadania i odnodze

  • lon,lat: Double; 
  • d,crs: Double; odległość, kurs do następnego punktu
  • td1,td2,td3 Podwójne; zmienne mogą być używane jako zmienne tymczasowe

SKRYPT NA SUMĘ PUNKTÓW

Piloci = rekord

  • Suma : Podwójna; suma punktów (domyślna wartość to suma Punktów Dziennych, nie 0)
  • TotalString : String; jeśli nie jest puste, suma punktów będzie wyświetlana jako ciąg znaków określony w tej wartości 
  • DayPts : array of Double; Punkty z każdego dnia obliczane w skryptach dziennych
  • DayPtsString : tablica String; Taka sama funkcjonalność jak TotalString
Zaktualizowano na kwiecień 20, 2021

Czy ten artykuł był pomocny?

Powiązane artykuły