Menara Sinyal#

Perkenalan#

Kelas signaltower digunakan untuk mengubah lampu dan mendeteksi interaksi dengan Menara Sinyal CTE.

Konstruktor Kelas#

signaltower( 
  int32_t  index );

Destruktor Kelas#

Menghancurkan objek signaltower dan melepaskan sumber daya terkait.

virtual ~signaltower();

Parameter#

Parameter

Jenis

Keterangan

index

int32_t

Port Pintar yang terhubung ke Menara Sinyal, ditulis sebagai PORTx, di mana x adalah nomor port (misalnya, PORT1).

Contoh#

// Create a signal tower instance in Port 1
signaltower SignalTower = signaltower(PORT1);

Fungsi Keanggotaan#

Kelas signaltower menyediakan fungsi anggota berikut:

  • setColor - Mengontrol warna dan status LED pada Menara Sinyal menggunakan berbagai metode input.

  • setColors - Mengatur status semua LED pada Menara Sinyal secara individual.

  • setBlink - Mengatur status kedip LED pada Menara Sinyal berdasarkan ID LED.

  • setBlinkTime - Mengatur waktu antara kedipan LED pada Menara Sinyal.

  • enableBlink - Mengaktifkan kedipan untuk beberapa LED pada Menara Sinyal berdasarkan ID-nya.

  • disableBlink - Menonaktifkan kedipan untuk beberapa LED pada Menara Sinyal berdasarkan ID-nya.

  • penekanan - Mengembalikan apakah bumper Menara Sinyal sedang ditekan.

  • ditekan - Mendaftarkan fungsi yang akan dipanggil ketika bumper Menara Sinyal ditekan.

  • released - Mendaftarkan fungsi yang akan dipanggil ketika bumper Menara Sinyal dilepaskan.

setColor#

Mengontrol warna dan status LED pada Menara Sinyal menggunakan berbagai metode input. Lampu-lampu ini dapat digunakan untuk melacak posisi robot dalam suatu proyek atau untuk menunjukkan kapan kondisi tertentu terpenuhi.

Available Functions

1 — Mengatur warna Menara Sinyal menggunakan vex::color.

void setColor( 
  vex::color         color, 
  signaltower::state state = signaltower::state::on );

2 — Mengatur warna LED menggunakan nilai RGB dan YW 32-bit.

void setColor( 
  uint32_t rgb, 
  uint32_t yw );

3 — Mengatur kecerahan masing-masing LED berdasarkan ID LED.

void setColor( 
  ledId id, 
  uint32_t value );

4 Mengatur tingkat kecerahan untuk semua LED secara individual.

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

Parameters

Parameter

Jenis

Keterangan

color

vex::color

Warna yang digunakan:

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

state

signaltower::state

Status LED:

  • on (Default) – Menyalakan LED.
  • off – Mematikan LED.
  • blink – Membuat LED berkedip.

rgb

uint32_t

Kecerahan LED merah, hijau, dan biru menggunakan nilai 32-bit (misalnya, merah menyala = 0xFF0000, hijau menyala = 0x00FF00, dan biru menyala = 0x0000FF).

yw

uint32_t

Kecerahan LED kuning dan putih menggunakan nilai 32-bit (misalnya, kuning menyala = 0xFF00 dan putih menyala = 0x00FF).

id

ledId

Indeks LED yang akan dikontrol:

  • 0 – merah
  • 1 – hijau
  • 2 – biru
  • 3 – putih
  • 4 – kuning

value

uint32_t

Tingkat kecerahan LED berkisar dari 0 hingga 255, dengan 0 berarti mati dan 255 berarti kecerahan maksimal.

r

uint8_t

Tingkat kecerahan LED merah berkisar dari 0 hingga 255, dengan 0 berarti mati dan 255 berarti kecerahan maksimal.

y

uint8_t

Tingkat kecerahan LED kuning berkisar dari 0 hingga 255, dengan 0 berarti mati dan 255 berarti kecerahan maksimal.

g

uint8_t

Tingkat kecerahan LED hijau berkisar dari 0 hingga 255, dengan 0 berarti mati dan 255 berarti kecerahan maksimal.

b

uint8_t

Tingkat kecerahan LED biru berkisar dari 0 hingga 255, dengan 0 berarti mati dan 255 berarti kecerahan maksimal.

w

uint8_t

Tingkat kecerahan LED putih berkisar dari 0 hingga 255, dengan 0 berarti mati dan 255 berarti kecerahan maksimal.

Return Values

Fungsi ini tidak mengembalikan nilai.

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#

Mengatur status semua LED pada Menara Sinyal secara individual. Lampu-lampu ini dapat digunakan untuk melacak posisi robot dalam suatu proyek atau untuk menunjukkan kapan kondisi tertentu terpenuhi.

Available Functions
void setColors( 
  signaltower::state rs, 
  signaltower::state ys, 
  signaltower::state gs, 
  signaltower::state bs, 
  signaltower::state ws );

Parameters

Parameter

Jenis

Keterangan

rs

signaltower::state

Status LED merah:

  • on – Menyalakan LED.
  • off – Mematikan LED.
  • blink – Membuat LED berkedip.

ys

signaltower::state

Status LED kuning:

  • on – Menyalakan LED.
  • off – Mematikan LED.
  • blink – Membuat LED berkedip.

gs

signaltower::state

Status LED hijau:

  • on – Menyalakan LED.
  • off – Mematikan LED.
  • blink – Membuat LED berkedip.

bs

signaltower::state

Status LED biru:

  • on – Menyalakan LED.
  • off – Mematikan LED.
  • blink – Membuat LED berkedip.

ws

signaltower::state

Status LED putih:

  • on – Menyalakan LED.
  • off – Mematikan LED.
  • blink – Membuat LED berkedip.

Return Values

Fungsi ini tidak mengembalikan nilai.

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

setBlinkTime#

Mengatur waktu antar kedipan LED pada Menara Sinyal.

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

Parameters

Parameter

Jenis

Keterangan

onTime

uint32_t

Waktu dalam milidetik yang dibutuhkan LED untuk menyala saat berkedip. Maksimum adalah 2500ms. Nilai 0 secara default berarti 500ms.

offTime

uint32_t

Waktu dalam milidetik yang dibutuhkan agar LED mati saat berkedip. Maksimum adalah 2500ms. Nilai 0 menggunakan nilai onTime. Nilai default adalah 0.

Return Values

Fungsi ini tidak mengembalikan nilai.

pressing#

Mengembalikan nilai bogie yang menunjukkan apakah bumper Menara Sinyal sedang ditekan. Ini dapat digunakan sebagai pemberhentian darurat.

Available Functions
bool pressing();

Parameters

Fungsi ini tidak memiliki parameter.

Return Values

Mengembalikan nilai Boolean yang menunjukkan apakah bumper Menara Sinyal sedang ditekan atau tidak.

  • true — Bumper Menara Sinyal saat ini sedang dicetak.

  • false — Bumper Menara Sinyal tidak ditekan.

pressed#

Mendaftarkan fungsi yang akan dipanggil ketika bumper Menara Sinyal ditekan.

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

Parameters

Parameter

Jenis

Keterangan

callback

void (*)(void)

Penunjuk ke fungsi yang akan dipanggil saat bumper ditekan.

Return Values

Fungsi ini tidak mengembalikan nilai.

Examples

Definisikan fungsi callback (di luar int main())

// Display a message when bumper is pressed
void towerBumperPressed() {
  Brain.Screen.print("tower bumper pressed");
}

Daftarkan fungsi callback di dalam 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#

Mendaftarkan fungsi yang akan dipanggil saat bumper Menara Sinyal dilepas.

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

Parameters

Parameter

Jenis

Keterangan

callback

void (*)(void)

Pointer ke sebuah fungsi yang akan dipanggil ketika bumper dilepas.

Return Values

Fungsi ini tidak mengembalikan nilai.

Examples

Definisikan fungsi callback (di luar int main())

// Display a message when bumper is pressed
void towerBumperReleased() {
  Brain.Screen.print("tower bumper pressed");
}

Daftarkan fungsi callback di dalam 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);
}