Eixo#

Introdução#

A classe axis é uma classe derivada da classe controller. Fornece acesso aos valores do eixo do joystick do controlador e aos callbacks de mudança do eixo do joystick.

Um objeto com o eixo axis é acedido através de um objeto com o controlador controller Não é construído diretamente.

O controlador IQ de 2ª geração com os quatro eixos do joystick destacados. No joystick esquerdo, o eixo 3 é vertical e o eixo 4 é horizontal. No joystick direito, o eixo 1 é horizontal e o eixo 2 é vertical.

Acesso#

A classe do controlador controller fornece os seguintes objetos de eixo. Cada objeto é uma instância da classe do eixo axis.

Objeto de eixo

Exemplo de utilização

Descrição

Axis1

Controller.Axis1.position()

Joystick direito no eixo horizontal.

Axis2

Controller.Axis2.position()

Joystick direito no eixo vertical.

Axis3

Controller.Axis3.position()

Eixo vertical do joystick esquerdo.

Axis4

Controller.Axis4.position()

Joystick esquerdo no eixo horizontal.

Notas#

  • Antes de utilizar uma função membro de eixo axis , crie um objeto controlador controller.

  • position returns a value from -100 to 100.

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

Funções de membro#

A classe axis inclui as seguintes funções membro:

Getter — Lê a posição do eixo do joystick.

  • position — Retorna a posição do eixo do joystick.

Callback — Executa uma função quando a posição do joystick muda ao longo de um eixo.

  • changed — Executa uma função quando a posição do joystick muda ao longo desse eixo.

Getter#

position#

A posição position joystick como um valor de -100 a 100.

Função disponível

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

Parâmetro

Tipo

Descrição

units

percentUnits

Opcional. A unidade utilizada para o valor do eixo devolvido. O predefinido é percentUnits::pct.

Valor de Retorno

Devolve um valor int32_t de -100 a 100.

  • 100 — O eixo do joystick está totalmente movido no sentido positivo.

  • 0 — O eixo do joystick está centrado.

  • -100 — O eixo do joystick está totalmente movido no sentido negativo.

Exemplo

// 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);
}

Ligar de volta#

changed#

changed executa uma função quando a posição do joystick muda ao longo desse eixo.

Função disponível

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

Parâmetro

Tipo

Descrição

callback

void (*)(void)

Uma função a ser executada sempre que a posição do joystick mudar ao longo desse eixo.

Valor de Retorno

Esta função não devolve qualquer valor.

Exemplo

Defina a função de retorno de chamada fora de main.

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

Registe o retorno de chamada dentro de main.

int main() {
  vexcodeInit();

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