Wettbewerb#

Einführung#

Die Klasse competition hilft Ihnen bei der Strukturierung eines V5-Projekts für die offizielle Wettbewerbssteuerung. Sie ermöglicht die Registrierung von Funktionen, die während der autonomen und der Fahrersteuerung ausgeführt werden sollen, und bietet einfache Statusprüfungen, damit Ihr Code auf den Spielzustand (aktiviert/deaktiviert, autonom/Fahrersteuerung, Feldsteuerung usw.) reagieren kann.

Klassenkonstruktoren#

competition();

Klassendestruktor#

Zerstört das Wettbewerbsobjekt competition.

~competition();

Parameter#

Dieser Konstruktor akzeptiert keine Parameter.

Beispiele#

// Create the competition instance
competition Competition = competition();

Mitgliedsfunktionen#

Die Wettbewerbsklasse competition umfasst die folgenden Mitgliedsfunktionen:

  • autonomous — Registriert eine Funktion, die beim Beginn der autonomen Periode aufgerufen werden soll.

  • drivercontrol — Registriert eine Funktion, die beim Beginn der Driver Control Period aufgerufen werden soll.

  • isEnabled — Gibt den Status Ihres Roboters zurück, wenn er unter Wettbewerbskontrolle steht.

  • isDriverControl — Gibt zurück, ob der Zustand des Roboters die Fahrersteuerung ist.

  • isAutonomous — Gibt zurück, ob der Zustand des Roboters autonom ist.

  • isCompetitionSwitch — Gibt zurück, ob der Wettbewerbsschalter verbunden ist.

  • isFieldControl — Gibt zurück, ob das Feldsteuerelement verbunden ist.

Bevor Funktionen des Elements competition aufgerufen werden können, muss eine Instanz des Elements competition erstellt werden, wie unten dargestellt:

// Create the competition instance
competition Competition = competition();

autonomous#

Registriert eine Funktion, die beim Beginn der autonomen Periode aufgerufen werden soll.

Available Functions
void autonomous( void (* callback)(void) );

Parameters

Name

Typ

Beschreibung

callback

void (*)(void)

Ein Zeiger auf eine Funktion, die keine Parameter benötigt und keinen Wert zurückgibt. Diese Funktion wird beim Start der autonomen Phase ausgeführt.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples
void autonomousControl(void) {
  // Place automonous code here.
  Brain.Screen.clearScreen();
  Brain.Screen.print("autonomous");
}

int main(){
    // Create competition instance.
    competition Competition;

    // Set up callback for the autonomous control period.
    Competition.autonomous(autonomousControl);

    // Prevent main from exiting with an infinite loop.
    while (true) {
        wait(100, msec);
    }
}

drivercontrol#

Registriert eine Funktion, die beim Beginn der Fahrersteuerungsperiode aufgerufen werden soll.

Available Functions
void drivercontrol( void (* callback)(void) );

Parameters

Parameter

Typ

Beschreibung

callback

void (*)(void)

Ein Zeiger auf eine Funktion, die keine Parameter benötigt und keinen Wert zurückgibt. Diese Funktion wird beim Start der Fahrersteuerungsperiode ausgeführt.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples
void userControl(void) {
  Brain.Screen.clearScreen();
  // place driver control in this while loop
  while (true) {
    wait(20, msec);
  }
}

int main(){
    // Create competition instance.
    competition Competition;

    // Set up callback for the driver control period.
    Competition.drivercontrol(userControl);

    // Prevent main from exiting with an infinite loop.
    while (true) {
        wait(100, msec);
    }
}

isEnabled#

Gibt den Status Ihres Roboters zurück, wenn er unter Wettbewerbskontrolle steht.

Available Functions
bool isEnabled();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen booleschen Wert zurück, der angibt, ob der autonome Modus oder der Fahrersteuerungsmodus aktiv ist:

  • true – Die autonome oder fahrergesteuerte Phase ist aktiv.

  • false – Keiner der Kontrollzeiträume ist aktiv.

isDriverControl#

Gibt einen booleschen Wert zurück, der angibt, ob sich der Roboter im Fahrersteuerungsmodus befindet.

Available Functions
bool isDriverControl();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen booleschen Wert zurück, der angibt, ob sich der Roboter im Fahrersteuerungsmodus befindet:

  • true – Der Roboter befindet sich im Fahrersteuerungsmodus.

  • false – Der Roboter befindet sich nicht im Fahrersteuerungsmodus.

isAutonomous#

Gibt einen booleschen Wert zurück, der angibt, ob sich der Roboter im autonomen Modus befindet.

Available Functions
bool isAutonomous();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen booleschen Wert zurück, der angibt, ob sich der Roboter im autonomen Modus befindet:

  • true – Der Roboter befindet sich im autonomen Modus.

  • false – Der Roboter befindet sich nicht im autonomen Modus.

isCompetitionSwitch#

Gibt einen booleschen Wert zurück, der angibt, ob der Wettbewerbskontrollschalter angeschlossen ist:

Available Functions
bool isCompetitionSwitch();

Parameters

Diese Funktion akzeptiert keine Parameter.

Notes
  • Diese Funktion prüft, ob der Wettbewerbskontrollschalter angeschlossen ist. Der Wettbewerbskontrollschalter wird verwendet, bevor das V5-Feldkontrollsystem installiert ist.

Return Values

Gibt einen booleschen Wert zurück, der angibt, ob der Wettbewerbskontrollschalter angeschlossen ist:

  • true – Der Wettbewerbskontrollschalter ist angeschlossen.

  • false – Der Wettbewerbskontrollschalter ist nicht angeschlossen.

isFieldControl#

Gibt einen booleschen Wert zurück, der angibt, ob der Feldcontroller verbunden ist.

Available Functions
bool isFieldControl();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen booleschen Wert zurück, der angibt, ob der Feldcontroller verbunden ist:

  • true – Der Feldcontroller ist angeschlossen.

  • false – Der Feldcontroller ist nicht angeschlossen.