Controlador#

Introdução#

A classe controller representa um controlador VEX V5 ligado ao V5 Brain. Um objecto controller pode ser utilizado para aceder aos valores dos eixos do joystick, ler os estados dos botões, registar funções de callback (callbacks) de botões ou joystick, fazer vibrar o controlador, escrever no ecrã do controlador e verificar se o controlador está ligado.

O VEX V5 é compatível com o Controlador EXP. Consulte a API do controlador EXP para obter mais informações.

Quando um ou mais controladores são configurados na janela Dispositivos, o VEXcode V5 disponibiliza também a variável global RemoteControlCodeEnabled. Esta variável ativa ou desativa as ações do controlador configuradas no menu Dispositivos.

Classes Derivadas#

A classe controladora controller classes derivadas:

  • Axis - Fornece acesso aos valores de entrada do eixo do joystick e aos eventos de mudança.

  • Button - Fornece acesso ao estado do botão e aos retornos de chamada de eventos do botão.

  • Screen - Disponibiliza funções para escrever texto no ecrã do controlador.

Construtores#

1 - Cria um controlador utilizando o tipo de controlador primário. Normalmente utilizado quando apenas um controlador está ligado.

controller();

2 - Cria um controlador para o tipo de controlador especificado. Utilizado quando dois controladores estão ligados.

controller(
    controllerType id );

Funções disponíveis

controller();

controller(controllerType id);

Parâmetro

Tipo

Descrição

id

controllerType

Opcional. O tipo de controlador a criar: primary para o controlador primário ligado ao cérebro ou partner para o segundo controlador ligado ao cérebro.

Notas

Apenas um Controlador primário primary e um Controlador parceiro partner podem ser criados num único projeto.

Exemplo

// Create the primary Controller
controller Controller1 = controller();

// Create a partner Controller
controller Controller2 = controller(partner);

Destruidor#

~controlador#

~controller destrói o objecto controlador controller e liberta os recursos associados.

Função disponível

~controller();

Parâmetros#

Parâmetro

Tipo

Descrição

id

controllerType

Tipo de controlador que está a ser criado:

  • primary - O controlador primário ligado ao cérebro.
  • partner - O controlador parceiro (segundo) ligado ao cérebro.

Notas#

  • Only one primary and one partner controller may exist in a single project.

Exemplo#

// Create a V5 controller instance
controller Controller = controller();

Funções de membro#

A classe do controlador controller inclui as seguintes funções membro:

  • rumble - Faz vibrar o controlador utilizando um padrão.

  • installed - Verifica se o controlador está ligado ao cérebro.

estrondo#

rumble faz vibrar o comando seguindo um padrão. Na sequência do padrão, os pontos representam vibrações curtas, os traços representam vibrações longas e os espaços representam pausas.

Função disponível

void rumble(const char *str);

Parâmetro

Tipo

Descrição

str

const char *

Uma sequência composta por pontos, traços e espaços que representam o padrão de vibração.

Valor de Retorno

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

Exemplo

// Rumble with a short-short-long pattern
Controller1.rumble("..-");

Getter#

instalado#

installed retorna se o Controlador está ligado ao Cérebro.

Função disponível

bool installed();

Parâmetros

Esta função não tem parâmetros.

Valor de Retorno

Retorna um valor booleano.

  • true - The controller is installed/connected.
  • false - The controller is not installed/connected.

Variáveis ​​Globais#

Código de controlo remoto ativado#

RemoteControlCodeEnabled activa ou desactiva as acções do controlador configuradas no menu Dispositivos. As ações configuradas no controlador estão ativadas por defeito.

Usage:
RemoteControlCodeEnabled = state;

Valor

Descrição

true

Activa as ações configuradas pelo Controlador.

false

Desativa as ações configuradas pelo controlador.

Values
  • true - Controller-configured actions are enabled.
  • false - Controller-configured actions are disabled.
Notes
  • As ações configuradas pelo controlador estão ativadas por defeito.

Examples
// Drive forward or backward using the left joystick
RemoteControlCodeEnabled = false;

while (true) {
  if (Controller1.Axis3.position() > 0) {
    Drivetrain.drive(forward);
  }
  else if (Controller1.Axis3.position() < 0) {
    Drivetrain.drive(reverse);
  }
  // Press A to use Controller configured actions again
  else if (Controller1.ButtonA.pressing()) {
    break;
  }
  else {
    Drivetrain.stop();
  }

  wait(20, msec);
}

RemoteControlCodeEnabled = true;