Concurrentie#
Invoering#
De klasse competition helpt je bij het structureren van een V5-project voor officiële wedstrijdcontrole. Hiermee kun je functies registreren die tijdens autonome en bestuurderscontrole worden uitgevoerd, en biedt het eenvoudige statuscontroles zodat je code kan reageren op de wedstrijdstatus (ingeschakeld/uitgeschakeld, autonoom/bestuurder, veldcontrole, enz.).
Klasseconstructors#
competition();
Klasse-destructor#
Vernietigt het object competition en geeft de bijbehorende resources vrij.
~competition();
Parameters#
Deze constructor accepteert geen parameters.
Voorbeelden#
// Create the competition instance
competition Competition = competition();
Lidfuncties#
De competitieklasse competition omvatten de volgende ledenfuncties:
autonomous— Registreert een functie die moet worden aangeroepen wanneer de autonome periode begint.drivercontrol— Registreert een functie die moet worden aangeroepen wanneer de Driver Control-periode begint.isEnabled— Geeft de status van je robot weer wanneer deze onder wedstrijdcontrole staat.isDriverControl— Geeft aan of de status van de robot ‘driver control’ is.isAutonomous— Geeft aan of de toestand van de robot autonoom is.isCompetitionSwitch— Geeft aan of de competitieschakelaar is aangesloten.isFieldControl— Geeft aan of het veldbesturingselement is verbonden.
Voordat er lidfuncties van competitie competition worden aangeroepen, moet er een instantie van competitie competition worden aangemaakt, zoals hieronder weergegeven:
// Create the competition instance
competition Competition = competition();
autonomous#
Registreert een functie die moet worden aangeroepen wanneer de autonome periode begint.
Available Functionsvoid autonomous( void (* callback)(void) );
Naam |
Type |
Beschrijving |
|---|---|---|
|
|
Een verwijzing naar een functie die geen parameters accepteert en geen waarde retourneert. Deze functie wordt uitgevoerd wanneer de autonome periode begint. |
Deze functie retourneert geen waarde.
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#
Registreert een functie die moet worden aangeroepen wanneer de periode van stuurprogrammacontrole begint.
Available Functionsvoid drivercontrol( void (* callback)(void) );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een aanwijzer naar een functie die geen parameters accepteert en geen waarde retourneert. Deze functie wordt uitgevoerd wanneer de periode voor stuurprogrammacontrole begint. |
Deze functie retourneert geen waarde.
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#
Geeft de status van je robot weer wanneer deze onder wedstrijdcontrole staat.
Available Functionsbool isEnabled();
Deze functie accepteert geen parameters.
Return ValuesRetourneert een Booleaanse waarde die aangeeft of de periode van autonoom rijden of van handmatige bediening door de bestuurder actief is:
true– De periode van autonome of bestuurdersbesturing is actief.false– Geen van beide controleperioden is actief.
isDriverControl#
Geeft een Booleaanse waarde terug die aangeeft of de robot zich in de bestuurdersbesturingsmodus bevindt.
Available Functionsbool isDriverControl();
Deze functie accepteert geen parameters.
Return ValuesGeeft een Booleaanse waarde terug die aangeeft of de robot zich in de bestuurdersbesturingsmodus bevindt:
true– De robot bevindt zich in de bestuurdersbesturingsmodus.false– De robot bevindt zich niet in de bestuurdersbesturingsmodus.
isAutonomous#
Geeft een Booleaanse waarde terug die aangeeft of de robot zich in de autonome modus bevindt.
Available Functionsbool isAutonomous();
Deze functie accepteert geen parameters.
Return ValuesGeeft een Booleaanse waarde terug die aangeeft of de robot zich in de autonome modus bevindt:
true– De robot bevindt zich in de autonome modus.false– De robot bevindt zich niet in de autonome modus.
isCompetitionSwitch#
Geeft een Booleaanse waarde terug die aangeeft of de Competition Control Switch is aangesloten:
Available Functionsbool isCompetitionSwitch();
Deze functie accepteert geen parameters.
NotesDeze functie controleert of de Competition Control Switch is aangesloten. De Competition Control Switch wordt gebruikt voordat het V5 Field Control System is geïnstalleerd.
Geeft een Booleaanse waarde terug die aangeeft of de Competition Control Switch is aangesloten:
true– De competitiecontroleschakelaar is aangesloten.false– De competitiecontroleschakelaar is niet aangesloten.
isFieldControl#
Retourneert een Booleaanse waarde die aangeeft of de veldcontroller is verbonden.
Available Functionsbool isFieldControl();
Deze functie accepteert geen parameters.
Return ValuesRetourneert een Booleaanse waarde die aangeeft of de veldcontroller is verbonden:
true– De veldcontroller is verbonden.false– De veldcontroller is niet aangesloten.