C++#

La Referencia de API de VEX V5 C++ explica las clases, objetos, constructores, funciones miembro y variables utilizadas en los proyectos de VEXcode V5 C++.

Utilice esta referencia cuando desee comprender cómo se crea un dispositivo o función, comprobar qué firma de función usar o comparar funciones de miembro relacionadas en una clase.

Los comandos C++ se utilizan en proyectos VEXcode V5 C++. La información de la API de C++ también puede admitir proyectos escritos en Visual Studio Code con la extensión VEX Visual Studio Code.

Cómo leer una página de clase de C++#

Una página de clase C++ generalmente sigue este orden:

  1. Introducción: explica lo que representa la clase y cuándo es útil.

  2. Clases derivadas: enumera las clases que se basan en esta clase, si corresponde.

  3. Class Constructor o Constructors: muestra la sintaxis utilizada para crear un objeto a partir de la clase.

  4. Destructor de clases: muestra la sintaxis utilizada para destruir el objeto y liberar sus recursos, si corresponde.

  5. Parámetros - Explica los parámetros del constructor utilizados al crear el objeto.

  6. Ejemplo - Muestra cómo crear el objeto en código.

  7. Funciones de miembro: enumera las funciones que pertenecen a la clase, a menudo agrupadas por propósito.

  8. Entradas de funciones: explica cada función miembro, incluidas las funciones disponibles, los parámetros, los valores de retorno, las notas y los ejemplos.

No todas las páginas tienen todas las secciones. Por ejemplo, algunas páginas no incluyen clases derivadas, y algunas funciones no tienen parámetros o valores de retorno.

Elementos comunes de API de C++#

Elemento

Qué significa

Clase

El tipo C++ para un dispositivo o función, como un motor o una drivetrain.

Objeto

Una instancia con nombre creada a partir de una clase, como motor Motor1 o drivetrain myDrivetrain.

Constructor

El código utilizado para crear un objeto a partir de una clase.

Función de miembro

Un comando llamado a un objeto, como myDrivetrain.drive(…).

Función disponible

Una firma de función exacta que se puede usar para una función miembro. Algunas funciones de miembro tienen más de una función disponible.

Parámetro

Un valor pasado a un constructor o función para controlar lo que hace.

Valor de devolución

Un valor que devuelve una función, como bool, int32_tt o double.

Vocabulario básico en C++#

Plazo

Qué significa

Variable

Un nombre que almacena un valor, como int speed = 50;.

Tipo

El tipo de datos que algo almacena, como int, double o bool.

Cadena

Texto entre comillas, como “Hello”.

int

Un tipo de número entero positivo o negativo, como 90.

doble

Un tipo de número que puede incluir un decimal, como 25.5.

bool

Un valor que es true o false.

Argumento

Un valor pasado a una función miembro o llamada a función, como forward en myDrivetrain.drive(forward).

Constructores y objetos#

Antes de usar funciones miembro de muchas clases de C++, debe existir un objeto. El constructor muestra cómo crear ese objeto.

Por ejemplo, se puede crear un objeto motor dando al constructor el puerto o la información de configuración que necesita:

motor Motor1 = motor(PORT1, false);

Después de crear el objeto, sus funciones miembro se pueden llamar:

Motor1.spin(forward);

En VEXcode, la configuración del dispositivo a menudo se genera automáticamente por el menú del dispositivo. En Visual Studio Code con la extensión VEX, es posible que los constructores deban escribirse manualmente.

Elegir la función disponible correcta#

Algunas funciones de miembro tienen más de una función disponible. Cada función utiliza un conjunto diferente de parámetros, así que elige el que coincida con los valores que tu proyecto debe proporcionar.

Por ejemplo, una función de transmisión puede tener una versión que utiliza la velocidad actual y otra versión que permite al proyecto elegir una velocidad:

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

Ambas funciones llaman a la drive, pero la segunda función da más control porque incluye parámetros de velocidad.

Ejemplo de entrada de función#

unidad#

drive mueve el robot hacia adelante o hacia atrás para siempre. El robot continuará moviéndose hasta que se le dé otra acción, como girar o detenerse. Para RPM o DPS, el límite se cambia por la relación de transmisión del tren motriz.

Funciones disponibles

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

Parámetro

Tipo

Descripción

dir

directionType

La dirección en la que se mueve el robot: forward o hacia reverse.

velocity

double

La velocidad para conducir con del 0% al 100% cuando se usan velocityUnits::pct, de 0 a 600 rpm cuando se usan rpm, o de 0 a 3600 grados por segundo cuando se usan dps. Si no se proporciona velocidad, el robot se acciona a la velocidad de accionamiento actual.

units

velocityUnits

La unidad de velocidad velocityUnits::pct (porcentaje), rpm (rotaciones por minuto) o dps (grados por segundo).

Valor de devolución

Esta función no devuelve un valor.

Notas

  • drive no está en espera; el proyecto continuará ejecutando la siguiente línea de código inmediatamente después de la llamada.

  • El sistema de transmisión continuará moviéndose hasta que se llame a la función stop o se ejecute otra función de movimiento del sistema de transmisión.

  • Funciones como isDone isDone e isMoving no isMoving son aplicables a la drive, ya que no utiliza el movimiento basado en objetivos.

Ejemplo

// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();

Comportamiento de espera y no espera#

Algunas funciones de movimiento de C++ esperan hasta que se termina una acción antes de que el proyecto pase a la siguiente línea de código. Otras funciones inician una acción y permiten que la siguiente línea se ejecute de inmediato.

  • Esperando: el proyecto espera hasta que finalice la función.

  • Sin espera: el proyecto inicia la función y continúa inmediatamente a la siguiente línea.

Algunas funciones incluyen un parámetro como waitForCompletion para elegir este comportamiento. Para esas funciones, true generalmente hace que el proyecto espere, mientras que false permite que la siguiente línea se ejecute de inmediato.

Comandos en subsecciones#

Los comandos de C++ están organizados por dispositivo o tema. Por ejemplo, los comandos para la transmisión, los motores, el controlador, el cerebro, los dispositivos de puerto inteligente, los dispositivos de 3 cables, la consola, la lógica y VEXlink se agrupan en sus propias subsecciones.