Endschalter#

Einführung#

Die Klasse limit wird mit dem Endschalter verwendet, einem kleinen digitalen Sensor, der den physischen Kontakt mit einem Objekt erkennt.

Der VEX V5 Endschalter.

Klassenkonstruktor#

limit(
  triport::port &port);

Klassendestruktor#

Zerstört das Objekt mit der Limit limit Größe und gibt die zugehörigen Ressourcen frei.

virtual ~limit();

Parameter#

Parameter

Typ

Beschreibung

port

triport::port &

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

Beispiel#

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

Mitgliedsfunktionen#

Die Klasse limit umfasst die folgenden Memberfunktionen:

  • pressing – Gibt zurück, ob der Endschalter gedrückt ist.

  • pressed – Registriert eine Funktion, die aufgerufen werden soll, wenn der Endschalter gedrückt wird.

  • released – Registriert eine Funktion, die aufgerufen werden soll, sobald der Endschalter losgelassen wird.

Bevor limit Memberfunktionen aufgerufen werden können, muss eine limit Instanz erstellt werden, wie unten gezeigt:

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

Gibt zurück, ob der Endschalter aktuell betätigt wird. Dies kann verwendet werden, um zu überprüfen, ob der Roboter mit anderen Objekten kollidiert.

Available Functions
int32_t pressing();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen int32_t zurück, der angibt, ob der Endschalter gedrückt ist.

  • 1 — Der Endschalter wird gedrückt.

  • 0 — Der Endschalter ist nicht betätigt.

pressed#

Registriert eine Funktion, die aufgerufen werden soll, wenn der Endschalter gedrückt wird.

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

Parameters

Parameter

Typ

Beschreibung

callback

void (*)(void)

Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn der Endschalter gedrückt wird.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples

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

void switchPressed() {
  // The Brain will print that the Limit Switch was pressed
  // on the Brain's screen.
  Brain.Screen.print("switch 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 switchPressed when the Limit Switch is pressed.
  LimitSwitchA.pressed(switchPressed);
}

released#

Registriert eine Funktion, die aufgerufen werden soll, wenn der Endschalter 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 Endschalter losgelassen wird.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples

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

void switchReleased() {
  // The Brain will print that the Limit Switch was released
  // on the Brain's screen.
  Brain.Screen.print("switch 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 switchReleased when the Limit Switch is released.
  LimitSwitchA.released(switchReleased);
}