Сигнальная башня#
Введение#
Класс signaltower используется для переключения сигналов и обнаружения взаимодействий с сигнальной вышкой CTE.
Конструкторы классов#
signaltower(
int32_t index );
Деструктор класса#
Уничтожает объект signaltower и освобождает связанные с ним ресурсы.
virtual ~signaltower();
Параметры#
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Интеллектуальный порт, к которому подключена сигнальная вышка, обозначается как |
Примеры#
// Create a signal tower instance in Port 1
signaltower SignalTower = signaltower(PORT1);
Функции участников#
Класс signaltower предоставляет следующие функции-члены:
setColor - Управляет цветами и состоянием светодиодов на сигнальной вышке с помощью различных методов ввода.
setColors - Устанавливает состояние всех светодиодов на сигнальной вышке по отдельности.
setBlink - Устанавливает состояние мигания светодиода на сигнальной вышке в соответствии с идентификатором светодиода.
setBlinkTime - Устанавливает интервал между миганиями светодиодов на сигнальной вышке.
enableBlink - Включает мигание нескольких светодиодов на сигнальной вышке в соответствии с их идентификаторами.
disableBlink - Отключает мигание нескольких светодиодов на сигнальной вышке по их идентификаторам.
нажатие - Возвращает значение, указывающее, нажата ли в данный момент кнопка бампера “Сигнальная башня”.
нажато - Регистрирует функцию, которая будет вызываться при нажатии бампера “Сигнальная башня”.
released - Регистрирует функцию, которая будет вызвана при отпускании бампера “Сигнальная башня”.
setColor#
Управление цветами и состоянием светодиодов на сигнальной вышке осуществляется с помощью различных методов ввода. Эти индикаторы могут использоваться для отслеживания местоположения робота в проекте или для отображения выполнения определенных условий.
Available Functions1 — Задает цвет сигнальной вышки с помощью vex::color.
void setColor( vex::color color, signaltower::state state = signaltower::state::on );
2 — Устанавливает цвета светодиодов, используя 32-битные значения RGB и YW.
void setColor( uint32_t rgb, uint32_t yw );
3 — Устанавливает яркость каждого светодиода в зависимости от его идентификатора.
void setColor( ledId id, uint32_t value );
Parameters4 — Устанавливает уровни яркости для каждого светодиода по отдельности.
void setColor( uint8_t r, uint8_t y, uint8_t g, uint8_t b, uint8_t w );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Используемый цвет:
|
|
|
Состояние светодиода:
|
|
|
Яркость красного, зеленого и синего светодиодов определяется 32-битным значением (например, красный включен = |
|
|
Яркость желтого и белого светодиодов определяется 32-битным значением (например, желтый включен = |
|
|
Индекс управляемого светодиода:
|
|
|
Яркость светодиода регулируется в диапазоне от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость. |
|
|
Яркость красного светодиода регулируется в диапазоне от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость. |
|
|
Яркость желтого светодиода изменяется от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость. |
|
|
Яркость зеленого светодиода регулируется в диапазоне от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость. |
|
|
Яркость синего светодиода регулируется в диапазоне от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость. |
|
|
Яркость белого светодиода регулируется в диапазоне от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость. |
Эта функция не возвращает значения.
Examples// Set the Signal Tower to start blinking blue
SignalTower.setColor(vex::color::blue, signaltower::blink);
// Set the red, blue and white LEDs using hex values
SignalTower.setColor(0xFF00FF, 0x00FF);
// Set the green LED to full brightness by ID
SignalTower.setColor(1, 255);
// Set all LEDs to full brightness
SignalTower.setColor(255, 255, 255, 255, 255);
setColors#
Устанавливает состояние всех светодиодов на сигнальной вышке по отдельности. Эти индикаторы можно использовать для отслеживания местоположения робота в проекте или для отображения выполнения определенных условий.
Available Functionsvoid setColors(
signaltower::state rs,
signaltower::state ys,
signaltower::state gs,
signaltower::state bs,
signaltower::state ws );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Состояние красного светодиода:
|
|
|
Состояние жёлтого светодиода:
|
|
|
Состояние зеленого светодиода:
|
|
|
Состояние синего светодиода:
|
|
|
Состояние белого светодиода:
|
Эта функция не возвращает значения.
Examples// Turn on all LEDs
SignalTower.setColors(signaltower::on, signaltower::on, signaltower::on, signaltower::on, signaltower::on);
setBlink#
Устанавливает состояние мигания светодиода на сигнальной вышке в соответствии с идентификатором светодиода. Мигание может использоваться для отображения выполнения определенных условий, например, когда робот ожидает или когда требуется внимание.
Available Functionsvoid setBlink(
ledId id,
bool enable );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Идентификатор светодиода:
|
|
|
|
Эта функция не возвращает значения.
setBlinkTime#
Устанавливает интервал между миганиями светодиодов на сигнальной вышке.
Available Functionsvoid setBlinkTime(
uint32_t onTime,
uint32_t offTime = 0 );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Время в миллисекундах, в течение которого светодиод должен мигать. Максимальное значение — 2500 мс. Значение 0 по умолчанию соответствует 500 мс. |
|
|
Время в миллисекундах, в течение которого светодиод должен быть выключен при мигании. Максимальное значение — 2500 мс. Значение 0 использует значение onTime. Значение по умолчанию — 0. |
Эта функция не возвращает значения.
enableBlink#
Позволяет включать мигание нескольких светодиодов на сигнальной вышке в соответствии с их идентификаторами.
Available Functionsvoid enableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Идентификатор светодиода:
|
|
|
Индекс второго светодиода (необязательно). По умолчанию
|
|
|
Индекс третьего светодиода (необязательно). По умолчанию
|
|
|
Индекс четвертого светодиода (необязательно). По умолчанию
|
|
|
Индекс пятого светодиода (необязательно). По умолчанию
|
Эта функция не возвращает значения.
disableBlink#
Отключает мигание нескольких светодиодов на сигнальной вышке по их идентификаторам.
Available Functionsvoid disableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Индекс первого светодиода.
|
|
|
Индекс второго светодиода (необязательно). По умолчанию
|
|
|
Индекс третьего светодиода (необязательно). По умолчанию
|
|
|
Индекс четвертого светодиода (необязательно). По умолчанию
|
|
|
Индекс пятого светодиода (необязательно). По умолчанию
|
Эта функция не возвращает значения.
pressing#
Возвращает значение, указывающее, нажата ли в данный момент кнопка бампера сигнальной башни. Это можно использовать для экстренной остановки.
Available Functionsbool pressing();
Эта функция не имеет параметров.
Return ValuesВозвращает логическое значение, указывающее, нажата ли в данный момент кнопка бампера сигнальной башни.
true— В данный момент нажата кнопка бампера Сигнальной башни.false— Кнопка бампера сигнальной башни не нажата.
pressed#
Регистрирует функцию, которая будет вызываться при нажатии на бампер “Сигнальная башня”.
Available Functionsvoid pressed( void (* callback)(void) );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Указатель на функцию, которая будет вызвана при нажатии на бампер. |
Эта функция не возвращает значения.
ExamplesОпределите функцию обратного вызова (вне
int main())// Display a message when bumper is pressed void towerBumperPressed() { Brain.Screen.print("tower bumper pressed"); }Зарегистрируйте функцию обратного вызова внутри
int main()int main() { /* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ vexcodeInit(); // Run towerBumperPressed when the tower bumper // is pressed SignalTower.pressed(towerBumperPressed); }
released#
Регистрирует функцию, которая будет вызвана при отпускании бампера «Сигнальная башня».
Available Functionsvoid released( void (* callback)(void) );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Указатель на функцию, которая будет вызвана при отпускании бампера. |
Эта функция не возвращает значения.
ExamplesОпределите функцию обратного вызова (вне
int main())// Display a message when bumper is pressed void towerBumperReleased() { Brain.Screen.print("tower bumper pressed"); }Зарегистрируйте функцию обратного вызова внутри
int main()int main() { /* vexcodeInit() is only required when using VEXcode. Remove vexcodeInit() if compiling in VS Code. */ vexcodeInit(); // Run towerBumperReleased when the tower bumper // is released SignalTower.released(towerBumperReleased); }