Концевой выключатель#

Введение#

Класс limit используется с концевым выключателем — небольшим цифровым датчиком, который обнаруживает физический контакт с объектом.

Концевой выключатель VEX V5.

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

limit(
  triport::port &port);

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

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

virtual ~limit();

Параметры#

Параметр

Тип

Описание

port

triport::port &

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

Пример#

// Create a limit instance in Port A
limit LimitSwitchA = limit(Brain.ThreeWirePort.A);

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

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

  • pressing – Возвращает значение, указывающее, нажат ли концевой выключатель.

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

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

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

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

// Create a limit instance in Port A
limit LimitSwitchA = limit(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())

void switchPressed() {
  // The Brain will print that the Limit Switch was pressed
  // on the Brain's screen.
  Brain.Screen.print("switch pressed");
}

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

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

  // Run switchPressed when the Limit Switch is pressed.
  LimitSwitchA.pressed(switchPressed);
}

released#

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

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

Parameters

Параметр

Тип

Описание

callback

void (*)(void)

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

Return Values

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

Examples

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

void switchReleased() {
  // The Brain will print that the Limit Switch was released
  // on the Brain's screen.
  Brain.Screen.print("switch released");
}

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

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

  // Run switchReleased when the Limit Switch is released.
  LimitSwitchA.released(switchReleased);
}