Stoßstangenschalter#

Einführung#

Die Klasse bumper wird mit dem Bumper Switch verwendet, einem mechanischen Schalter, der beim Drücken einen Stromkreis schließt und es dem Roboter ermöglicht, Drücken und Loslassen zu erkennen.

Der VEX EXP Bumper Switch ist ein 3-adriges Gerät mit einer breiten schwarzen Basis zur Befestigung an einem Roboter und einem roten, drückbaren Knopf an der Oberseite.

Klassenkonstruktor#

bumper(
  triport::port &port );

Klassendestruktor#

Zerstört das Objekt bumper und gibt zugehörige Ressourcen frei.

virtual ~bumper();

Parameter#

Parameter

Typ

Beschreibung

port

triport::port&

Der 3-Draht-Anschluss, an den der Bumper Switch angeschlossen ist, wird als Brain.ThreeWirePort.X oder ExpanderName.Xgeschrieben, wobei X der Anschlussbuchstabe ist (zum Beispiel Brain.ThreeWirePort.A oder Expander1.A).

Beispiel#

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

Mitgliedsfunktionen#

Die Klasse bumper umfasst die folgenden Memberfunktionen:

  • pressing — Gibt zurück, ob der Bumper-Schalter gedrückt wird.

  • pressed — Registriert eine Funktion, die aufgerufen werden soll, wenn der Bumper-Schalter gedrückt wird.

  • released — Registriert eine Funktion, die aufgerufen werden soll, wenn der Bumper-Schalter losgelassen wird.

Bevor Funktionen vom Typ bumper aufgerufen werden können, muss eine Instanz bumper erstellt werden, wie unten dargestellt:

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

Gibt zurück, ob der Stoßschalter aktuell gedrückt ist. Dies kann verwendet werden, um zu überprüfen, ob der Roboter gegen andere Objekte stößt.

Available Functions
int32_t pressing();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen int32_t zurück, der angibt, ob der Bumper-Schalter gedrückt ist.

  • 1 — Der Stoßschalter wird gedrückt.

  • 0 — Der Stoßschalter ist nicht betätigt.

pressed#

Registriert eine Funktion, die beim Drücken des Stoßschalters aufgerufen werden soll.

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

Parameters

Parameter

Typ

Beschreibung

callback

void (*)(void)

Ein Zeiger auf eine Funktion, die beim Drücken des Stoßfängers aufgerufen wird.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples

Definiere die Callback-Funktion (außerhalb von int main())

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

Registriere den Callback innerhalb von 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#

Registriert eine Funktion, die aufgerufen werden soll, wenn der Stoßschalter losgelassen wird.

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

Parameters

Parameter

Typ

Beschreibung

callback

void (*)(void)

Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn der Stoßdämpfer losgelassen wird.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples

Definiere die Callback-Funktion (außerhalb von int main())

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

Registriere den Callback innerhalb von 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);
}