การแข่งขัน#
การแนะนำ#
คลาส 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 Functionsvoid autonomous( void (* callback)(void) );
ชื่อ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ตัวชี้ไปยังฟังก์ชันที่ไม่มีพารามิเตอร์และไม่ส่งค่ากลับ ฟังก์ชันนี้จะทำงานเมื่อช่วงเวลาอัตโนมัติเริ่มต้นขึ้น |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Examplesvoid 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 Functionsvoid drivercontrol( void (* callback)(void) );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ตัวชี้ไปยังฟังก์ชันที่ไม่มีพารามิเตอร์และไม่ส่งค่ากลับ ฟังก์ชันนี้จะทำงานเมื่อช่วงเวลาควบคุมผู้ขับขี่เริ่มต้นขึ้น |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Examplesvoid 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 Functionsbool isEnabled();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesส่งคืนค่าบูลีนที่ระบุว่าช่วงการขับขี่อัตโนมัติหรือช่วงควบคุมโดยคนขับกำลังทำงานอยู่:
true– ช่วงเวลาการขับขี่อัตโนมัติหรือการควบคุมโดยผู้ขับขี่กำลังทำงานอยู่false– ไม่มีช่วงเวลาควบคุมใดทำงานอยู่
isDriverControl#
ส่งคืนค่าบูลีนที่ระบุว่าหุ่นยนต์อยู่ในโหมดควบคุมโดยผู้ขับขี่หรือไม่
Available Functionsbool isDriverControl();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesส่งคืนค่าบูลีนที่ระบุว่าหุ่นยนต์อยู่ในโหมดควบคุมโดยผู้ขับขี่หรือไม่:
true– หุ่นยนต์อยู่ในโหมดควบคุมโดยคนขับfalse– หุ่นยนต์ไม่ได้อยู่ในโหมดควบคุมโดยคนขับ
isAutonomous#
ส่งคืนค่าบูลีนที่ระบุว่าหุ่นยนต์อยู่ในโหมดอัตโนมัติหรือไม่
Available Functionsbool isAutonomous();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesส่งคืนค่าบูลีนที่ระบุว่าหุ่นยนต์อยู่ในโหมดอัตโนมัติหรือไม่:
true– หุ่นยนต์อยู่ในโหมดอัตโนมัติfalse– หุ่นยนต์ไม่ได้อยู่ในโหมดอัตโนมัติ
isCompetitionSwitch#
ส่งคืนค่าบูลีนที่ระบุว่าสวิตช์ควบคุมการแข่งขันเชื่อมต่ออยู่หรือไม่:
Available Functionsbool isCompetitionSwitch();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Notesฟังก์ชันนี้จะตรวจสอบว่าสวิตช์ควบคุมการแข่งขันเชื่อมต่ออยู่หรือไม่ สวิตช์ควบคุมการแข่งขันจะใช้ก่อนที่จะติดตั้งระบบควบคุมสนาม V5
ส่งคืนค่าบูลีนที่ระบุว่าสวิตช์ควบคุมการแข่งขันเชื่อมต่ออยู่หรือไม่:
true– สวิตช์ควบคุมการแข่งขันเชื่อมต่ออยู่false– สวิตช์ควบคุมการแข่งขันไม่ได้เชื่อมต่ออยู่
isFieldControl#
ส่งคืนค่าบูลีนที่ระบุว่าตัวควบคุมฟิลด์เชื่อมต่ออยู่หรือไม่
Available Functionsbool isFieldControl();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesส่งคืนค่าบูลีนที่ระบุว่าตัวควบคุมฟิลด์เชื่อมต่ออยู่หรือไม่:
true– ตัวควบคุมภาคสนามเชื่อมต่อแล้วfalse– ตัวควบคุมภาคสนามไม่ได้เชื่อมต่อ