Переключатель бампера#

Введение#

Бампер класса bumper используется с переключателем бампера (Bumper Switch), механическим переключателем, который замыкает цепь при нажатии, позволяя роботу распознавать нажатия и отпускания.

Переключатель бампера VEX V5 — это 3-проводное устройство с широким черным основанием для крепления к роботу и красной нажимаемой кнопкой сверху.

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

bumper(
  triport::port &port );

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

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

virtual ~bumper();

Параметры#

Параметр

Тип

Описание

port

triport::port&

Трехпроводной порт, к которому подключен бамперный переключатель, обозначается как Brain.ThreeWirePort.X или ExpanderName.X, где X — буква порта (например, Brain.ThreeWirePort.A или Expander1.A).

Пример#

// Create a bumper instance in Port A
bumper BumperA = bumper(Brain.ThreeWirePort.A);

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

Класс bumper включает следующие функции-члены:

  • pressing — Возвращает значение, указывающее, нажат ли переключатель бампера.

  • pressed — Регистрирует функцию, которая будет вызываться при нажатии бамперного переключателя.

  • released — Регистрирует функцию, которая будет вызвана при отпускании бамперного переключателя.

Перед вызовом любых функций-членов bumper необходимо создать экземпляр bumper , как показано ниже:

/* This constructor is required when using VS Code.
Bumper Switch configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create a bumper instance in Port A
bumper BumperA = bumper(Brain.ThreeWirePort.A);

pressing#

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

Available Functions
int32_t pressing();

Parameters

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

Return Values

Возвращает значение int32_t , указывающее, нажата ли кнопка бампера.

  • 1 — Нажата кнопка «Выключатель бампера».

  • 0 — Кнопка «Бамперный выключатель» не нажата.

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 BumperPressed() {
  Brain.Screen.print("Bumper pressed");
}

Зарегистрируйте функцию обратного вызова внутри int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Run BumperPressed when the value of the Bumper Switch is pressed.
  BumperA.pressed(BumperPressed);
}

released#

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

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

Parameters

Параметр

Тип

Описание

callback

void (*)(void)

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

Return Values

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

Examples

Определите функцию обратного вызова (вне int main())

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

Зарегистрируйте функцию обратного вызова внутри int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Run BumperReleased when the value of the Bumper Switch is released.
  BumperA.released(BumperReleased);
}