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ả |
|---|---|---|
|
|
Cổng thông minh mà Tháp tín hiệu được kết nối, được viết dưới dạng |
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 Functions1 — Đặ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 );
Parameters4 — 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 );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Màu sắc cần sử dụng:
|
|
|
Trạng thái của đèn LED:
|
|
|
Độ 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 = |
|
|
Độ sáng của đèn LED vàng và trắng được điều chỉnh bằng giá trị 32 bit (ví dụ: vàng bật = |
|
|
Chỉ số của đèn LED cần điều khiển:
|
|
|
Độ sáng của đèn LED từ 0 đến 255, trong đó 0 là tắt và 255 là độ sáng tối đa. |
|
|
Độ 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. |
|
|
Độ 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. |
|
|
Độ 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. |
|
|
Độ 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. |
|
|
Độ 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. |
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 Functionsvoid setColors(
signaltower::state rs,
signaltower::state ys,
signaltower::state gs,
signaltower::state bs,
signaltower::state ws );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Trạng thái của đèn LED đỏ:
|
|
|
Trạng thái của đèn LED màu vàng:
|
|
|
Trạng thái của đèn LED xanh lá cây:
|
|
|
Trạng thái của đèn LED xanh dương:
|
|
|
Trạng thái của đèn LED trắng:
|
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);
setBlink#
Thiết lập trạng thái nhấp nháy của đèn LED trên Tháp Tín hiệu dựa trên ID của đèn LED. Các đèn nhấp nháy này có thể được sử dụng để hiển thị khi đáp ứng các điều kiện nhất định, chẳng hạn như khi robot đang chờ hoặc khi cần sự chú ý.
Available Functionsvoid setBlink(
ledId id,
bool enable );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Mã số đèn LED:
|
|
|
|
Hàm này không trả về giá trị nào.
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 Functionsvoid setBlinkTime(
uint32_t onTime,
uint32_t offTime = 0 );
Tham số |
Kiểu |
Sự miêu 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. |
|
|
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. |
Hàm này không trả về giá trị nào.
enableBlink#
Cho phép nhấp nháy nhiều đèn LED trên Tháp Tín hiệu dựa trên ID của chúng.
Available Functionsvoid enableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Mã số đèn LED:
|
|
|
Chỉ số của đèn LED thứ hai (tùy chọn). Mặc định là
|
|
|
Chỉ số của đèn LED thứ ba (tùy chọn). Mặc định là
|
|
|
Chỉ số của đèn LED thứ tư (tùy chọn). Mặc định là
|
|
|
Chỉ số của đèn LED thứ năm (tùy chọn). Mặc định là
|
Hàm này không trả về giá trị nào.
disableBlink#
Vô hiệu hóa chế độ nhấp nháy cho nhiều đèn LED trên Tháp Tín hiệu dựa trên ID của chúng.
Available Functionsvoid disableBlink(
ledId id0,
ledId id1 = ledId::none,
ledId id2 = ledId::none,
ledId id3 = ledId::none,
ledId id4 = ledId::none );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Chỉ số của đèn LED đầu tiên.
|
|
|
Chỉ số của đèn LED thứ hai (tùy chọn). Mặc định là
|
|
|
Chỉ số của đèn LED thứ ba (tùy chọn). Mặc định là
|
|
|
Chỉ số của đèn LED thứ tư (tùy chọn). Mặc định là
|
|
|
Chỉ số của đèn LED thứ năm (tùy chọn). Mặc định là
|
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 Functionsbool pressing();
Hàm này không có tham số.
Return ValuesTrả 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 Functionsvoid pressed( void (* callback)(void) );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Con trỏ trỏ đến một hàm sẽ được gọi khi nút cản xe được nhấn. |
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 Functionsvoid released( void (* callback)(void) );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Con trỏ đến một hàm sẽ được gọi khi nút giảm xóc được nhả ra. |
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 released void towerBumperReleased() { Brain.Screen.print("tower bumper released"); }Đă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); }