단추#

소개#

button 클래스는 controller 클래스의 파생 클래스입니다. 컨트롤러 버튼 상태 및 버튼 이벤트 콜백에 대한 액세스를 제공합니다.

button 객체는 controller 객체를 통해 접근됩니다. 직접 생성되지는 않습니다.

EXP 컨트롤러의 앞면과 윗면으로, 조이스틱, 화살표 버튼, 액션 버튼이 노란색으로 강조 표시되어 있습니다. 컨트롤러 표면에는 왼쪽과 오른쪽에 두 개의 조이스틱이 있고, 왼쪽에는 위아래 화살표 버튼, 오른쪽에는 A와 B 버튼이 있습니다. 컨트롤러 윗면에는 왼쪽에 L1과 L2, 오른쪽에 R1과 R2 버튼이 있습니다.

입장#

controller 클래스는 다음과 같은 버튼 객체를 제공합니다. 각 객체는 button 클래스의 인스턴스입니다.

물체

사용 예시

설명

ButtonA

Controller.ButtonA.pressing()

A 버튼.

ButtonB

Controller.ButtonB.pressing()

B 버튼.

ButtonDown

Controller.ButtonDown.pressing()

아래쪽 버튼.

ButtonUp

Controller.ButtonUp.pressing()

위로 버튼.

ButtonL1

Controller.ButtonL1.pressing()

L1 버튼.

ButtonL2

Controller.ButtonL2.pressing()

L2 버튼.

ButtonL3

Controller.ButtonL3.pressing()

L3 버튼.

ButtonR1

Controller.ButtonR1.pressing()

R1 버튼.

ButtonR2

Controller.ButtonR2.pressing()

R2 버튼.

ButtonR3

Controller.ButtonR3.pressing()

R3 버튼.

메모#

  • button 멤버 함수를 사용하기 전에 controller 객체를 생성하십시오.

// Create a controller object
controller Controller = controller();

회원 기능#

button 클래스는 다음과 같은 멤버 함수를 포함합니다.

게터 — 버튼 상태를 읽습니다.

콜백 함수 — 버튼 이벤트 발생 시 실행되는 함수입니다.

  • pressed — 버튼이 눌렸을 때 실행될 함수를 등록합니다.

  • released — 버튼이 해제될 때 실행될 함수를 등록합니다.

얻는 사람#

pressing#

pressing 표시되고 버튼이 현재 눌러져 있는지 여부를 반환합니다.

사용 가능한 기능

bool pressing() const;

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

불리언 값을 반환합니다.

  • true — 버튼이 눌리고 있습니다.

  • false — 버튼이 눌리지 않았습니다.

예

// Turn right while L1 is pressed
while (true) {
  if (Controller.ButtonL1.pressing()) {
    Drivetrain.turn(right);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

콜백#

pressed#

pressed 을 눌렀을 때 실행되는 함수를 등록합니다.

사용 가능한 기능

void pressed(void (* callback)(void)) const;

매개변수

유형

설명

callback

void (*)(void)

버튼을 눌렀을 때 실행되는 함수입니다.

반환 값

이 함수는 값을 반환하지 않습니다.

예

콜백 함수를 main 외부에서 정의하십시오.

// Drive forward when R1 is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 200, mm);
}

main 내부에 콜백을 등록합니다.

int main() {
  vexcodeInit();

  // Run driveForward when R1 is pressed
  Controller.ButtonR1.pressed(driveForward);
}

released#

released 을 놓았을 때 실행되는 함수를 등록합니다.

사용 가능한 기능

void released(void (* callback)(void)) const;

매개변수

유형

설명

callback

void (*)(void)

버튼에서 손을 떼면 실행되는 함수입니다.

반환 값

이 함수는 값을 반환하지 않습니다.

예

콜백 함수를 main 외부에서 정의하십시오.

// Stop the drivetrain when R1 is released
void stopDriving() {
  Drivetrain.stop();
}

main 내부에 콜백을 등록합니다.

int main() {
  vexcodeInit();

  // Run stopDriving when R1 is released
  Controller.ButtonR1.released(stopDriving);
}