信号塔#

導入#

signaltower クラスは、信号灯の変更やCTE信号塔との相互作用の検出に使用されます。

クラスコンストラクタ#

signaltower( 
  int32_t  index );

クラスデストラクタ#

signaltower オブジェクトを破壊し、関連するリソースを解放します。

virtual ~signaltower();

パラメータ#

パラメータ

タイプ

説明

index

int32_t

シグナルタワーが接続されているスマートポートは、 PORTxと表記され、 x はポート番号です (例: PORT1)。

例#

// 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 Functions

1 — 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 );

4 — すべてのLEDの明るさレベルを個別に設定します。

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

Parameters

パラメータ

タイプ

説明

color

vex::color

使用する色:

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

state

signaltower::state

The state for the LED:

  • on (Default) – Turns the LED on.
  • off – Turns the LED off.
  • blink – Makes the LED blink.

rgb

uint32_t

赤、緑、青のLEDの明るさは32ビット値で表されます(例:赤点灯= 0xFF0000、緑点灯= 0x00FF00、青点灯= 0x0000FF)。

yw

uint32_t

黄色と白色のLEDの明るさは32ビット値で表されます(例:黄色点灯= 0xFF00 、白色点灯= 0x00FF)。

id

ledId

制御するLEDのインデックス:

  • 0 – 赤
  • 1 – 緑
  • 2 – 青
  • 3 – 白
  • 4 – 黄

value

uint32_t

LEDの明るさは0から255までの範囲で調整可能で、0が消灯、255が最大輝度です。

r

uint8_t

赤色LEDの明るさは0から255までの範囲で調整可能で、0が消灯、255が最大輝度です。

y

uint8_t

黄色LEDの明るさは0から255までの範囲で調整可能で、0が消灯、255が最大輝度です。

g

uint8_t

緑色LEDの明るさは0から255までの範囲で調整可能で、0が消灯、255が最大輝度です。

b

uint8_t

青色LEDの明るさは0から255までの範囲で調整可能で、0が消灯、255が最大輝度です。

w

uint8_t

白色LEDの明るさは0から255までの範囲で調整可能で、0は消灯、255は最大輝度です。

Return Values

この関数は値を返しません。

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 Functions
void setColors( 
  signaltower::state rs, 
  signaltower::state ys, 
  signaltower::state gs, 
  signaltower::state bs, 
  signaltower::state ws );

Parameters

パラメータ

タイプ

説明

rs

signaltower::state

赤色LEDの状態:

  • on – LEDを点灯します。
  • off – LEDを消灯します。
  • blink – LEDを点滅させます。

ys

signaltower::state

黄色LEDの状態:

  • on – LEDを点灯します。
  • off – LEDを消灯します。
  • blink – LEDを点滅させます。

gs

signaltower::state

緑色LEDの状態:

  • on – LEDを点灯します。
  • off – LEDを消灯します。
  • blink – LEDを点滅させます。

bs

signaltower::state

青色LEDの状態:

  • on – LEDを点灯します。
  • off – LEDを消灯します。
  • blink – LEDを点滅させます。

ws

signaltower::state

白色LEDの状態:

  • on – LEDを点灯します。
  • off – LEDを消灯します。
  • blink – LEDを点滅させます。

Return Values

この関数は値を返しません。

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

setBlinkTime#

信号塔のLEDの点滅間隔を設定します。

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

Parameters

パラメータ

タイプ

説明

onTime

uint32_t

LEDが点滅する際に点灯している時間(ミリ秒)。最大値は2500msです。値が0の場合は500msがデフォルト値となります。

offTime

uint32_t

LEDが点滅している間、消灯している時間をミリ秒単位で指定します。最大値は2500msです。値が0の場合は、onTimeの値が使用されます。デフォルト値は0です。

Return Values

この関数は値を返しません。

pressing#

シグナルタワーのバンパーが現在押されているかどうかを返します。これは緊急停止として使用できます。

Available Functions
bool pressing();

Parameters

この関数には引数がありません。

Return Values

信号塔のバンパーが現在押されているかどうかを示すブール値を返します。

  • true — シグナルタワーのバンパーが現在押されています。

  • false — シグナルタワーのバンパーが押されていません。

pressed#

シグナルタワーのバンパーが押されたときに呼び出される関数を登録します。

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

Parameters

パラメータ

タイプ

説明

callback

void (*)(void)

バンパーが押されたときに呼び出される関数へのポインタ。

Return Values

この関数は値を返しません。

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 Functions
void released( void (* callback)(void) );

Parameters

パラメータ

タイプ

説明

callback

void (*)(void)

バンパーが解放されたときに呼び出される関数へのポインタ。

Return Values

この関数は値を返しません。

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);
}