หอส่งสัญญาณ#

การแนะนำ#

หอสัญญาณ 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 - เปิดใช้งานการกระพริบสำหรับไฟ LED หลายดวงบนเสาสัญญาณตามรหัสประจำตัว

  • disableBlink - ปิดการกระพริบของไฟ LED หลายดวงบนเสาสัญญาณตามรหัสประจำตัว

  • กด - ตรวจสอบว่ากันชนหอสัญญาณกำลังถูกกดอยู่หรือไม่

  • กด - ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อกดปุ่มกันชนของหอส่งสัญญาณ

  • released - ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อปล่อยกันชน Signal Tower

setColor#

ควบคุมสีและสถานะของไฟ LED บนหอส่งสัญญาณโดยใช้วิธีการป้อนข้อมูลต่างๆ ไฟเหล่านี้สามารถใช้เพื่อติดตามตำแหน่งของหุ่นยนต์ในโครงการ หรือเพื่อแสดงเมื่อตรงตามเงื่อนไขบางอย่าง

Available Functions

1 — กำหนดสีให้กับหอส่งสัญญาณโดยใช้ vex::color

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

2 — ตั้งค่าสี LED โดยใช้ค่า RGB และ YW แบบ 32 บิต

void setColor( 
  uint32_t rgb, 
  uint32_t yw );

3 — ตั้งค่าความสว่างของ LED แต่ละดวงตามรหัส 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

สถานะของ LED:

  • on (ค่าเริ่มต้น) – เปิด LED
  • off – ปิด LED
  • blink – ทำให้ LED กระพริบ

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 ควรติดสว่างขณะกระพริบ ค่าสูงสุดคือ 2500 มิลลิวินาที ค่า 0 หมายถึง 500 มิลลิวินาที

offTime

uint32_t

ระยะเวลาเป็นมิลลิวินาทีที่ไฟ LED ควรดับเมื่อกะพริบ ค่าสูงสุดคือ 2500 มิลลิวินาที ค่า 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);
}