Соревнование#
Введение#
Класс 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– Полевой контроллер не подключен.