Конкуренція#
Вступ#
Клас competition допомагає структурувати проект V5 для офіційного контролю змагань. Він дозволяє реєструвати функції для виконання під час автономного та водійського контролю, а також забезпечує прості перевірки статусу, щоб ваш код міг реагувати на стан відповідності (увімкнено/вимкнено, автономний/водійський, польовий контроль тощо).
Конструктори класів#
competition();
Деструктор класів#
Знищує об’єкт competition та звільняє пов’язані з ним ресурси.
~competition();
Параметри#
Цей конструктор не приймає жодних параметрів.
Приклади#
// Create the competition instance
competition Competition = competition();
Функції-члени#
Клас competition містить такі функції-члени:
autonomous— Реєструє функцію, яка буде викликана на початку автономного періоду.drivercontrol— Реєструє функцію, яка викликається на початку періоду керування драйвером.isEnabled— Повертає статус вашого робота під час перебування під контролем змагань.isDriverControl— Повертає, чи стан робота — керування водієм.isAutonomous— Повертає, чи є стан робота автономним.isCompetitionSwitch— Повертає, чи підключено перемикач конкуренції.isFieldControl— Повертає, чи підключено елемент керування полем.
Перед викликом будь-яких функцій-членів competition необхідно створити екземпляр competition , як показано нижче:
// Create the competition instance
competition Competition = competition();
autonomous#
Реєструє функцію, яка буде викликана на початку автономного періоду.
Available Functionsvoid autonomous( void (* callback)(void) );
Ім’я |
Тип |
Опис |
|---|---|---|
|
|
Вказівник на функцію, яка не приймає параметрів і не повертає значення. Ця функція виконається, коли розпочнеться автономний період. |
Ця функція не повертає значення.
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#
Реєструє функцію, яка викликається на початку періоду керування драйвером.
Available Functionsvoid drivercontrol( void (* callback)(void) );
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Вказівник на функцію, яка не приймає параметрів і не повертає значення. Ця функція виконається, коли розпочнеться період керування драйвером. |
Ця функція не повертає значення.
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#
Повертає статус вашого робота під час змагання.
Available Functionsbool isEnabled();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає логічне значення, яке вказує, чи активний період автономного керування, чи керування водієм:
true– Період автономного керування або керування водієм активний.false– Жоден з періодів керування не активний.
isDriverControl#
Повертає логічне значення, яке вказує, чи робот перебуває в режимі керування водієм.
Available Functionsbool isDriverControl();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає логічне значення, яке вказує, чи робот перебуває в режимі керування водієм:
true– Робот перебуває в режимі керування водієм.false– Робот не перебуває в режимі керування водієм.
isAutonomous#
Повертає логічне значення, яке вказує, чи знаходиться робот в автономному режимі.
Available Functionsbool isAutonomous();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає логічне значення, яке вказує, чи робот перебуває в автономному режимі:
true– Робот перебуває в автономному режимі.false– Робот не перебуває в автономному режимі.
isCompetitionSwitch#
Повертає логічне значення, яке вказує, чи підключено перемикач керування змаганнями:
Available Functionsbool isCompetitionSwitch();
Ця функція не приймає жодних параметрів.
NotesЦя функція перевіряє, чи підключено перемикач керування змаганнями. Перемикач керування змаганнями використовується до встановлення системи керування полем V5.
Повертає логічне значення, яке вказує, чи підключено перемикач керування змаганнями:
true– Перемикач керування змаганнями підключено.false– Перемикач керування змаганнями не підключений.
isFieldControl#
Повертає логічне значення, яке вказує, чи підключено польовий контролер.
Available Functionsbool isFieldControl();
Ця функція не приймає жодних параметрів.
Return ValuesПовертає логічне значення, яке вказує, чи підключено польовий контролер:
true– Польовий контролер підключено.false– Польовий контролер не підключено.