Сигнальная башня#

Введение#

Класс signaltower используется для переключения сигналов и обнаружения взаимодействий с сигнальной вышкой CTE.

Конструкторы классов#

signaltower( 
  int32_t  index );

Деструктор класса#

Уничтожает объект signaltower и освобождает связанные с ним ресурсы.

virtual ~signaltower();

Параметры#

Параметр

Тип

Описание

index

int32_t

Интеллектуальный порт, к которому подключена сигнальная вышка, обозначается как PORTx, где x — номер порта (например, PORT1).

Примеры#

// Create a signal tower instance in Port 1
signaltower SignalTower = signaltower(PORT1);

Функции участников#

Класс signaltower предоставляет следующие функции-члены:

  • setColor - Управляет цветами и состоянием светодиодов на сигнальной вышке с помощью различных методов ввода.

  • setColors - Устанавливает состояние всех светодиодов на сигнальной вышке по отдельности.

  • setBlink - Устанавливает состояние мигания светодиода на сигнальной вышке в соответствии с идентификатором светодиода.

  • setBlinkTime - Устанавливает интервал между миганиями светодиодов на сигнальной вышке.

  • enableBlink - Включает мигание нескольких светодиодов на сигнальной вышке в соответствии с их идентификаторами.

  • disableBlink - Отключает мигание нескольких светодиодов на сигнальной вышке по их идентификаторам.

  • нажатие - Возвращает значение, указывающее, нажата ли в данный момент кнопка бампера “Сигнальная башня”.

  • нажато - Регистрирует функцию, которая будет вызываться при нажатии бампера “Сигнальная башня”.

  • released - Регистрирует функцию, которая будет вызвана при отпускании бампера “Сигнальная башня”.

setColor#

Управление цветами и состоянием светодиодов на сигнальной вышке осуществляется с помощью различных методов ввода. Эти индикаторы могут использоваться для отслеживания местоположения робота в проекте или для отображения выполнения определенных условий.

Available Functions

1 — Задает цвет сигнальной вышки с помощью 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 );

4 — Устанавливает уровни яркости для каждого светодиода по отдельности.

void setColor( 
  uint8_t r, 
  uint8_t y, 
  uint8_t g, 
  uint8_t b, 
  uint8_t w );

Parameters

Параметр

Тип

Описание

color

vex::color

Используемый цвет:

  • red
  • yellow
  • green
  • blue
  • white
  • all

state

signaltower::state

Состояние светодиода:

  • on (по умолчанию) – включает светодиод.
  • off – выключает светодиод.
  • blink – заставляет светодиод мигать.

rgb

uint32_t

Яркость красного, зеленого и синего светодиодов определяется 32-битным значением (например, красный включен = 0xFF0000, зеленый включен = 0x00FF00, и синий включен = 0x0000FF).

yw

uint32_t

Яркость желтого и белого светодиодов определяется 32-битным значением (например, желтый включен = 0xFF00 , белый включен = 0x00FF).

id

ledId

Индекс управляемого светодиода:

  • 0 – красный
  • 1 – зеленый
  • 2 – синий
  • 3 – белый
  • 4 – желтый

value

uint32_t

Яркость светодиода регулируется в диапазоне от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость.

r

uint8_t

Яркость красного светодиода регулируется в диапазоне от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость.

y

uint8_t

Яркость желтого светодиода изменяется от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость.

g

uint8_t

Яркость зеленого светодиода регулируется в диапазоне от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость.

b

uint8_t

Яркость синего светодиода регулируется в диапазоне от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость.

w

uint8_t

Яркость белого светодиода регулируется в диапазоне от 0 до 255, где 0 означает выключение, а 255 — максимальную яркость.

Return Values

Эта функция не возвращает значения.

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 Functions
void setColors( 
  signaltower::state rs, 
  signaltower::state ys, 
  signaltower::state gs, 
  signaltower::state bs, 
  signaltower::state ws );

Parameters

Параметр

Тип

Описание

rs

signaltower::state

Состояние красного светодиода:

  • on – Включает светодиод.
  • off – Выключает светодиод.
  • blink – Заставляет светодиод мигать.

ys

signaltower::state

Состояние жёлтого светодиода:

  • on – Включает светодиод.
  • off – Выключает светодиод.
  • blink – Заставляет светодиод мигать.

gs

signaltower::state

Состояние зеленого светодиода:

  • on – Включает светодиод.
  • off – Выключает светодиод.
  • blink – Заставляет светодиод мигать.

bs

signaltower::state

Состояние синего светодиода:

  • on – Включает светодиод.
  • off – Выключает светодиод.
  • blink – Заставляет светодиод мигать.

ws

signaltower::state

Состояние белого светодиода:

  • on – Включает светодиод.
  • off – Выключает светодиод.
  • blink – Заставляет светодиод мигать.

Return Values

Эта функция не возвращает значения.

Examples
// Turn on all LEDs
SignalTower.setColors(signaltower::on, signaltower::on, signaltower::on, signaltower::on, signaltower::on);

setBlinkTime#

Устанавливает интервал между миганиями светодиодов на сигнальной вышке.

Available Functions
void setBlinkTime( 
  uint32_t onTime, 
  uint32_t offTime = 0 );

Parameters

Параметр

Тип

Описание

onTime

uint32_t

Время в миллисекундах, в течение которого светодиод должен мигать. Максимальное значение — 2500 мс. Значение 0 по умолчанию соответствует 500 мс.

offTime

uint32_t

Время в миллисекундах, в течение которого светодиод должен быть выключен при мигании. Максимальное значение — 2500 мс. Значение 0 использует значение onTime. Значение по умолчанию — 0.

Return Values

Эта функция не возвращает значения.

pressing#

Возвращает значение, указывающее, нажата ли в данный момент кнопка бампера сигнальной башни. Это можно использовать для экстренной остановки.

Available Functions
bool pressing();

Parameters

Эта функция не имеет параметров.

Return Values

Возвращает логическое значение, указывающее, нажата ли в данный момент кнопка бампера сигнальной башни.

  • true — В данный момент нажата кнопка бампера Сигнальной башни.

  • false — Кнопка бампера сигнальной башни не нажата.

pressed#

Регистрирует функцию, которая будет вызываться при нажатии на бампер “Сигнальная башня”.

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

Parameters

Параметр

Тип

Описание

callback

void (*)(void)

Указатель на функцию, которая будет вызвана при нажатии на бампер.

Return Values

Эта функция не возвращает значения.

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 Functions
void released( void (* callback)(void) );

Parameters

Параметр

Тип

Описание

callback

void (*)(void)

Указатель на функцию, которая будет вызвана при отпускании бампера.

Return Values

Эта функция не возвращает значения.

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);
}