C++#
У довіднику з API VEX V5 C++ пояснюються класи, об’єкти, конструктори, функції-члени та змінні, що використовуються в проектах VEXcode V5 C++.
Використовуйте це посилання, коли хочете зрозуміти, як створюється пристрій або функція, перевірити, яку сигнатуру функції використовувати, або порівняти пов’язані функції-члени в класі.
Команди C++ використовуються в проектах VEXcode V5 C++. Інформація про API C++ також може підтримувати проекти, написані у Visual Studio Code з розширенням VEX Visual Studio Code.
Як читати сторінку класу C++#
Сторінка класу C++ зазвичай дотримується такого порядку:
Вступ – пояснює, що являє собою клас і коли він корисний.
Похідні класи – перелічує будь-які класи, що базуються на цьому класі, якщо такі є.
Конструктор або конструктори класу – показує синтаксис, який використовується для створення об’єкта з класу.
Деструктор класу – показує синтаксис, який використовується для знищення об’єкта та звільнення його ресурсів, якщо це можливо.
Параметри – пояснює параметри конструктора, що використовуються під час створення об’єкта.
Приклад – Показано, як створити об’єкт у коді.
Функції-члени – Перелічує функції, що належать до класу, часто згруповані за призначенням.
Записи функцій – Пояснення кожної функції-члена, включаючи доступні функції, параметри, значення, що повертаються, примітки та приклади.
Не кожна сторінка має всі розділи. Наприклад, деякі сторінки не містять похідних класів, а деякі функції не мають параметрів або повернених значень.
Загальні елементи C++ API#
Елемент |
Що це означає |
|---|---|
Клас |
Тип C++ для пристрою або функції, наприклад, |
Об’єкт |
Іменований екземпляр, створений з класу, такого як |
Конструктор |
Код, який використовується для створення об’єкта з класу. |
Функція-член |
Команда, що викликається для об’єкта, така як |
Доступна функція |
Один точний підпис функції, який можна використовувати для функції-члена. Деякі функції-члени мають більше однієї доступної функції. |
Параметр |
Значення, що передається в конструктор або функцію для керування її діями. |
Повернене значення |
Значення, яке повертає функція, наприклад, |
Базовий словник C++#
Термін |
Що це означає |
|---|---|
Змінна |
Ім’я, яке зберігає значення, наприклад, |
Тип |
Тип даних, які щось зберігає, наприклад, |
Рядок |
Текст у лапках, наприклад, |
інтернет |
Додатне або від’ємне ціле число, наприклад, |
подвійний |
Числовий тип, який може містити десяткову дробу, наприклад, |
буль |
Значення, яке дорівнює |
Суперечка |
Значення, що передається у функцію-член або виклик функції, наприклад, |
Конструктори та об’єкти#
Перед використанням функцій-членів з багатьох класів C++ має існувати об’єкт. Конструктор показує, як створити цей об’єкт.
Наприклад, об’єкт двигуна можна створити, надавши конструктору необхідну інформацію про порт або конфігурацію:
motor Motor1 = motor(PORT1, false);
Після створення об’єкта можна викликати його функції-члени:
Motor1.spin(forward);
У VEXcode конфігурація пристроїв часто генерується автоматично меню пристроїв. У Visual Studio Code з розширенням VEX конструктори, можливо, доведеться писати вручну.
Вибір правильної доступної функції#
Деякі функції-члени мають більше однієї доступної функції. Кожна функція використовує різний набір параметрів, тому виберіть ту, яка відповідає значенням, які має надати ваш проект.
Наприклад, функція трансмісії може мати одну версію, яка використовує поточну швидкість, та іншу версію, яка дозволяє проекту вибрати швидкість:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Обидві функції викликають drive, але друга функція надає більше контролю, оскільки вона включає параметри швидкості.
Приклад запису функції#
диск#
drive переміщує робота вперед або назад безкінечно. Робот продовжуватиме рухатися, доки йому не буде надано іншу дію, таку як поворот або зупинка. Для обертів за хвилину або DPS обмеження змінюється передавальним числом трансмісії.
Доступні функції
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Напрямок руху робота: |
|
|
Швидкість руху від 0% до 100% при використанні |
|
|
Одиниця вимірювання швидкості: |
Повернене значення
Ця функція не повертає значення.
Примітки
driveне очікує; проект продовжить виконання наступного рядка коду одразу після виклику.Трансмісія продовжуватиме рух, доки не буде викликано
stopабо не буде виконано іншу функцію руху трансмісії.Такі функції, як
isDoneтаisMovingне застосовні доdrive, оскільки він не використовує рух на основі цілі.
Приклад
// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
Поведінка очікування та поведінка без очікування#
Деякі функції переміщення в C++ чекають завершення дії, перш ніж проект перейде до наступного рядка коду. Інші функції запускають дію та дозволяють наступному рядку виконуватися одразу.
Очікування – Проєкт очікує завершення функції.
Без очікування – Проєкт запускає функцію та одразу переходить до наступного рядка.
Деякі функції містять параметр, такий як waitForCompletion , щоб вибрати таку поведінку. Для цих функцій значення true зазвичай змушує проект чекати, тоді як false дозволяє наступному рядку виконуватися одразу.
Команди в підрозділах#
Команди C++ організовані за пристроями або темами. Наприклад, команди для приводу, двигунів, контролера, мозку, пристроїв Smart Port, 3-провідних пристроїв, консолі, логіки та VEXlink згруповані в окремі підрозділи.