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 |
|---|---|---|
|
|
A porta inteligente à qual a torre de sinalização está ligada, escrita como |
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 Functions1 — 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 );
Parameters4 — 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 );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
As cores a utilizar:
|
|
|
Estado do LED:
|
|
|
O brilho dos LEDs vermelho, verde e azul é definido utilizando um valor de 32 bits (por exemplo, vermelho aceso = |
|
|
O brilho dos LEDs amarelo e branco é medido utilizando um valor de 32 bits (por exemplo, amarelo aceso = |
|
|
Índice do LED a controlar:
|
|
|
O brilho do LED varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo. |
|
|
O brilho do LED vermelho varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo. |
|
|
O brilho do LED amarelo varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo. |
|
|
O brilho do LED verde varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo. |
|
|
O brilho do LED azul varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo. |
|
|
O brilho do LED branco varia de 0 a 255, sendo 0 desligado e 255 o brilho máximo. |
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 Functionsvoid setColors(
signaltower::state rs,
signaltower::state ys,
signaltower::state gs,
signaltower::state bs,
signaltower::state ws );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Estado do LED vermelho:
|
|
|
Estado do LED amarelo:
|
|
|
Estado do LED verde:
|
|
|
Estado do LED azul:
|
|
|
Estado do LED branco:
|
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);
setBlink#
Define o estado de intermitência de um LED na Torre de Sinalização pelo ID do LED. Estas luzes intermitentes podem ser utilizadas para indicar quando determinadas condições são cumpridas, como quando o robô está à espera ou quando é necessária atenção.
Available Functionsvoid setBlink(
ledId id,
bool enable );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
ID do LED:
|
|
|
|
Esta função não devolve qualquer valor.
setBlinkTime#
Define o intervalo de tempo entre os pestanejos dos LEDs na torre de sinalização.
Available Functionsvoid setBlinkTime(
uint32_t onTime,
uint32_t offTime = 0 );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
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. |
|
|
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. |
Esta função não devolve qualquer valor.
enableBlink#
Permite que vários LEDs na torre de sinalização pisquem de acordo com os seus IDs.
Available Functionsvoid enableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
ID do LED:
|
|
|
O índice do segundo LED (opcional). O predefinido é
|
|
|
O índice do terceiro LED (opcional). O predefinido é
|
|
|
O índice do quarto LED (opcional). O predefinido é
|
|
|
O índice do quinto LED (opcional). O predefinido é
|
Esta função não devolve qualquer valor.
disableBlink#
Desativa a intermitência de vários LEDs na torre de sinalização, identificados pelos seus respetivos IDs.
Available Functionsvoid disableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Índice do primeiro LED.
|
|
|
O índice do segundo LED (opcional). O predefinido é
|
|
|
O índice do terceiro LED (opcional). O predefinido é
|
|
|
O índice do quarto LED (opcional). O predefinido é
|
|
|
O índice do quinto LED (opcional). O predefinido é
|
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 Functionsbool pressing();
Esta função não tem parâmetros.
Return ValuesRetorna 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 Functionsvoid pressed( void (* callback)(void) );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um ponteiro para uma função que será chamada quando o botão do pára-choques for premido. |
Esta função não devolve qualquer valor.
ExamplesDefina 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 Functionsvoid released( void (* callback)(void) );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um ponteiro para uma função que será chamada quando o pára-choques for libertado. |
Esta função não devolve qualquer valor.
ExamplesDefina 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); }