Конкуренція#

Вступ#

Клас 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 Functions
void autonomous( void (* callback)(void) );

Parameters

Ім’я

Тип

Опис

callback

void (*)(void)

Вказівник на функцію, яка не приймає параметрів і не повертає значення. Ця функція виконається, коли розпочнеться автономний період.

Return Values

Ця функція не повертає значення.

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#

Реєструє функцію, яка викликається на початку періоду керування драйвером.

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

Parameters

Параметр

Тип

Опис

callback

void (*)(void)

Вказівник на функцію, яка не приймає параметрів і не повертає значення. Ця функція виконається, коли розпочнеться період керування драйвером.

Return Values

Ця функція не повертає значення.

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#

Повертає статус вашого робота під час змагання.

Available Functions
bool isEnabled();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Повертає логічне значення, яке вказує, чи активний період автономного керування, чи керування водієм:

  • true – Період автономного керування або керування водієм активний.

  • false – Жоден з періодів керування не активний.

isDriverControl#

Повертає логічне значення, яке вказує, чи робот перебуває в режимі керування водієм.

Available Functions
bool isDriverControl();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Повертає логічне значення, яке вказує, чи робот перебуває в режимі керування водієм:

  • true – Робот перебуває в режимі керування водієм.

  • false – Робот не перебуває в режимі керування водієм.

isAutonomous#

Повертає логічне значення, яке вказує, чи знаходиться робот в автономному режимі.

Available Functions
bool isAutonomous();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Повертає логічне значення, яке вказує, чи робот перебуває в автономному режимі:

  • true – Робот перебуває в автономному режимі.

  • false – Робот не перебуває в автономному режимі.

isCompetitionSwitch#

Повертає логічне значення, яке вказує, чи підключено перемикач керування змаганнями:

Available Functions
bool isCompetitionSwitch();

Parameters

Ця функція не приймає жодних параметрів.

Notes
  • Ця функція перевіряє, чи підключено перемикач керування змаганнями. Перемикач керування змаганнями використовується до встановлення системи керування полем V5.

Return Values

Повертає логічне значення, яке вказує, чи підключено перемикач керування змаганнями:

  • true – Перемикач керування змаганнями підключено.

  • false – Перемикач керування змаганнями не підключений.

isFieldControl#

Повертає логічне значення, яке вказує, чи підключено польовий контролер.

Available Functions
bool isFieldControl();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Повертає логічне значення, яке вказує, чи підключено польовий контролер:

  • true – Польовий контролер підключено.

  • false – Польовий контролер не підключено.