중심선#

소개#

axis 클래스는 controller 클래스의 파생 클래스입니다. 컨트롤러 조이스틱 축 값과 조이스틱 축 변경 콜백에 대한 액세스를 제공합니다.

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

IQ 2세대 컨트롤러의 4개 조이스틱 축이 강조 표시되어 있습니다. 왼쪽 조이스틱에서 3축은 수직이고 4축은 수평입니다. 오른쪽 조이스틱에서 1축은 수평이고 2축은 수직입니다.

입장#

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

축 객체

사용 예시

설명

Axis1

Controller.Axis1.position()

오른쪽 조이스틱 수평축.

Axis2

Controller.Axis2.position()

오른쪽 조이스틱의 수직축.

Axis3

Controller.Axis3.position()

왼쪽 조이스틱의 수직축.

Axis4

Controller.Axis4.position()

왼쪽 조이스틱 수평축.

메모#

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

  • position -100 부터 100 까지의 값을 반환합니다.

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

회원 기능#

axis 클래스에는 다음과 같은 멤버 함수가 포함됩니다.

게터 — 조이스틱 축 위치를 읽습니다.

  • position — 조이스틱 축의 위치를 ​​반환합니다.

콜백 함수 — 조이스틱의 위치가 축을 따라 변경될 때 함수를 실행합니다.

  • changed — 조이스틱의 위치가 해당 축을 따라 변경될 때 함수를 실행합니다.

얻는 사람#

position#

position 조이스틱 축의 위치를 -100 부터 100 까지의 값으로 반환합니다.

사용 가능한 기능

int32_t position(percentUnits units = percentUnits::pct) const;

매개변수

유형

설명

units

percentUnits

선택 사항입니다. 반환되는 축 값에 사용되는 단위입니다. 기본값은 percentUnits::pct.

반환 값

-100 부터 100 까지의 int32_t 값을 반환합니다.

  • 100 — 조이스틱 축이 양의 방향으로 완전히 움직입니다.

  • 0 — 조이스틱 축이 중앙에 위치합니다.

  • -100 — 조이스틱 축이 음의 방향으로 완전히 움직입니다.

예

// Turn with the left joystick
while (true) {
  if (Controller.Axis4.position() > 10) {
    Drivetrain.turn(right);
  }
  else if (Controller.Axis4.position() < -10) {
    Drivetrain.turn(left);
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

콜백#

changed#

changed 조이스틱의 위치가 해당 축을 따라 변경될 때 함수를 실행합니다.

사용 가능한 기능

void changed(void (* callback)(void)) const;

매개변수

유형

설명

callback

void (*)(void)

조이스틱의 위치가 해당 축을 따라 변경될 때마다 실행되는 함수입니다.

반환 값

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

예

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

// Play a sound when the left joystick moves
void playSound() {
  Brain.playSound(siren);
}

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

int main() {
  vexcodeInit();

  // Run playSound when the joystick's position changes along Axis4
  Controller.Axis4.changed(playSound);
}