การแข่งขัน#

การแนะนำ#

คลาส competition ช่วยคุณจัดโครงสร้างโปรเจ็กต์ V5 สำหรับการควบคุมการแข่งขันอย่างเป็นทางการ มันช่วยให้คุณลงทะเบียนฟังก์ชันที่จะทำงานระหว่างโหมดอัตโนมัติและโหมดควบคุมโดยคนขับ และมีการตรวจสอบสถานะอย่างง่ายเพื่อให้โค้ดของคุณสามารถตอบสนองต่อสถานะการแข่งขันได้ (เปิด/ปิดใช้งาน, อัตโนมัติ/คนขับ, การควบคุมภาคสนาม ฯลฯ)

ตัวสร้างคลาส#

competition();

ตัวทำลายคลาส#

ทำลายวัตถุ competition และปล่อยทรัพยากรที่เกี่ยวข้อง

~competition();

พารามิเตอร์#

คอนสตรัคเตอร์นี้ไม่รับพารามิเตอร์ใดๆ

ตัวอย่าง#

// Create the competition instance
competition Competition = competition();

ฟังก์ชันสมาชิก#

คลาสการแข่งขัน competition ประกอบด้วยฟังก์ชันสมาชิกต่อไปนี้:

  • autonomous — ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อช่วงเวลาอัตโนมัติเริ่มต้นขึ้น

  • drivercontrol — ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อช่วงเวลาควบคุมไดรเวอร์เริ่มต้นขึ้น

  • isEnabled — ส่งคืนสถานะของหุ่นยนต์ของคุณเมื่ออยู่ภายใต้การควบคุมการแข่งขัน

  • isDriverControl — ส่งคืนว่าสถานะของหุ่นยนต์อยู่ภายใต้การควบคุมของคนขับหรือไม่

  • isAutonomous — ส่งคืนว่าสถานะของหุ่นยนต์เป็นแบบอัตโนมัติหรือไม่

  • isCompetitionSwitch — ส่งคืนว่าสวิตช์การแข่งขันเชื่อมต่ออยู่หรือไม่

  • isFieldControl — คืนค่าว่าตัวควบคุมฟิลด์เชื่อมต่ออยู่หรือไม่

ก่อนเรียกใช้ฟังก์ชันสมาชิก competition ใดๆ จะต้องสร้างอินสแตนซ์ competition ก่อน ดังแสดงด้านล่าง:

// Create the competition instance
competition Competition = competition();

autonomous#

ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อช่วงเวลาอัตโนมัติเริ่มต้นขึ้น

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

Parameters

ชื่อ

พิมพ์

คำอธิบาย

callback

void (*)(void)

ตัวชี้ไปยังฟังก์ชันที่ไม่มีพารามิเตอร์และไม่ส่งค่ากลับ ฟังก์ชันนี้จะทำงานเมื่อช่วงเวลาอัตโนมัติเริ่มต้นขึ้น

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Examples
void autonomousControl(void) {
  // Place automonous code here.
  Brain.Screen.clearScreen();
  Brain.Screen.print("autonomous");
}

int main(){
    // Create competition instance.
    competition Competition;

    // Set up callback for the autonomous control period.
    Competition.autonomous(autonomousControl);

    // Prevent main from exiting with an infinite loop.
    while (true) {
        wait(100, msec);
    }
}

drivercontrol#

ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อช่วงควบคุมผู้ขับขี่เริ่มต้นขึ้น

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

callback

void (*)(void)

ตัวชี้ไปยังฟังก์ชันที่ไม่มีพารามิเตอร์และไม่ส่งค่ากลับ ฟังก์ชันนี้จะทำงานเมื่อช่วงเวลาควบคุมผู้ขับขี่เริ่มต้นขึ้น

Return Values

ฟังก์ชันนี้ไม่ส่งค่ากลับ

Examples
void userControl(void) {
  Brain.Screen.clearScreen();
  // place driver control in this while loop
  while (true) {
    wait(20, msec);
  }
}

int main(){
    // Create competition instance.
    competition Competition;

    // Set up callback for the driver control period.
    Competition.drivercontrol(userControl);

    // Prevent main from exiting with an infinite loop.
    while (true) {
        wait(100, msec);
    }
}

isEnabled#

แสดงสถานะของหุ่นยนต์ของคุณเมื่ออยู่ภายใต้การควบคุมในการแข่งขัน

Available Functions
bool isEnabled();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ส่งคืนค่าบูลีนที่ระบุว่าช่วงการขับขี่อัตโนมัติหรือช่วงควบคุมโดยคนขับกำลังทำงานอยู่:

  • true – ช่วงเวลาการขับขี่อัตโนมัติหรือการควบคุมโดยผู้ขับขี่กำลังทำงานอยู่

  • false – ไม่มีช่วงเวลาควบคุมใดทำงานอยู่

isDriverControl#

ส่งคืนค่าบูลีนที่ระบุว่าหุ่นยนต์อยู่ในโหมดควบคุมโดยผู้ขับขี่หรือไม่

Available Functions
bool isDriverControl();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ส่งคืนค่าบูลีนที่ระบุว่าหุ่นยนต์อยู่ในโหมดควบคุมโดยผู้ขับขี่หรือไม่:

  • true – หุ่นยนต์อยู่ในโหมดควบคุมโดยคนขับ

  • false – หุ่นยนต์ไม่ได้อยู่ในโหมดควบคุมโดยคนขับ

isAutonomous#

ส่งคืนค่าบูลีนที่ระบุว่าหุ่นยนต์อยู่ในโหมดอัตโนมัติหรือไม่

Available Functions
bool isAutonomous();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ส่งคืนค่าบูลีนที่ระบุว่าหุ่นยนต์อยู่ในโหมดอัตโนมัติหรือไม่:

  • true – หุ่นยนต์อยู่ในโหมดอัตโนมัติ

  • false – หุ่นยนต์ไม่ได้อยู่ในโหมดอัตโนมัติ

isCompetitionSwitch#

ส่งคืนค่าบูลีนที่ระบุว่าสวิตช์ควบคุมการแข่งขันเชื่อมต่ออยู่หรือไม่:

Available Functions
bool isCompetitionSwitch();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Notes
  • ฟังก์ชันนี้จะตรวจสอบว่าสวิตช์ควบคุมการแข่งขันเชื่อมต่ออยู่หรือไม่ สวิตช์ควบคุมการแข่งขันจะใช้ก่อนที่จะติดตั้งระบบควบคุมสนาม V5

Return Values

ส่งคืนค่าบูลีนที่ระบุว่าสวิตช์ควบคุมการแข่งขันเชื่อมต่ออยู่หรือไม่:

  • true – สวิตช์ควบคุมการแข่งขันเชื่อมต่ออยู่

  • false – สวิตช์ควบคุมการแข่งขันไม่ได้เชื่อมต่ออยู่

isFieldControl#

ส่งคืนค่าบูลีนที่ระบุว่าตัวควบคุมฟิลด์เชื่อมต่ออยู่หรือไม่

Available Functions
bool isFieldControl();

Parameters

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

Return Values

ส่งคืนค่าบูลีนที่ระบุว่าตัวควบคุมฟิลด์เชื่อมต่ออยู่หรือไม่:

  • true – ตัวควบคุมภาคสนามเชื่อมต่อแล้ว

  • false – ตัวควบคุมภาคสนามไม่ได้เชื่อมต่อ