단추#

소개#

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

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

IQ(1세대) 컨트롤러에는 8개의 주요 버튼이 있습니다. IQ(2세대) 컨트롤러를 IQ(1세대) 브레인에 연결하면 조이스틱 버튼 ButtonL3 및 ButtonR3 도 사용할 수 있습니다.

모든 버튼이 강조 표시된 IQ 컨트롤러.

입장#

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

물체

사용 예시

설명

ButtonEDown

Controller.ButtonEDown.pressing()

E ▼ 버튼.

ButtonEUp

Controller.ButtonEUp.pressing()

E ▲ 버튼.

ButtonFDown

Controller.ButtonFDown.pressing()

F ▼ 버튼.

ButtonFUp

Controller.ButtonFUp.pressing()

F ▲ 버튼.

ButtonLDown

Controller.ButtonLDown.pressing()

L ▼ 버튼.

ButtonLUp

Controller.ButtonLUp.pressing()

L ▲ 버튼.

ButtonRDown

Controller.ButtonRDown.pressing()

R ▼ 버튼.

ButtonRUp

Controller.ButtonRUp.pressing()

R ▲ 버튼.

ButtonL3

Controller.ButtonL3.pressing()

왼쪽 조이스틱 버튼. IQ(2세대) 컨트롤러에만 해당됩니다.

ButtonR3

Controller.ButtonR3.pressing()

조이스틱 오른쪽 버튼. IQ(2세대) 컨트롤러에만 해당됩니다.

메모#

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

  • ButtonL3 및 ButtonR3 IQ(2세대) 컨트롤러가 연결된 경우에만 사용할 수 있습니다.

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

회원 기능#

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

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

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

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

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

얻는 사람#

pressing#

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

사용 가능한 기능

bool pressing() const;

매개변수

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

반환 값

불리언 값을 반환합니다.

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

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

예

// Turn right while R Up is pressed
while (true) {
  if (Controller.ButtonRUp.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 F Up is pressed
void driveForward() {
  Drivetrain.driveFor(forward, 100, mm);
}

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

int main() {
  vexcodeInit();

  // Run driveForward when F Up is pressed
  Controller.ButtonFUp.pressed(driveForward);
}

released#

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

사용 가능한 기능

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

매개변수

유형

설명

callback

void (*)(void)

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

반환 값

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

예

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

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

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

int main() {
  vexcodeInit();

  // Run stopDriving when F Up is released
  Controller.ButtonFUp.released(stopDriving);
}