C++#

La Referencia de API de C++ de VEX IQ (1ª generación) explica las clases, objetos, constructores, funciones miembro y variables utilizadas en los proyectos de VEXcode 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 IQ C++. Las páginas de C++ están organizadas de manera diferente a las páginas de bloques porque muchos comandos pertenecen a una clase. Una página puede explicar primero la clase y cómo crear un objeto, luego enumerar las funciones miembro que se pueden llamar en ese objeto.

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 bumper o una drivetrain.

Objeto

Una instancia con nombre creada a partir de una clase, como bumper Bumper1 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 Bumper Switch dando al constructor el Smart Port donde está conectado el sensor:

bumper Bumper1 = bumper(PORT1);

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

Bumper1.pressing();

En VEXcode, la configuración del dispositivo a menudo se genera automáticamente por el menú del dispositivo. En VS Code, 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 versiones llaman drive, pero la segunda versió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.

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 120 rpm cuando se usan rpm, o de 0 a 720 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 ejecutará la siguiente línea de código de inmediato.

  • El robot continuará moviéndose hasta que se llame a stop se ejecute otra función de movimiento del tren motriz.

  • isDone e isMoving no se utilizan con drive porque drive no tiene una distancia objetivo.

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 los dispositivos Brain, Controller, Drivetrain, Events, Motion, Smart Port, Threads y Logic se agrupan en sus propias subsecciones.