Bumperschakelaar#

Invoering#

De bumper klasse wordt gebruikt met de Bumper Switch, een mechanische schakelaar die een circuit sluit wanneer deze wordt ingedrukt, waardoor de robot het indrukken en loslaten kan detecteren.

De VEX EXP Bumper Switch is een apparaat met 3 draden, een brede zwarte basis om hem aan een robot te bevestigen en een rode drukknop bovenop.

Klasseconstructor#

bumper(
  triport::port &port );

Klasse-destructor#

Vernietigt het bumper object en geeft de bijbehorende resources vrij.

virtual ~bumper();

Parameters#

Parameter

Type

Beschrijving

port

triport::port&

De 3-draads poort waarop de bumperschakelaar 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 bumper instance in Port A
bumper BumperA = bumper(Brain.ThreeWirePort.A);

Lidfuncties#

De klasse bumper omvat de volgende lidfuncties:

  • pressing — Geeft aan of de bumperschakelaar wordt ingedrukt.

  • pressed — Registreert een functie die moet worden aangeroepen wanneer de bumperschakelaar wordt ingedrukt.

  • released — Registreert een functie die moet worden aangeroepen wanneer de bumperschakelaar wordt losgelaten.

Voordat er lidfuncties van bumper worden aangeroepen, moet er een instantie bumper worden gemaakt, zoals hieronder weergegeven:

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

Geeft aan of de bumperschakelaar 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 bumperschakelaar is ingedrukt.

  • 1 — De bumperschakelaar wordt ingedrukt.

  • 0 — De bumperschakelaar wordt niet ingedrukt.

pressed#

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

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

Parameters

Parameter

Type

Beschrijving

callback

void (*)(void)

Een verwijzing naar een functie die wordt aangeroepen wanneer de bumper wordt ingedrukt.

Return Values

Deze functie retourneert geen waarde.

Examples

Definieer de callbackfunctie (buiten int main())

// Display a message when bumper is pressed
void BumperPressed() {
  Brain.Screen.print("Bumper 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 BumperPressed when the value of the Bumper Switch is pressed.
  BumperA.pressed(BumperPressed);
}

released#

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

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

Parameters

Parameter

Type

Beschrijving

callback

void (*)(void)

Een verwijzing naar een functie die wordt aangeroepen wanneer de bumper wordt losgelaten.

Return Values

Deze functie retourneert geen waarde.

Examples

Definieer de callbackfunctie (buiten int main())

// Display a message when bumper is released
void BumperReleased() {
  Brain.Screen.print("Bumper 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 BumperReleased when the value of the Bumper Switch is released.
  BumperA.released(BumperReleased);
}