Controlador#
Introdução#
A classe controller representa um controlador VEX EXP ligado ao EXP 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 e verificar se o controlador está ligado.
O VEX EXP é compatível com o Controlador V5. Consulte a API do controlador V5 para obter mais informações.
Quando um ou mais controladores são configurados na janela Dispositivos, o VEXcode EXP também fornece RemoteControlCodeEnabledEsta variável global ativa ou desativa as ações do controlador configuradas no menu Dispositivos.
Classes Derivadas#
A classe controladora controller classes derivadas:
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 |
|---|---|---|
|
|
Opcional. O tipo de controlador a criar: |
Notas
Num único projeto, é possível criar apenas um controlador primário primary e um controlador parceiro partner.
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 |
|---|---|---|
|
|
Tipo de controlador que está a ser criado:
|
Notas#
Only one
primaryand onepartnercontroller may exist in a single project.
Exemplo#
// Create an EXP 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 usando 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 |
|---|---|---|
|
|
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 |
|---|---|
|
Activa as ações configuradas pelo controlador. |
|
Desativa as ações configuradas pelo controlador. |
true- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
As ações configuradas pelo controlador estão ativadas por defeito.
Esta variável só funcionará ao utilizar o VEXcode.
// 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;