Torre de señales#

Introducción#

La clase signaltower se utiliza para cambiar las luces y detectar interacciones con la torre de señalización CTE.

Constructores de clase#

signaltower( 
  int32_t  index );

Destructor de clase#

Destruye el signaltower objeto signaltower y libera los recursos asociados.

virtual ~signaltower();

Parámetros#

Parámetro

Tipo

Descripción

index

int32_t

El puerto inteligente al que está conectada la torre de señalización, escrito como PORTx, donde x es el número de puerto (por ejemplo, PORT1).

Ejemplos#

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

Funciones de los miembros#

La signaltower clase signaltower proporciona las siguientes funciones de miembro:

  • setColor - Controla los colores y estados del LED en la torre de señal utilizando varios métodos de entrada.

  • setColors - Establece el estado de todos los LED en la torre de señal individualmente.

  • setBlink - Establece el estado de parpadeo de un LED en la Torre de Señal por el ID del LED.

  • setBlinkTime - Establece el tiempo entre parpadeos para los LED en la Torre de Señal.

  • enableBlink: habilita el parpadeo para varios LED en la torre de señal por sus ID.

  • disableBlink: desactiva el parpadeo de varios LED en la torre de señalización por sus ID.

  • Pressing - Devuelve si el parachoques de la torre de señalización se está presionando actualmente.

  • presionado - Registra una función que se llamará cuando se presione el parachoques de la Torre de Señal.

  • released - Registra una función que se llamará cuando se suelte el parachoques de la torre de señales.

setColor#

Controla los colores y estados del LED en la torre de señal utilizando varios métodos de entrada. Estas luces se pueden utilizar para rastrear dónde se encuentra el robot en un proyecto o para mostrar cuándo se cumplen ciertas condiciones.

Available Functions

1 — Establece la torre de señalización en un color usando vex::color.

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

2 — Establece los colores LED utilizando valores RGB e YW de 32 bits.

void setColor( 
  uint32_t rgb, 
  uint32_t yw );

3 — Establece el brillo individual del LED por identificación del LED.

void setColor( 
  ledId id, 
  uint32_t value );

4 — Establece los niveles de brillo para todos los LED individualmente.

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

Parameters

Parámetro

Tipo

Descripción

color

vex::color

El color a utilizar:

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

state

signaltower::state

El estado del LED:

  • on (Predeterminado) – Enciende el LED.
  • off – Apaga el LED.
  • blink – Hace que el LED parpadee.

rgb

uint32_t

El brillo del LED rojo, verde y azul utilizando un valor de 32 bits (por ejemplo, rojo encendido = 0xFF0000, verde encendido = 0x00FF000x00FF00 y azul encendido = 0x0000FF).

yw

uint32_t

El brillo del LED amarillo y blanco utilizando un valor de 32 bits (por ejemplo, amarillo encendido = 0xFF00 y blanco encendido = 0x00FF).

id

ledId

El índice del LED al control:

  • 0 – rojo
  • 1 – verde
  • 2 – azul
  • 3 – blanco
  • 4 – amarillo

value

uint32_t

El brillo del LED va de 0 a 255, donde 0 está apagado y 255 es el brillo máximo.

r

uint8_t

El brillo del LED rojo de 0 a 255, donde 0 está apagado y 255 es el brillo máximo.

y

uint8_t

El brillo del LED amarillo va de 0 a 255, donde 0 está apagado y 255 es el brillo máximo.

g

uint8_t

El brillo del LED verde de 0 a 255, donde 0 está apagado y 255 es el brillo máximo.

b

uint8_t

El brillo del LED azul de 0 a 255, donde 0 está apagado y 255 es el brillo máximo.

w

uint8_t

El brillo del LED blanco de 0 a 255, donde 0 está apagado y 255 es el brillo máximo.

Return Values

Esta función no devuelve un valor.

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#

Establece el estado de todos los LED en la torre de señalización individualmente. Estas luces se pueden utilizar para rastrear dónde se encuentra el robot en un proyecto o para mostrar cuándo se cumplen ciertas condiciones.

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

Parameters

Parámetro

Tipo

Descripción

rs

signaltower::state

El estado del LED rojo:

  • on – Enciende el LED.
  • off – Apaga el LED.
  • blink – Hace que el LED parpadee.

ys

signaltower::state

El estado del LED amarillo:

  • on – Enciende el LED.
  • off – Apaga el LED.
  • blink – Hace que el LED parpadee.

gs

signaltower::state

El estado del LED verde:

  • on – Enciende el LED.
  • off – Apaga el LED.
  • blink – Hace que el LED parpadee.

bs

signaltower::state

El estado del LED azul:

  • on – Enciende el LED.
  • off – Apaga el LED.
  • blink – Hace que el LED parpadee.

ws

signaltower::state

El estado del LED blanco:

  • on – Enciende el LED.
  • off – Apaga el LED.
  • blink – Hace que el LED parpadee.

Return Values

Esta función no devuelve un valor.

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

setBlinkTime#

Establece el tiempo entre parpadeos para los LED en la torre de señal.

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

Parameters

Parámetro

Tipo

Descripción

onTime

uint32_t

El tiempo en milisegundos que el LED debe estar encendido cuando parpadea. Max es 2500ms. Un valor de 0 por defecto es 500ms.

offTime

uint32_t

El tiempo en milisegundos que el LED debe estar apagado cuando parpadea. Max es 2500ms. Un valor de 0 usa el valor onTime. El valor predeterminado es 0.

Return Values

Esta función no devuelve un valor.

pressing#

Devuelve si el parachoques de la torre de señalización está siendo presionado actualmente. Esto se puede utilizar como una parada de emergencia.

Available Functions
bool pressing();

Parameters

Esta función no tiene parámetros.

Return Values

Devuelve un booleano que indica si se está presionando el parachoques de la torre de señalización.

  • true — El parachoques de la Torre de Señales está siendo presionado actualmente.

  • false — El parachoques de la Torre de Señales no está siendo presionado.

pressed#

Registra una función que se llamará cuando se presione el parachoques de la torre de señalización.

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

Parameters

Parámetro

Tipo

Descripción

callback

void (*)(void)

Un puntero a una función que se llamará cuando se presione el parachoques.

Return Values

Esta función no devuelve un valor.

Examples

Defina la función de devolución de llamada (fuera de int main())

// Display a message when bumper is pressed
void towerBumperPressed() {
  Brain.Screen.print("tower bumper pressed");
}

Registrar la devolución de llamada dentro de 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#

Registra una función que se llamará cuando se suelte el parachoques de la torre de señalización.

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

Parameters

Parámetro

Tipo

Descripción

callback

void (*)(void)

Un puntero a una función que se llamará cuando se suelte el parachoques.

Return Values

Esta función no devuelve un valor.

Examples

Defina la función de devolución de llamada (fuera de int main())

// Display a message when bumper is released
void towerBumperReleased() {
  Brain.Screen.print("tower bumper released");
}

Registrar la devolución de llamada dentro de 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);
}