Wyłącznik krańcowy#

Wstęp#

Klasa limitu limit jest używana z wyłącznikiem krańcowym, małym cyfrowym czujnikiem wykrywającym fizyczny kontakt z obiektem.

Wyłącznik krańcowy VEX V5.

Konstruktor klasy#

limit(
  triport::port &port);

Destruktor klasy#

Niszczy obiekt o limicie limit i uwalnia powiązane zasoby.

virtual ~limit();

Parametry#

Parametr

Typ

Opis

port

triport::port &

Port 3-żyłowy, do którego podłączony jest wyłącznik krańcowy, zapisany jako Brain.ThreeWirePort.X lub ExpanderName.X, gdzie X to litera portu (na przykład Brain.ThreeWirePort.A lub Expander1.A).

Przykład#

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

Funkcje członkowskie#

Klasa limit zawiera następujące funkcje członkowskie:

  • pressing – Zwraca informację, czy wyłącznik krańcowy jest naciśnięty.

  • naciśniętopressed – Rejestruje funkcję, która ma zostać wywołana po naciśnięciu wyłącznika krańcowego.

  • released – Rejestruje funkcję, która ma zostać wywołana po zwolnieniu wyłącznika krańcowego.

Przed wywołaniem jakiejkolwiek funkcji członkowskiej limitu limit należy utworzyć instancję limitu limit , jak pokazano poniżej:

/* 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#

Zwraca informację, czy wyłącznik krańcowy jest aktualnie wciśnięty. Można tego użyć do sprawdzenia, czy robot uderza w inne obiekty.

Available Functions
int32_t pressing();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Zwraca wartość int32_t wskazującą, czy wyłącznik krańcowy jest wciśnięty.

  • 1 — Naciśnięto wyłącznik krańcowy.

  • 0 — Wyłącznik krańcowy nie jest wciśnięty.

pressed#

Rejestruje funkcję, która ma zostać wywołana po naciśnięciu wyłącznika krańcowego.

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

Parameters

Parametr

Typ

Opis

callback

void (*)(void)

Wskaźnik do funkcji, która zostanie wywołana po naciśnięciu wyłącznika krańcowego.

Return Values

Ta funkcja nie zwraca wartości.

Examples

Zdefiniuj funkcję wywołania zwrotnego (poza int main())

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

Zarejestruj wywołanie zwrotne wewnątrz 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#

Rejestruje funkcję, która ma zostać wywołana po zwolnieniu wyłącznika krańcowego.

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

Parameters

Parametr

Typ

Opis

callback

void (*)(void)

Wskaźnik do funkcji, która zostanie wywołana po zwolnieniu wyłącznika krańcowego.

Return Values

Ta funkcja nie zwraca wartości.

Examples

Zdefiniuj funkcję wywołania zwrotnego (poza int main())

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

Zarejestruj wywołanie zwrotne wewnątrz 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);
}