Torre de sinalização#

Introdução#

A classe signaltower é utilizada para alterar as luzes e detetar interações com a Torre de Sinalização CTE.

Construtores de Classes#

signaltower( 
  int32_t  index );

Destrutor de classes#

Destrói o objeto signaltower e liberta os recursos associados.

virtual ~signaltower();

Parâmetros#

Parâmetro

Tipo

Descrição

index

int32_t

A porta inteligente à qual a torre de sinalização está ligada, escrita como PORTx, em que x é o número da porta (por exemplo, PORT1).

Exemplos#

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

Funções de membro#

A classe signaltower fornece as seguintes funções membro:

  • setColor - Controla as cores e os estados do LED na Torre de Sinalização utilizando vários métodos de entrada.

  • setColors - Define o estado de todos os LEDs da Torre de Sinalização individualmente.

  • setBlink - Define o estado de intermitência de um LED na Torre de Sinalização pelo ID do LED.

  • setBlinkTime - Define o tempo entre intermitências dos LEDs na Torre de Sinalização.

  • enableBlink - Activa o piscar de vários LEDs na Torre de Sinalização pelos seus IDs.

  • disableBlink - Desativa o piscar de vários LEDs na Torre de Sinalização pelos seus IDs.

  • pressionando - Retorna se o botão da Torre de Sinalização está a ser pressionado no momento.

  • pressionado - Regista uma função a ser chamada quando o botão da Torre de Sinalização é pressionado.

  • released - Regista uma função a ser chamada quando o bumper da Torre de Sinalização é libertado.

setColor#

Controla as cores e os estados dos LEDs na Torre de Sinalização utilizando vários métodos de entrada. Estas luzes podem ser utilizadas para rastrear a localização do robô num projeto ou para indicar quando determinadas condições são cumpridas.

Available Functions

1 — Define a cor da Torre de Sinalização utilizando vex::color.

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

2 — Define as cores dos LEDs utilizando valores RGB e YW de 32 bits.

void setColor( 
  uint32_t rgb, 
  uint32_t yw );

3 — Define o brilho individual de cada LED por ID LED.

void setColor( 
  ledId id, 
  uint32_t value );

4 — Define os níveis de brilho para todos os LEDs individualmente.

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

Parameters

Parâmetro

Tipo

Descrição

color

vex::color

As cores a utilizar:

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

state

signaltower::state

Estado do LED:

  • on (Padrão) – Liga o LED.
  • off – Desliga o LED.
  • blink – Faz piscar o LED.

rgb

uint32_t

O brilho dos LEDs vermelho, verde e azul é definido utilizando um valor de 32 bits (por exemplo, vermelho aceso = 0xFF0000, verde aceso = 0x00FF00e azul aceso = 0x0000FF).

yw

uint32_t

O brilho dos LEDs amarelo e branco é medido utilizando um valor de 32 bits (por exemplo, amarelo aceso = 0xFF00 e branco aceso = 0x00FF).

id

ledId

Índice do LED a controlar:

  • 0 – vermelho
  • 1 – verde
  • 2 – azul
  • 3 – branco
  • 4 – amarelo

value

uint32_t

O brilho do LED varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo.

r

uint8_t

O brilho do LED vermelho varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo.

y

uint8_t

O brilho do LED amarelo varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo.

g

uint8_t

O brilho do LED verde varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo.

b

uint8_t

O brilho do LED azul varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo.

w

uint8_t

O brilho do LED branco varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo.

Return Values

Esta função não devolve qualquer 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#

Define individualmente o estado de todos os LEDs da Torre de Sinalização. Estas luzes podem ser utilizadas para rastrear a localização do robô num projeto ou para indicar quando determinadas condições são cumpridas.

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

Parameters

Parâmetro

Tipo

Descrição

rs

signaltower::state

Estado do LED vermelho:

  • on – Liga o LED.
  • off – Desliga o LED.
  • blink – Faz piscar o LED.

ys

signaltower::state

Estado do LED amarelo:

  • on – Liga o LED.
  • off – Desliga o LED.
  • blink – Faz piscar o LED.

gs

signaltower::state

Estado do LED verde:

  • on – Liga o LED.
  • off – Desliga o LED.
  • blink – Faz piscar o LED.

bs

signaltower::state

Estado do LED azul:

  • on – Liga o LED.
  • off – Desliga o LED.
  • blink – Faz piscar o LED.

ws

signaltower::state

Estado do LED branco:

  • on – Liga o LED.
  • off – Desliga o LED.
  • blink – Faz piscar o LED.

Return Values

Esta função não devolve qualquer valor.

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

setBlinkTime#

Define o intervalo de tempo entre os pestanejos dos LEDs na torre de sinalização.

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

Parameters

Parâmetro

Tipo

Descrição

onTime

uint32_t

O tempo, em milissegundos, que o LED deve permanecer aceso ao piscar. O valor máximo é de 2500 ms. O valor 0 corresponde a 500 ms por defeito.

offTime

uint32_t

O tempo, em milissegundos, que o LED deve permanecer apagado ao piscar. O valor máximo é de 2500 ms. Um valor de 0 utiliza o valor de onTime. O valor predefinido é 0.

Return Values

Esta função não devolve qualquer valor.

pressing#

Retorna se o botão de paragem da torre de sinalização está a ser premido. Isto pode ser usado como uma paragem de emergência.

Available Functions
bool pressing();

Parameters

Esta função não tem parâmetros.

Return Values

Retorna um valor booleano indicando se o botão de proteção da Torre de Sinalização está a ser premido.

  • true — O pára-choques da Torre de Sinalização está a ser pressionado neste momento.

  • false — O pára-choques da Torre de Sinalização não está a ser premido.

pressed#

Regista uma função a ser chamada quando o botão de proteção da Torre de Sinalização é premido.

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

Parameters

Parâmetro

Tipo

Descrição

callback

void (*)(void)

Um ponteiro para uma função que será chamada quando o botão do pára-choques for premido.

Return Values

Esta função não devolve qualquer valor.

Examples

Defina a função de callback (fora de int main())

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

Registe o callback 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#

Regista uma função a ser chamada quando o pára-choques da Torre de Sinalização for libertado.

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

Parameters

Parâmetro

Tipo

Descrição

callback

void (*)(void)

Um ponteiro para uma função que será chamada quando o pára-choques for libertado.

Return Values

Esta função não devolve qualquer valor.

Examples

Defina a função de callback (fora de int main())

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

Registe o callback 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);
}