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 Functionsvoid autonomous( void (* callback)(void) );
Name |
Typ |
Beschreibung |
|---|---|---|
|
|
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. |
Diese Funktion gibt keinen Wert zurück.
Examplesvoid 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 Functionsvoid drivercontrol( void (* callback)(void) );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Ein Zeiger auf eine Funktion, die keine Parameter benötigt und keinen Wert zurückgibt. Diese Funktion wird beim Start der Fahrersteuerungsperiode ausgeführt. |
Diese Funktion gibt keinen Wert zurück.
Examplesvoid 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 Functionsbool isEnabled();
Diese Funktion akzeptiert keine Parameter.
Return ValuesGibt 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 Functionsbool isDriverControl();
Diese Funktion akzeptiert keine Parameter.
Return ValuesGibt 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 Functionsbool isAutonomous();
Diese Funktion akzeptiert keine Parameter.
Return ValuesGibt 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 Functionsbool isCompetitionSwitch();
Diese Funktion akzeptiert keine Parameter.
NotesDiese Funktion prüft, ob der Wettbewerbskontrollschalter angeschlossen ist. Der Wettbewerbskontrollschalter wird verwendet, bevor das V5-Feldkontrollsystem installiert ist.
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 Functionsbool isFieldControl();
Diese Funktion akzeptiert keine Parameter.
Return ValuesGibt einen booleschen Wert zurück, der angibt, ob der Feldcontroller verbunden ist:
true– Der Feldcontroller ist angeschlossen.false– Der Feldcontroller ist nicht angeschlossen.