Signaaltoren#

Invoering#

De signaltower klasse wordt gebruikt om lichten te veranderen en interacties met de CTE-signaaltoren te detecteren.

Klasseconstructors#

signaltower( 
  int32_t  index );

Klasse-destructor#

Vernietigt het object signaltower en geeft de bijbehorende resources vrij.

virtual ~signaltower();

Parameters#

Parameter

Type

Beschrijving

index

int32_t

De slimme poort waarop de zendmast is aangesloten, wordt weergegeven als PORTx, waarbij x het poortnummer is (bijvoorbeeld PORT1).

Voorbeelden#

// Create a signal tower instance in Port 1
signaltower SignalTower = signaltower(PORT1);

Lidfuncties#

De klasse signaltower biedt de volgende lidfuncties:

  • setColor - Regelt de kleuren en statussen van de LED’s op de seintoren met behulp van verschillende invoermethoden.

  • setColors - Stelt de status van alle LED’s op de signaaltoren afzonderlijk in.

  • setBlink - Stelt de knipperstatus van een LED op de signaaltoren in op basis van de ID van de LED.

  • setBlinkTime - Stelt de tijd in tussen het knipperen van de LED’s op de signaaltoren.

  • enableBlink - Schakelt het knipperen in voor meerdere LED’s op de signaaltoren op basis van hun ID’s.

  • disableBlink - Schakelt het knipperen uit voor meerdere LED’s op de signaaltoren op basis van hun ID’s.

  • pressing - Geeft aan of de bumper van de Signal Tower momenteel wordt ingedrukt.

  • pressed - Registreert een functie die moet worden aangeroepen wanneer de bumper van de Signal Tower wordt ingedrukt.

  • released - Registreert een functie die moet worden aangeroepen wanneer de bumper van de Signal Tower wordt losgelaten.

setColor#

Hiermee kunnen de kleuren en statussen van de LED’s op de signaaltoren worden aangestuurd met behulp van verschillende invoermethoden. Deze lampjes kunnen worden gebruikt om de positie van de robot in een project te volgen of om aan te geven wanneer aan bepaalde voorwaarden is voldaan.

Available Functions

1 — Hiermee wordt de kleur van de zendmast ingesteld met behulp van vex::color.

void setColor( 
  vex::color         color, 
  signaltower::state state = signaltower::state::on );

2 — Stelt LED-kleuren in met behulp van 32-bits RGB- en YW-waarden.

void setColor( 
  uint32_t rgb, 
  uint32_t yw );

3 — Stelt de individuele LED-helderheid in op basis van LED-ID.

void setColor( 
  ledId id, 
  uint32_t value );

4 — Hiermee stelt u de helderheidsniveaus voor alle LED’s afzonderlijk in.

void setColor( 
  uint8_t r, 
  uint8_t y, 
  uint8_t g, 
  uint8_t b, 
  uint8_t w );

Parameters

Parameter

Type

Beschrijving

color

vex::color

De te gebruiken kleur:

  • red
  • yellow
  • green
  • blue
  • white
  • all

state

signaltower::state

De status van de LED:

  • on (Standaard) – Schakelt de LED in.
  • off – Schakelt de LED uit.
  • blink – Laat de LED knipperen.

rgb

uint32_t

De helderheid van de rode, groene en blauwe LED wordt ingesteld met een 32-bits waarde (bijv. rood aan = 0xFF0000, groen aan = 0x00FF00en blauw aan = 0x0000FF).

yw

uint32_t

De helderheid van de gele en witte LED wordt ingesteld met een 32-bits waarde (bijvoorbeeld geel aan = 0xFF00 en wit aan = 0x00FF).

id

ledId

De index van de te bedienen LED:

  • 0 – rood
  • 1 – groen
  • 2 – blauw
  • 3 – wit
  • 4 – geel

value

uint32_t

De helderheid van de LED kan worden ingesteld van 0 tot 255, waarbij 0 uit is en 255 de maximale helderheid.

r

uint8_t

De helderheid van de rode LED kan worden ingesteld van 0 tot 255, waarbij 0 uit is en 255 de maximale helderheid.

y

uint8_t

De helderheid van de gele LED kan worden ingesteld van 0 tot 255, waarbij 0 uit is en 255 de maximale helderheid.

g

uint8_t

De helderheid van de groene led kan worden ingesteld van 0 tot 255, waarbij 0 uit is en 255 de maximale helderheid.

b

uint8_t

De helderheid van de blauwe led is instelbaar van 0 tot 255, waarbij 0 uit is en 255 de maximale helderheid.

w

uint8_t

De helderheid van de witte led kan worden ingesteld van 0 tot 255, waarbij 0 uit is en 255 de maximale helderheid.

Return Values

Deze functie retourneert geen waarde.

Examples
// Set the Signal Tower to start blinking blue
SignalTower.setColor(vex::color::blue, signaltower::blink);

// Set the red, blue and white LEDs using hex values
SignalTower.setColor(0xFF00FF, 0x00FF);

// Set the green LED to full brightness by ID
SignalTower.setColor(1, 255);

// Set all LEDs to full brightness
SignalTower.setColor(255, 255, 255, 255, 255);

setColors#

Hiermee kan de status van alle LED’s op de signaaltoren afzonderlijk worden ingesteld. Deze lampjes kunnen worden gebruikt om de positie van de robot in een project te volgen of om aan te geven wanneer aan bepaalde voorwaarden is voldaan.

Available Functions
void setColors( 
  signaltower::state rs, 
  signaltower::state ys, 
  signaltower::state gs, 
  signaltower::state bs, 
  signaltower::state ws );

Parameters

Parameter

Type

Beschrijving

rs

signaltower::state

De status van de rode LED:

  • on – Schakelt de LED in.
  • off – Schakelt de LED uit.
  • blink – Laat de LED knipperen.

ys

signaltower::state

De status van de gele LED:

  • on – Schakelt de LED in.
  • off – Schakelt de LED uit.
  • blink – Laat de LED knipperen.

gs

signaltower::state

De status van de groene LED:

  • on – Schakelt de LED in.
  • off – Schakelt de LED uit.
  • blink – Laat de LED knipperen.

bs

signaltower::state

De status van de blauwe LED:

  • on – Schakelt de LED in.
  • off – Schakelt de LED uit.
  • blink – Laat de LED knipperen.

ws

signaltower::state

De status van de witte LED:

  • on – Schakelt de LED in.
  • off – Schakelt de LED uit.
  • blink – Laat de LED knipperen.

Return Values

Deze functie retourneert geen waarde.

Examples
// Turn on all LEDs
SignalTower.setColors(signaltower::on, signaltower::on, signaltower::on, signaltower::on, signaltower::on);

setBlinkTime#

Hiermee stelt u de tijd tussen de knipperbewegingen van de LED’s op de seintoren in.

Available Functions
void setBlinkTime( 
  uint32_t onTime, 
  uint32_t offTime = 0 );

Parameters

Parameter

Type

Beschrijving

onTime

uint32_t

De tijdsduur in milliseconden dat de LED moet branden tijdens het knipperen. De maximale waarde is 2500 ms. Een waarde van 0 resulteert in een standaardwaarde van 500 ms.

offTime

uint32_t

De tijd in milliseconden dat de LED uit moet zijn tijdens het knipperen. Maximaal 2500 ms. Een waarde van 0 gebruikt de onTime-waarde. De standaardwaarde is 0.

Return Values

Deze functie retourneert geen waarde.

pressing#

Geeft aan of de bumper van de seintoren momenteel wordt ingedrukt. Dit kan als noodstop worden gebruikt.

Available Functions
bool pressing();

Parameters

Deze functie heeft geen parameters.

Return Values

Geeft een Booleaanse waarde terug die aangeeft of de bumper van de zendmast momenteel wordt ingedrukt.

  • true — De bumper van de zendmast wordt momenteel ingedrukt.

  • false — De bumper van de zendmast wordt niet ingedrukt.

pressed#

Registreert een functie die moet worden aangeroepen wanneer de bumper van de Signal Tower 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 towerBumperPressed() {
  Brain.Screen.print("tower 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 towerBumperPressed when the tower bumper 
  // is pressed
  SignalTower.pressed(towerBumperPressed);
}

released#

Registreert een functie die moet worden aangeroepen wanneer de bumper van de Signal Tower 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 towerBumperReleased() {
  Brain.Screen.print("tower 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 towerBumperReleased when the tower bumper 
  // is released
  SignalTower.released(towerBumperReleased);
}