C++#
A Referência da API VEX V5 C++ explica as classes, objetos, construtores, funções membro e variáveis utilizadas nos projetos VEXcode V5 C++.
Utilize esta referência quando pretende compreender como um dispositivo ou recurso é criado, verificar qual a assinatura de função a utilizar ou comparar funções-membro relacionadas numa classe.
Os comandos C++ são utilizados nos projetos C++ do VEXcode V5. As informações da API C++ também podem ser úteis para projetos escritos no Visual Studio Code com a extensão VEX para Visual Studio Code.
Como ler uma página de uma classe C++#
Uma página de classe C++ segue normalmente esta ordem:
Introdução - Explica o que a classe representa e quando é útil.
Classes Derivadas - Lista quaisquer classes que sejam baseadas nesta classe, se aplicável.
Construtor ou Construtores da Classe - Mostra a sintaxe utilizada para criar um objeto da classe.
Destrutor de Classes - Mostra a sintaxe utilizada para destruir o objeto e libertar os seus recursos, se aplicável.
Parâmetros - Explica os parâmetros do construtor utilizados ao criar o objeto.
Exemplo - Mostra como criar o objeto em código.
Funções-membro - Lista as funções que pertencem à classe, geralmente agrupadas por finalidade.
Entradas de funções - Explica cada função membro, incluindo as funções disponíveis, parâmetros, valores de retorno, notas e exemplos.
Nem todas as páginas possuem todas as secções. Por exemplo, algumas páginas não incluem classes derivadas e algumas funções não possuem parâmetros ou valores de retorno.
Elementos comuns da API C++#
Elemento |
O que significa |
|---|---|
Classe |
O tipo C++ para um dispositivo ou recurso, como |
Objeto |
Uma instância nomeada criada a partir de uma classe, como por exemplo |
Construtor |
O código utilizado para criar um objeto a partir de uma classe. |
Função de membro |
Um comando chamado num objeto, como por exemplo |
Função disponível |
Uma assinatura de função exata que pode ser utilizada para uma função membro. Algumas funções membro têm mais do que uma função disponível. |
Parâmetro |
Um valor passado a um construtor ou função para controlar o que faz. |
Valor de Retorno |
Um valor que uma função devolve, como por exemplo |
Vocabulário básico de C++#
Termo |
O que significa |
|---|---|
Variável |
Um nome que armazena um valor, como por exemplo |
Tipo |
O tipo de dados que algo armazena, como |
Fio |
Texto entre aspas, como |
int |
Um tipo de número inteiro positivo ou negativo, como |
duplo |
Um tipo de número que pode incluir um decimal, como por exemplo |
bool |
Um valor que pode ser |
Discussão |
Um valor passado para uma função membro ou chamada de função, como |
Construtores e Objetos#
Antes de utilizar funções-membro de muitas classes C++, é necessário que um objeto exista. O construtor mostra como criar este objeto.
Por exemplo, um objeto motor pode ser criado fornecendo ao construtor a porta ou a informação de configuração necessária:
motor Motor1 = motor(PORT1, false);
Após a criação do objeto, as suas funções-membro podem ser chamadas:
Motor1.spin(forward);
No VEXcode, a configuração do dispositivo é normalmente gerada automaticamente pelo Menu de Dispositivos. No Visual Studio Code com a extensão VEX, os construtores podem ter de ser escritos manualmente.
Escolhendo a função disponível adequada#
Algumas funções-membro têm mais do que uma função disponível. Cada função utiliza um conjunto diferente de parâmetros, por isso escolha aquela que corresponde aos valores que o seu projeto necessita de fornecer.
Por exemplo, uma função de transmissão pode ter uma versão que utiliza a velocidade atual e outra versão que permite ao projeto escolher uma velocidade:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Ambas as funções chamam drive, mas a segunda função oferece mais controlo porque inclui parâmetros de velocidade.
Exemplo de entrada de função#
conduzir#
drive moves the robot forward or reverse forever. The robot will continue to move until it is given another action, like turning or stopping. For RPM or DPS, the limit is changed by the gear ratio of the drivetrain.
Funções disponíveis
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A direção em que o robô se move: |
|
|
A velocidade de deslocação varia de 0% a 100% quando se utiliza |
|
|
A unidade de velocidade: |
Valor de Retorno
Esta função não devolve qualquer valor.
Notas
A unidade
drivenão está em espera; o projeto continuará a executar a próxima linha de código imediatamente após a chamada.O sistema de transmissão continuará a mover-se até que a função
stopseja chamada ou outra função de movimento do sistema de transmissão seja executada.Funções como
isDoneeisMovingnão são aplicáveis adrive, uma vez que não utiliza movimento baseado no alvo.
Exemplo
// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
Comportamento de espera e não espera#
Algumas funções de movimentação em C++ aguardam a conclusão de uma ação antes de avançar para a linha de código seguinte. Outras funções iniciam uma ação e permitem que a linha seguinte seja executada imediatamente.
Aguarda - O projeto aguarda até que a função termine.
Sem espera - O projeto inicia a função e continua imediatamente para a linha seguinte.
Algumas funções incluem um parâmetro como waitForCompletion para escolher este comportamento. Para estas funções, true geralmente faz o projeto esperar, enquanto false permite que a linha seguinte seja executada imediatamente.
Comandos em Subsecções#
Os comandos C++ estão organizados por dispositivo ou tópico. Por exemplo, os comandos para Drivetrain, Motors, Controller, Brain, Smart Port, 3-Wire devices, Console, Logic e VEXlink são agrupados nas suas próprias subsecções.