信号塔#
導入#
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 - ID によって信号塔上の複数の LED の点滅を有効にします。
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:
|
|
|
赤、緑、青のLEDの明るさは32ビット値で表されます(例:赤点灯= |
|
|
黄色と白色のLEDの明るさは32ビット値で表されます(例:黄色点灯= |
|
|
制御する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 );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
赤色LEDの状態:
|
|
|
黄色LEDの状態:
|
|
|
緑色LEDの状態:
|
|
|
青色LEDの状態:
|
|
|
白色LEDの状態:
|
この関数は値を返しません。
Examples// Turn on all LEDs
SignalTower.setColors(signaltower::on, signaltower::on, signaltower::on, signaltower::on, signaltower::on);
setBlink#
信号塔上のLEDの点滅状態を、LEDのIDに基づいて設定します。これらの点滅ライトは、ロボットが待機中である場合や、注意が必要な場合など、特定の条件が満たされたことを示すために使用できます。
Available Functionsvoid setBlink(
ledId id,
bool enable );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
LED ID:
|
|
|
|
この関数は値を返しません。
setBlinkTime#
信号塔のLEDの点滅間隔を設定します。
Available Functionsvoid setBlinkTime(
uint32_t onTime,
uint32_t offTime = 0 );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
LEDが点滅する際に点灯している時間(ミリ秒)。最大値は2500msです。値が0の場合は500msがデフォルト値となります。 |
|
|
LEDが点滅している間、消灯している時間をミリ秒単位で指定します。最大値は2500msです。値が0の場合は、onTimeの値が使用されます。デフォルト値は0です。 |
この関数は値を返しません。
enableBlink#
信号塔上の複数のLEDを、それぞれのIDに基づいて点滅させることができます。
Available Functionsvoid enableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
LED ID:
|
|
|
2番目のLEDのインデックス(オプション)。デフォルトは
|
|
|
3番目のLEDのインデックス(オプション)。デフォルトは
|
|
|
4番目のLEDのインデックス(オプション)。デフォルトは
|
|
|
5番目のLEDのインデックス(オプション)。デフォルトは
|
この関数は値を返しません。
disableBlink#
信号塔上の複数のLEDの点滅を、それぞれのIDに基づいて無効にします。
Available Functionsvoid disableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
最初のLEDのインデックス。
|
|
|
2番目のLEDのインデックス(オプション)。デフォルトは
|
|
|
3番目のLEDのインデックス(オプション)。デフォルトは
|
|
|
4番目のLEDのインデックス(オプション)。デフォルトは
|
|
|
5番目の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); }