경쟁#
소개#
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– 필드 컨트롤러가 연결되어 있지 않습니다.