Signal Tower#
Introduction#
The signaltower class is used to change lights and detect interactions with the CTE Signal Tower.
Class Constructors#
signaltower(
int32_t index );
Class Destructor#
Destroys the signaltower object and releases associated resources.
virtual ~signaltower();
Parameters#
Parameter |
Type |
Description |
|---|---|---|
|
|
The Smart Port that the Signal Tower is connected to, written as |
Examples#
// Create a signal tower instance in Port 1
signaltower SignalTower = signaltower(PORT1);
Member Functions#
The signaltower class provides the following member functions:
setColor - Controls the LED colors and states on the Signal Tower using various input methods.
setColors - Sets the state of all LEDs on the Signal Tower individually.
setBlink - Sets the blink state of an LED on the Signal Tower by the LED’s ID.
setBlinkTime - Sets the time between blinks for the LEDs on the Signal Tower.
enableBlink - Enables blinking for multiple LEDs on the Signal Tower by their IDs.
disableBlink - Disables blinking for multiple LEDs on the Signal Tower by their IDs.
pressing - Returns whether the Signal Tower bumper is currently being pressed.
pressed - Registers a function to be called when the Signal Tower bumper is pressed.
released - Registers a function to be called when the Signal Tower bumper is released.
setColor#
Controls the LED colors and states on the Signal Tower using various input methods. These lights can be used to track where the robot is at in a project or to show when certain conditions are met.
Available Functions1 — Sets the Signal Tower to a color using vex::color.
void setColor( vex::color color, signaltower::state state = signaltower::state::on );
2 — Sets LED colors using 32-bit RGB and YW values.
void setColor( uint32_t rgb, uint32_t yw );
3 — Sets individual LED brightness by LED ID.
void setColor( ledId id, uint32_t value );
Parameters4 — Sets brightness levels for all LEDs individually.
void setColor( uint8_t r, uint8_t y, uint8_t g, uint8_t b, uint8_t w );
Parameter |
Type |
Description |
|---|---|---|
|
|
The color to use:
|
|
|
The state for the LED:
|
|
|
The brightness of red, green and blue LED using a 32-bit value (e.g., red on = |
|
|
The brightness of yellow and white LED using a 32-bit value (e.g., yellow on = |
|
|
The index of the LED to control:
|
|
|
The brightness of the LED from 0 to 255, with 0 being off and 255 being the max brightness. |
|
|
The brightness of the red LED from 0 to 255, with 0 being off and 255 being the max brightness. |
|
|
The brightness of the yellow LED from 0 to 255, with 0 being off and 255 being the max brightness. |
|
|
The brightness of the green LED from 0 to 255, with 0 being off and 255 being the max brightness. |
|
|
The brightness of the blue LED from 0 to 255, with 0 being off and 255 being the max brightness. |
|
|
The brightness of the white LED from 0 to 255, with 0 being off and 255 being the max brightness. |
This function does not return a value.
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#
Sets the state of all LEDs on the Signal Tower individually. These lights can be used to track where the robot is at in a project or to show when certain conditions are met.
Available Functionsvoid setColors(
signaltower::state rs,
signaltower::state ys,
signaltower::state gs,
signaltower::state bs,
signaltower::state ws );
Parameter |
Type |
Description |
|---|---|---|
|
|
The state of the red LED:
|
|
|
The state of the yellow LED:
|
|
|
The state of the green LED:
|
|
|
The state of the blue LED:
|
|
|
The state of the white LED:
|
This function does not return a value.
Examples// Turn on all LEDs
SignalTower.setColors(signaltower::on, signaltower::on, signaltower::on, signaltower::on, signaltower::on);
setBlink#
Sets the blink state of an LED on the Signal Tower by the LED’s ID. These blinking lights can be used to show when certain conditions are met, such as when the robot is waiting or when attention is needed.
Available Functionsvoid setBlink(
ledId id,
bool enable );
Parameter |
Type |
Description |
|---|---|---|
|
|
The LED ID:
|
|
|
|
This function does not return a value.
setBlinkTime#
Sets the time between blinks for the LEDs on the Signal Tower.
Available Functionsvoid setBlinkTime(
uint32_t onTime,
uint32_t offTime = 0 );
Parameter |
Type |
Description |
|---|---|---|
|
|
The time in milliseconds that the LED should be on when blinking. Max is 2500ms. A value of 0 defaults to 500ms. |
|
|
The time in milliseconds that the LED should be off when blinking. Max is 2500ms. A value of 0 uses the onTime value. Default is 0. |
This function does not return a value.
enableBlink#
Enables blinking for multiple LEDs on the Signal Tower by their IDs.
Available Functionsvoid enableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
Parameter |
Type |
Description |
|---|---|---|
|
|
The LED ID:
|
|
|
The index of the second LED (optional). Default is
|
|
|
The index of the third LED (optional). Default is
|
|
|
The index of the fourth LED (optional). Default is
|
|
|
The index of the fifth LED (optional). Default is
|
This function does not return a value.
disableBlink#
Disables blinking for multiple LEDs on the Signal Tower by their IDs.
Available Functionsvoid disableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
Parameter |
Type |
Description |
|---|---|---|
|
|
The index of the first LED.
|
|
|
The index of the second LED (optional). Default is
|
|
|
The index of the third LED (optional). Default is
|
|
|
The index of the fourth LED (optional). Default is
|
|
|
The index of the fifth LED (optional). Default is
|
This function does not return a value.
pressing#
Returns whether the Signal Tower’s bumper is currently being pressed. This can be used as an emergency stop.
Available Functionsbool pressing();
This function does not have parameters.
Return ValuesReturns a Boolean indicating whether the Signal Tower’s bumper is currently being pressed.
true— The Signal Tower’s bumper is currently being pressed.false— The Signal Tower’s bumper is not being pressed.
pressed#
Registers a function to be called when the Signal Tower bumper is pressed.
Available Functionsvoid pressed( void (* callback)(void) );
Parameter |
Type |
Description |
|---|---|---|
|
|
A pointer to a function that will be called when the bumper is pressed. |
This function does not return a value.
ExamplesDefine the callback function (outside of
int main())// Display a message when bumper is pressed void towerBumperPressed() { Brain.Screen.print("tower bumper pressed"); }Register the callback inside
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#
Registers a function to be called when the Signal Tower bumper is released.
Available Functionsvoid released( void (* callback)(void) );
Parameter |
Type |
Description |
|---|---|---|
|
|
A pointer to a function that will be called when the bumper is released. |
This function does not return a value.
ExamplesDefine the callback function (outside of
int main())// Display a message when bumper is pressed void towerBumperReleased() { Brain.Screen.print("tower bumper pressed"); }Register the callback inside
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.pressed(towerBumperReleased); }