경쟁#

소개#

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