Signalturm#

Einführung#

Die Klasse signaltower dient dazu, Ampeln zu schalten und Interaktionen mit dem CTE-Signalturm zu erkennen.

Klassenkonstruktoren#

signaltower( 
  int32_t  index );

Klassendestruktor#

Destroys the signaltower object and releases associated resources.

virtual ~signaltower();

Parameter#

Parameter

Typ

Beschreibung

index

int32_t

Der Smart Port, an den der Signal Tower angeschlossen ist, wird als PORTxgeschrieben, wobei x die Portnummer ist (zum Beispiel PORT1).

Beispiele#

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

Mitgliedsfunktionen#

Die Klasse signaltower stellt die folgenden Memberfunktionen bereit:

  • setColor - Steuert die LED-Farben und -Zustände am Signalturm mithilfe verschiedener Eingabemethoden.

  • setColors - Legt den Zustand aller LEDs am Signalturm einzeln fest.

  • setBlink - Legt den Blinkzustand einer LED am Signalturm anhand der LED-ID fest.

  • setBlinkTime - Legt die Zeit zwischen den Blinkvorgängen der LEDs am Signalturm fest.

  • enableBlink - Aktiviert das Blinken mehrerer LEDs am Signalturm anhand ihrer IDs.

  • disableBlink - Deaktiviert das Blinken mehrerer LEDs am Signalturm anhand ihrer IDs.

  • pressing - Gibt zurück, ob der Signal Tower Bumper gerade gedrückt wird.

  • gedrückt - Registriert eine Funktion, die aufgerufen werden soll, wenn der Signalturm-Stoßdämpfer gedrückt wird.

  • released - Registriert eine Funktion, die aufgerufen wird, wenn der Signal Tower Bumper losgelassen wird.

setColor#

Steuert die LED-Farben und -Zustände am Signalturm über verschiedene Eingabemethoden. Diese Leuchten können verwendet werden, um die Position des Roboters in einem Projekt zu verfolgen oder um anzuzeigen, wann bestimmte Bedingungen erfüllt sind.

Available Functions

1 — Legt die Farbe des Signalturms mithilfe von vex::color fest.

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

2 — Legt die LED-Farben mithilfe von 32-Bit-RGB- und YW-Werten fest.

void setColor( 
  uint32_t rgb, 
  uint32_t yw );

3 — Legt die Helligkeit einzelner LEDs anhand der LED-ID fest.

void setColor( 
  ledId id, 
  uint32_t value );

4 — Legt die Helligkeitsstufen für alle LEDs einzeln fest.

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

Parameters

Parameter

Typ

Beschreibung

color

vex::color

Die zu verwendende Farbe:

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

state

signaltower::state

Der Zustand der LED:

  • on (Standard) – Schaltet die LED ein.
  • off – Schaltet die LED aus.
  • blink – Lässt die LED blinken.

rgb

uint32_t

Die Helligkeit der roten, grünen und blauen LED wird mit einem 32-Bit-Wert angegeben (z. B. rot an = 0xFF0000, grün an = 0x00FF00, und blau an = 0x0000FF).

yw

uint32_t

Die Helligkeit der gelben und weißen LED wird mit einem 32-Bit-Wert angegeben (z. B. gelb an = 0xFF00 und weiß an = 0x00FF).

id

ledId

Index der zu steuernden LED:

  • 0 – rot
  • 1 – grün
  • 2 – blau
  • 3 – weiß
  • 4 – gelb

value

uint32_t

Die Helligkeit der LED reicht von 0 bis 255, wobei 0 für Aus und 255 für maximale Helligkeit steht.

r

uint8_t

Die Helligkeit der roten LED reicht von 0 bis 255, wobei 0 für aus und 255 für maximale Helligkeit steht.

y

uint8_t

Die Helligkeit der gelben LED reicht von 0 bis 255, wobei 0 für aus und 255 für maximale Helligkeit steht.

g

uint8_t

Die Helligkeit der grünen LED reicht von 0 bis 255, wobei 0 für aus und 255 für maximale Helligkeit steht.

b

uint8_t

Die Helligkeit der blauen LED reicht von 0 bis 255, wobei 0 für aus und 255 für maximale Helligkeit steht.

w

uint8_t

Die Helligkeit der weißen LED reicht von 0 bis 255, wobei 0 für aus und 255 für maximale Helligkeit steht.

Return Values

Diese Funktion gibt keinen Wert zurück.

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#

Legt den Status aller LEDs am Signalturm individuell fest. Diese Leuchten können verwendet werden, um die Position des Roboters in einem Projekt zu verfolgen oder um anzuzeigen, wann bestimmte Bedingungen erfüllt sind.

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

Parameters

Parameter

Typ

Beschreibung

rs

signaltower::state

Der Zustand der roten LED:

  • on – Schaltet die LED ein.
  • off – Schaltet die LED aus.
  • blink – Lässt die LED blinken.

ys

signaltower::state

Der Zustand der gelben LED:

  • on – Schaltet die LED ein.
  • off – Schaltet die LED aus.
  • blink – Lässt die LED blinken.

gs

signaltower::state

Der Zustand der grünen LED:

  • on – Schaltet die LED ein.
  • off – Schaltet die LED aus.
  • blink – Lässt die LED blinken.

bs

signaltower::state

Der Zustand der blauen LED:

  • on – Schaltet die LED ein.
  • off – Schaltet die LED aus.
  • blink – Lässt die LED blinken.

ws

signaltower::state

Der Zustand der weißen LED:

  • on – Schaltet die LED ein.
  • off – Schaltet die LED aus.
  • blink – Lässt die LED blinken.

Return Values

Diese Funktion gibt keinen Wert zurück.

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

setBlinkTime#

Legt die Zeit zwischen den Blinksignalen der LEDs am Signalturm fest.

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

Parameters

Parameter

Typ

Beschreibung

onTime

uint32_t

Die Blinkdauer der LED in Millisekunden. Maximalwert: 2500 ms. Der Wert 0 entspricht standardmäßig 500 ms.

offTime

uint32_t

Die Zeit in Millisekunden, die die LED beim Blinken ausgeschaltet sein soll. Maximalwert: 2500 ms. Der Wert 0 entspricht dem Wert für die Einschaltzeit. Standardwert: 0.

Return Values

Diese Funktion gibt keinen Wert zurück.

pressing#

Gibt zurück, ob der Stoßdämpfer des Signalturms gerade betätigt wird. Dies kann als Notstopp verwendet werden.

Available Functions
bool pressing();

Parameters

Diese Funktion hat keine Parameter.

Return Values

Gibt einen booleschen Wert zurück, der angibt, ob der Stoßdämpfer des Signalturms gerade gedrückt wird.

  • true — Der Stoßfänger des Signalturms wird gerade gedrückt.

  • false — Der Stoßfänger des Signalturms wird nicht gedrückt.

pressed#

Registriert eine Funktion, die aufgerufen werden soll, wenn der Signalturm-Stoßdämpfer gedrückt wird.

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

Parameters

Parameter

Typ

Beschreibung

callback

void (*)(void)

Ein Zeiger auf eine Funktion, die beim Drücken des Stoßfängers aufgerufen wird.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples

Definiere die Callback-Funktion (außerhalb von int main())

// Display a message when bumper is pressed
void towerBumperPressed() {
  Brain.Screen.print("tower bumper 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 towerBumperPressed when the tower bumper 
  // is pressed
  SignalTower.pressed(towerBumperPressed);
}

released#

Registriert eine Funktion, die aufgerufen werden soll, wenn der Signalturm-Stoßdämpfer losgelassen wird.

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

Parameters

Parameter

Typ

Beschreibung

callback

void (*)(void)

Ein Zeiger auf eine Funktion, die aufgerufen wird, wenn der Stoßdämpfer losgelassen wird.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples

Definiere die Callback-Funktion (außerhalb von int main())

// Display a message when bumper is released
void towerBumperReleased() {
  Brain.Screen.print("tower bumper 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 towerBumperReleased when the tower bumper 
  // is released
  SignalTower.released(towerBumperReleased);
}