중심선#

소개#

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

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

4개의 조이스틱 축이 강조 표시된 IQ 1세대 컨트롤러.

입장#

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)

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

매개변수

유형

설명

callback

void (*)(void)

축 값이 변경될 때 자동으로 호출되는 미리 정의된 콜백 함수입니다. 함수는 필수 콜백 시그니처와 일치해야 합니다. 자세한 내용은 콜백 함수를 참조하세요.

Return Values

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

예

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

콜백 함수를 정의하십시오( int main() 외부).

// Play a sound when the left joystick moves
 void sounds() {
     Brain.playSound(siren);
     wait(1, seconds);
 }

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

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call the function when the left joystick moves
  Controller.Axis4.changed(sounds);
}