Tháp tín hiệu#

Giới thiệu#

Lớp tháp tín hiệu signaltower được sử dụng để thay đổi đèn tín hiệu và phát hiện tương tác với Tháp tín hiệu CTE.

Hàm tạo lớp#

signaltower( 
  int32_t  index );

Lớp Destructor#

Phá hủy đối tượng signaltower và giải phóng các tài nguyên liên quan.

virtual ~signaltower();

Thông số#

Tham số

Kiểu

Sự miêu tả

index

int32_t

Cổng thông minh mà Tháp tín hiệu được kết nối, được viết dưới dạng PORTx, trong đó x là số cổng (ví dụ: PORT1).

Ví dụ#

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

Chức năng thành viên#

Lớp signaltower cung cấp các hàm thành viên sau:

  • setColor - Điều khiển màu sắc và trạng thái của đèn LED trên Tháp tín hiệu bằng nhiều phương thức nhập liệu khác nhau.

  • setColors - Đặt trạng thái của tất cả các đèn LED trên Tháp Tín hiệu một cách riêng lẻ.

  • setBlink - Đặt trạng thái nhấp nháy của đèn LED trên Tháp Tín hiệu theo ID của đèn LED.

  • setBlinkTime - Đặt thời gian giữa các lần nháy đèn LED trên Tháp Tín hiệu.

  • enableBlink - Cho phép nhấp nháy nhiều đèn LED trên Tháp Tín hiệu theo ID của chúng.

  • disableBlink - Vô hiệu hóa việc nhấp nháy cho nhiều đèn LED trên Tháp Tín hiệu theo ID của chúng.

  • pressing - Trả về trạng thái hiện tại của nút bấm Tháp Tín hiệu.

  • pressed - Đăng ký một hàm sẽ được gọi khi nút bấm Tháp Tín hiệu được nhấn.

  • released - Đăng ký một hàm sẽ được gọi khi bộ phận giảm chấn Tháp Tín hiệu được nhả ra.

setColor#

Điều khiển màu sắc và trạng thái của đèn LED trên Tháp Tín hiệu bằng nhiều phương thức nhập liệu khác nhau. Các đèn này có thể được sử dụng để theo dõi vị trí của robot trong một dự án hoặc để hiển thị khi các điều kiện nhất định được đáp ứng.

Available Functions

1 — Đặt màu cho Tháp Tín hiệu bằng cách sử dụng vex::color.

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

2 — Thiết lập màu sắc LED bằng cách sử dụng giá trị RGB và YW 32 bit.

void setColor( 
  uint32_t rgb, 
  uint32_t yw );

3 — Đặt độ sáng riêng lẻ của từng đèn LED theo ID của đèn LED.

void setColor( 
  ledId id, 
  uint32_t value );

4 — Thiết lập mức độ sáng cho từng đèn LED riêng lẻ.

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

Parameters

Tham số

Kiểu

Sự miêu tả

color

vex::color

Màu sắc cần sử dụng:

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

state

signaltower::state

Trạng thái của đèn LED:

  • on (Mặc định) – Bật đèn LED.
  • off – Tắt đèn LED.
  • blink – Làm cho đèn LED nhấp nháy.

rgb

uint32_t

Độ sáng của đèn LED đỏ, xanh lá cây và xanh dương được điều chỉnh bằng giá trị 32 bit (ví dụ: đỏ bật = 0xFF0000, xanh lá cây bật = 0x00FF00, và xanh dương bật = 0x0000FF).

yw

uint32_t

Độ sáng của đèn LED vàng và trắng được biểu diễn bằng giá trị 32 bit (ví dụ: vàng bật = 0xFF00 và trắng bật = 0x00FF).

id

ledId

Chỉ số của đèn LED cần điều khiển:

  • 0 – đỏ
  • 1 – xanh lá cây
  • 2 – xanh dương
  • 3 – trắng
  • 4 – vàng

value

uint32_t

Độ sáng của đèn LED từ 0 đến 255, trong đó 0 là tắt và 255 là độ sáng tối đa.

r

uint8_t

Độ sáng của đèn LED đỏ có thể điều chỉnh từ 0 đến 255, trong đó 0 là tắt và 255 là độ sáng tối đa.

y

uint8_t

Độ sáng của đèn LED màu vàng có thể điều chỉnh từ 0 đến 255, trong đó 0 là tắt và 255 là độ sáng tối đa.

g

uint8_t

Độ sáng của đèn LED xanh lá cây từ 0 đến 255, trong đó 0 là tắt và 255 là độ sáng tối đa.

b

uint8_t

Độ sáng của đèn LED màu xanh lam có thể điều chỉnh từ 0 đến 255, trong đó 0 là tắt và 255 là độ sáng tối đa.

w

uint8_t

Độ sáng của đèn LED trắng có thể điều chỉnh từ 0 đến 255, trong đó 0 là tắt và 255 là độ sáng tối đa.

Return Values

Hàm này không trả về giá trị nào.

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#

Thiết lập trạng thái riêng lẻ cho tất cả các đèn LED trên Tháp Tín hiệu. Các đèn này có thể được sử dụng để theo dõi vị trí của robot trong một dự án hoặc để hiển thị khi các điều kiện nhất định được đáp ứng.

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

Parameters

Tham số

Kiểu

Sự miêu tả

rs

signaltower::state

Trạng thái của đèn LED đỏ:

  • on – Bật đèn LED.
  • off – Tắt đèn LED.
  • blink – Làm cho đèn LED nhấp nháy.

ys

signaltower::state

Trạng thái của đèn LED màu vàng:

  • on – Bật đèn LED.
  • off – Tắt đèn LED.
  • blink – Làm cho đèn LED nhấp nháy.

gs

signaltower::state

Trạng thái của đèn LED xanh lá cây:

  • on – Bật đèn LED.
  • off – Tắt đèn LED.
  • blink – Làm cho đèn LED nhấp nháy.

bs

signaltower::state

Trạng thái của đèn LED xanh dương:

  • on – Bật đèn LED.
  • off – Tắt đèn LED.
  • blink – Làm cho đèn LED nhấp nháy.

ws

signaltower::state

Trạng thái của đèn LED trắng:

  • on – Bật đèn LED.
  • off – Tắt đèn LED.
  • blink – Làm cho đèn LED nhấp nháy.

Return Values

Hàm này không trả về giá trị nào.

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

setBlinkTime#

Thiết lập khoảng thời gian giữa các lần nháy của đèn LED trên Tháp Tín hiệu.

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

Parameters

Tham số

Kiểu

Sự miêu tả

onTime

uint32_t

Thời gian (tính bằng mili giây) mà đèn LED nên sáng khi nhấp nháy. Tối đa là 2500ms. Giá trị 0 mặc định là 500ms.

offTime

uint32_t

Thời gian (tính bằng mili giây) mà đèn LED nên tắt khi nhấp nháy. Tối đa là 2500ms. Giá trị 0 sử dụng giá trị onTime. Giá trị mặc định là 0.

Return Values

Hàm này không trả về giá trị nào.

pressing#

Trả về trạng thái cho biết liệu bộ phận giảm chấn của Tháp Tín hiệu có đang bị nhấn hay không. Chức năng này có thể được sử dụng như một điểm dừng khẩn cấp.

Available Functions
bool pressing();

Parameters

Hàm này không có tham số.

Return Values

Trả về giá trị Boolean cho biết liệu nút bấm của Tháp Tín hiệu hiện có đang được nhấn hay không.

  • true — Bộ phận giảm xóc của Tháp Tín hiệu hiện đang được nhấn.

  • false — Bộ phận giảm chấn của Tháp Tín hiệu không bị ấn.

pressed#

Đăng ký một hàm sẽ được gọi khi nút bấm trên Tháp Tín hiệu được nhấn.

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

Parameters

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void)

Con trỏ trỏ đến một hàm sẽ được gọi khi nút cản xe được nhấn.

Return Values

Hàm này không trả về giá trị nào.

Examples

Định nghĩa hàm gọi lại (bên ngoài int main())

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

Đăng ký hàm gọi lại bên trong 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#

Đăng ký một hàm sẽ được gọi khi bộ phận giảm chấn của Tháp Tín hiệu được nhả ra.

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

Parameters

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void)

Con trỏ đến một hàm sẽ được gọi khi nút giảm xóc được nhả ra.

Return Values

Hàm này không trả về giá trị nào.

Examples

Định nghĩa hàm gọi lại (bên ngoài int main())

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

Đăng ký hàm gọi lại bên trong 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);
}