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

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 |
|---|---|---|
|
|
Der 3-Draht-Anschluss, an den der Endschalter angeschlossen ist, wird als |
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 Functionsint32_t pressing();
Diese Funktion akzeptiert keine Parameter.
Return ValuesGibt 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 Functionsvoid pressed(
void (* callback)(void) );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn der Endschalter gedrückt wird. |
Diese Funktion gibt keinen Wert zurück.
ExamplesDefiniere 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 Functionsvoid released(
void (* callback)(void) );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn der Endschalter losgelassen wird. |
Diese Funktion gibt keinen Wert zurück.
ExamplesDefiniere 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); }