訊號塔#
介紹#
signaltower 類用於改變燈光並偵測與 CTE 訊號塔的交互作用。
類別建構函數#
signaltower(
int32_t index );
類別析構函數#
摧毀 signaltower 物件並釋放相關資源。
virtual ~signaltower();
參數#
範圍 |
類型 |
描述 |
|---|---|---|
|
|
訊號塔連接的智慧型端口,記為 |
範例#
// Create a signal tower instance in Port 1
signaltower SignalTower = signaltower(PORT1);
成員功能#
signaltower 類別提供以下成員函數:
setColor - 使用各種輸入方法控制訊號塔上的 LED 顏色和狀態。
setColors - 分別設定訊號塔上所有 LED 的狀態。
setBlink - 根據 LED 的 ID 設定訊號塔上 LED 的閃爍狀態。
setBlinkTime - 設定訊號塔上 LED 燈的閃爍間隔時間。
enableBlink - 啟用訊號塔上多個 LED 的閃爍功能,並指定它們的 ID。
disableBlink - 根據 ID 停用訊號塔上多個 LED 的閃爍。
pressing - 返回信號塔保險桿目前是否被按下。
pressed - 註冊一個在信號塔保險桿被按下時要呼叫的函數。
released - 註冊一個在信號塔保險桿釋放時要呼叫的函數。
setColor#
透過多種輸入方式控制訊號塔上的 LED 燈顏色和狀態。這些燈可用於追蹤機器人在專案中的位置,或顯示何時滿足特定條件。
Available Functions1 — 使用 vex::color 將訊號塔設定為某種顏色。
void setColor( vex::color color, signaltower::state state = signaltower::state::on );
2 — 使用 32 位元 RGB 和 YW 值設定 LED 顏色。
void setColor( uint32_t rgb, uint32_t yw );
3 — 根據 LED ID 設定單一 LED 的亮度。
void setColor( ledId id, uint32_t value );
Parameters4 — 分別設定所有 LED 的亮度等級。
void setColor( uint8_t r, uint8_t y, uint8_t g, uint8_t b, uint8_t w );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
使用的顏色:
|
|
|
The state for the LED:
|
|
|
使用 32 位元值來表示紅色、綠色和藍色 LED 的亮度(例如,紅色開啟 = |
|
|
使用 32 位元值來表示黃色和白色 LED 的亮度(例如,黃色開啟 = |
|
|
待控制LED的索引:
|
|
|
LED 的亮度範圍為 0 到 255,其中 0 為關閉,255 為最大亮度。 |
|
|
紅色 LED 的亮度範圍為 0 到 255,其中 0 為關閉,255 為最大亮度。 |
|
|
黃色 LED 的亮度範圍為 0 到 255,其中 0 為關閉,255 為最大亮度。 |
|
|
綠色 LED 的亮度範圍為 0 到 255,其中 0 為關閉,255 為最大亮度。 |
|
|
藍色 LED 的亮度範圍為 0 到 255,其中 0 為關閉,255 為最大亮度。 |
|
|
白色 LED 的亮度範圍為 0 到 255,其中 0 為關閉,255 為最大亮度。 |
此函數不傳回值。
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#
分別設定訊號塔上所有 LED 的狀態。這些燈可用於追蹤機器人在專案中的位置,或顯示何時滿足特定條件。
Available Functionsvoid setColors(
signaltower::state rs,
signaltower::state ys,
signaltower::state gs,
signaltower::state bs,
signaltower::state ws );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
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:
|
此函數不傳回值。
Examples// Turn on all LEDs
SignalTower.setColors(signaltower::on, signaltower::on, signaltower::on, signaltower::on, signaltower::on);
setBlink#
透過 LED 的 ID 設定訊號塔上 LED 的閃爍狀態。這些閃爍的 LED 可用於指示何時滿足特定條件,例如機器人處於等待狀態或需要注意時。
Available Functionsvoid setBlink(
ledId id,
bool enable );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
LED指示灯编号:
|
|
|
|
此函數不傳回值。
setBlinkTime#
設定訊號塔上 LED 燈的閃爍間隔時間。
Available Functionsvoid setBlinkTime(
uint32_t onTime,
uint32_t offTime = 0 );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
LED閃爍時持續亮起的時間(以毫秒為單位)。最大值為2500毫秒。值為0時,預設值為500毫秒。 |
|
|
LED 閃爍時熄滅的時間(以毫秒為單位)。最大值為 2500 毫秒。值為 0 時使用 onTime 值。預設值為 0。 |
此函數不傳回值。
enableBlink#
透過 ID 控制訊號塔上多個 LED 燈的閃爍。
Available Functionsvoid enableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
LED指示灯编号:
|
|
|
第二个 LED 的索引(可选)。默认值为
|
|
|
第三个 LED 的索引(可选)。默认值为
|
|
|
第四个 LED 的索引(可选)。默认值为
|
|
|
第五个 LED 的索引(可选)。默认值为
|
此函數不傳回值。
disableBlink#
透過 ID 停用訊號塔上多個 LED 的閃爍。
Available Functionsvoid disableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
第一个LED的索引。0
|
|
|
第二个 LED 的索引(可选)。默认值为
|
|
|
第三个 LED 的索引(可选)。默认值为
|
|
|
第四个 LED 的索引(可选)。默认值为
|
|
|
第五个 LED 的索引(可选)。默认值为
|
此函數不傳回值。
pressing#
返回信號塔的保險桿目前是否被按下。這可以用作緊急停止裝置。
Available Functionsbool pressing();
此函數沒有參數。
Return Values返回一個布林值,指示信號塔的保險桿目前是否被按下。
true— 信號塔的保險桿目前正被按下。false— 信號塔的保險桿沒有被按下。
pressed#
註冊一個在信號塔保險桿被按下時要呼叫的函數。
Available Functionsvoid pressed( void (* callback)(void) );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
指向一個函數的指針,該函數將在按下保險桿時調用。 |
此函數不傳回值。
Examples定義回呼函數(在
int main()之外)// Display a message when bumper is pressed void towerBumperPressed() { Brain.Screen.print("tower bumper pressed"); }在
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#
註冊一個在信號塔保險桿釋放時要呼叫的函數。
Available Functionsvoid released( void (* callback)(void) );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
指向一個函數的指針,該函數將在保險桿釋放時調用。 |
此函數不傳回值。
Examples定義回呼函數(在
int main()之外)// Display a message when bumper is released void towerBumperReleased() { Brain.Screen.print("tower bumper released"); }在
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); }