Сигнальна вежа#

Вступ#

Клас 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 – Вимикає миготіння кількох світлодіодів на сигнальній вежі за їхніми ідентифікаторами.

  • pressing – Повертає, чи натискається бампер Signal Tower на даний момент.

  • натиснуто – Реєструє функцію, яка викликається при натисканні бампера Signal Tower.

  • released – Реєструє функцію, яка викликається при звільненні бампера Signal Tower.

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#

Реєструє функцію, яка викликається при натисканні бампера Signal Tower.

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#

Реєструє функцію, яка викликається при звільненні бампера Signal Tower.

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

Parameters

Параметр

Тип

Опис

callback

void (*)(void)

Вказівник на функцію, яка буде викликана після звільнення бампера.

Return Values

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

Examples

Визначити функцію зворотного виклику (поза int main())

// Display a message when bumper is released
void towerBumperReleased() {
  Brain.Screen.print("tower bumper released");
}

Зареєструйте зворотний виклик всередині 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);
}