Eindschakelaar#

Invoering#

De limit wordt gebruikt met de eindschakelaar, een kleine digitale sensor die fysiek contact met een object detecteert.

De VEX EXP-limietschakelaar.

Klasseconstructor#

limit(
  triport::port &port);

Klasse-destructor#

Vernietigt het limit object en geeft de bijbehorende resources vrij.

virtual ~limit();

Parameters#

Parameter

Type

Beschrijving

port

triport::port &

De 3-draads poort waarop de eindschakelaar is aangesloten, wordt weergegeven als Brain.ThreeWirePort.X of ExpanderName.X, waarbij X de poortletter is (bijvoorbeeld Brain.ThreeWirePort.A of Expander1.A).

Voorbeeld#

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

Lidfuncties#

De klasse limit bevat de volgende lidfuncties:

  • pressing – Geeft aan of de eindschakelaar wordt ingedrukt.

  • pressed – Registreert een functie die wordt aangeroepen wanneer de eindschakelaar wordt ingedrukt.

  • released – Registreert een functie die moet worden aangeroepen wanneer de eindschakelaar wordt vrijgegeven.

Voordat er lidfuncties van het type limit kunnen worden aangeroepen, moet er een instantie van het type limit worden aangemaakt, zoals hieronder wordt weergegeven:

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

Geeft aan of de eindschakelaar momenteel is ingedrukt. Dit kan worden gebruikt om te controleren of de robot tegen andere objecten aanbotst.

Available Functions
int32_t pressing();

Parameters

Deze functie accepteert geen parameters.

Return Values

Geeft een int32_t terug die aangeeft of de eindschakelaar is ingedrukt.

  • 1 — De eindschakelaar wordt ingedrukt.

  • 0 — De eindschakelaar wordt niet ingedrukt.

pressed#

Registreert een functie die moet worden aangeroepen wanneer de eindschakelaar wordt ingedrukt.

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

Parameters

Parameter

Type

Beschrijving

callback

void (*)(void)

Een aanwijzer naar een functie die wordt aangeroepen wanneer de eindschakelaar wordt ingedrukt.

Return Values

Deze functie retourneert geen waarde.

Examples

Definieer de callbackfunctie (buiten int main())

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

Registreer de callback binnen 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#

Registreert een functie die moet worden aangeroepen wanneer de eindschakelaar wordt losgelaten.

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

Parameters

Parameter

Type

Beschrijving

callback

void (*)(void)

Een aanwijzer naar een functie die wordt aangeroepen wanneer de eindschakelaar wordt losgelaten.

Return Values

Deze functie retourneert geen waarde.

Examples

Definieer de callbackfunctie (buiten int main())

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

Registreer de callback binnen 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);
}