Ribinis jungiklis#

Įvadas#

limit klasė naudojama su ribiniu jungikliu – mažu skaitmeniniu jutikliu, kuris aptinka fizinį kontaktą su objektu.

VEX EXP ribojimo jungiklis.

Klasės konstruktorius#

limit(
  triport::port &port);

Klasės destruktorius#

Sunaikina limit objektą ir išlaisvina susijusius išteklius.

virtual ~limit();

Parametrai#

Parametras

Tipas

Aprašymas

port

triport::port &

3 laidų prievadas, prie kurio prijungtas ribojimo jungiklis, užrašomas kaip Brain.ThreeWirePort.X arba ExpanderName.X, kur X yra prievado raidė (pavyzdžiui, Brain.ThreeWirePort.A arba Expander1.A).

Pavyzdys#

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

Narių funkcijos#

limit klasė apima šias narines funkcijas:

  • pressing – Grąžina, ar paspaudžiamas ribinis jungiklis.

  • pressed – Registruoja funkciją, kuri bus iškviečiama kaskart paspaudus ribinį jungiklį.

  • released – Registruoja funkciją, kuri bus iškviečiama kaskart atleidus ribinį jungiklį.

Prieš iškviečiant bet kokias limit nario funkcijas, reikia sukurti limit egzempliorių, kaip parodyta žemiau:

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

Grąžina, ar šiuo metu paspaustas ribinis jungiklis. Tai gali būti naudojama norint patikrinti, ar robotas neatsitrenkia į kitus objektus.

Available Functions
int32_t pressing();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Grąžina int32_t , nurodantį, ar paspaustas ribinis jungiklis.

  • 1 — Paspaustas ribinis jungiklis.

  • 0 — Nepaspaustas galinis jungiklis.

pressed#

Registruoja funkciją, kuri bus iškviečiama paspaudus ribinį jungiklį.

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

Parameters

Parametras

Tipas

Aprašymas

callback

void (*)(void)

Rodyklė į funkciją, kuri bus iškviečiama paspaudus ribinį jungiklį.

Return Values

Ši funkcija negrąžina reikšmės.

Examples

Apibrėžkite grįžtamojo ryšio funkciją (už int main())

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

Registruokite atgalinį iškvietimą int main() viduje

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#

Registruoja funkciją, kuri bus iškviečiama atleidus ribinį jungiklį.

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

Parameters

Parametras

Tipas

Aprašymas

callback

void (*)(void)

Rodyklė į funkciją, kuri bus iškviečiama atleidus ribinį jungiklį.

Return Values

Ši funkcija negrąžina reikšmės.

Examples

Apibrėžkite grįžtamojo ryšio funkciją (už int main())

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

Registruokite atgalinį iškvietimą int main() viduje

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);
}