C++#
La documentation de référence de l’API VEX EXP C++ explique les classes, les objets, les constructeurs, les fonctions membres et les variables utilisés dans les projets VEXcode EXP C++.
Utilisez cette référence lorsque vous souhaitez comprendre comment un appareil ou une fonctionnalité est créé(e), vérifier quelle signature de fonction utiliser ou comparer des fonctions membres apparentées dans une classe.
Les commandes C++ sont utilisées dans les projets VEXcode EXP C++. Les informations de l’API C++ peuvent également être utilisées pour les projets écrits dans Visual Studio Code avec l’extension VEX pour Visual Studio Code.
Comment lire une page de classe C++#
Une page de classe C++ suit généralement cet ordre :
Introduction - Explique ce que représente cette classe et quand elle est utile.
Classes dérivées - Liste toutes les classes qui sont basées sur cette classe, le cas échéant.
Constructeur ou constructeurs de classe - Indique la syntaxe utilisée pour créer un objet à partir de la classe.
Destructeur de classe - Indique la syntaxe utilisée pour détruire l’objet et libérer ses ressources, le cas échéant.
Paramètres - Explique les paramètres du constructeur utilisés lors de la création de l’objet.
Exemple - Montre comment créer l’objet par le code.
Fonctions membres - Liste les fonctions appartenant à la classe, souvent regroupées par objectif.
Entrées de fonction - Explique chaque fonction membre, y compris les fonctions disponibles, les paramètres, les valeurs de retour, les notes et les exemples.
Toutes les pages ne contiennent pas toutes les sections. Par exemple, certaines pages n’incluent pas les classes dérivées, et certaines fonctions n’ont ni paramètres ni valeurs de retour.
Éléments communs de l’API C++#
Élément |
Ce que cela signifie |
|---|---|
Classe |
Le type C++ d’un périphérique ou d’une fonctionnalité, tel que |
Objet |
Une instance nommée créée à partir d’une classe, telle que |
Constructeur |
Le code utilisé pour créer un objet à partir d’une classe. |
Activité réservée aux membres |
Une commande appelée sur un objet, tel que |
Fonction disponible |
Une seule signature de fonction peut être utilisée pour une fonction membre. Certaines fonctions membres possèdent plusieurs signatures possibles. |
Paramètre |
Une valeur passée à un constructeur ou à une fonction pour contrôler son comportement. |
Valeur de retour |
Une valeur renvoyée par une fonction, telle que |
Vocabulaire de base du C++#
Terme |
Ce que cela signifie |
|---|---|
Variable |
Un nom qui stocke une valeur, comme |
Taper |
Le type de données que quelque chose stocke, comme |
Chaîne |
Texte entre guillemets, comme |
int |
Un type de nombre entier positif ou négatif, tel que |
double |
Un type de nombre pouvant inclure une décimale, tel que |
bool |
Une valeur qui est soit |
Argument |
Une valeur passée à une fonction membre ou à un appel de fonction, comme |
Constructeurs et objets#
Avant d’utiliser les fonctions membres de nombreuses classes C++, un objet doit exister. Le constructeur indique comment créer cet objet.
Par exemple, un objet moteur peut être créé en fournissant au constructeur les informations de port ou de configuration dont il a besoin :
motor Motor1 = motor(PORT1, false);
Une fois l’objet créé, ses fonctions membres peuvent être appelées :
Motor1.spin(forward);
Dans VEXcode, la configuration des périphériques est souvent générée automatiquement par le menu « Périphériques ». Dans Visual Studio Code avec l’extension VEX, il peut être nécessaire d’écrire les constructeurs manuellement.
Choisir la fonction disponible appropriée#
Certaines fonctions membres proposent plusieurs options. Chaque option utilise un ensemble de paramètres différent ; choisissez donc celle qui correspond aux valeurs requises par votre projet.
Par exemple, une fonction de transmission peut avoir une version qui utilise la vitesse actuelle et une autre version qui permet au projet de choisir une vitesse :
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Les deux fonctions appellent drive, mais la seconde fonction offre plus de contrôle car elle inclut des paramètres de vitesse.
Exemple de saisie de fonction#
conduire#
La position drive permet au robot d’avancer ou de reculer indéfiniment. Il continuera à se déplacer jusqu’à ce qu’une autre action lui soit donnée, comme tourner ou s’arrêter. Pour les régimes moteur (RPM) ou les coups par seconde (DPS), la limite est modifiée par le rapport de transmission.
Fonctions disponibles
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Paramètre |
Taper |
Description |
|---|---|---|
|
|
La direction dans laquelle le robot se déplace : |
|
|
La vitesse de déplacement peut être de 0 % à 100 % lors de l’utilisation |
|
|
L’unité de vitesse : |
Valeur de retour
Cette fonction ne renvoie aucune valeur.
Remarques
Le lecteur
driven’est pas en attente ; le projet continuera d’exécuter la ligne de code suivante immédiatement après l’appel.La transmission continuera à se déplacer jusqu’à ce que l’arrêt
stopsoit appelé ou qu’une autre fonction de mouvement de la transmission soit exécutée.Les fonctions telles que
isDoneetisMovingne sont pas applicables àdrive, car il n’utilise pas de mouvement basé sur une cible.
Exemple
// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
Comportements d’attente et de non-attente#
Certaines fonctions de déplacement en C++ attendent la fin d’une action avant de passer à la ligne de code suivante. D’autres fonctions lancent une action et permettent l’exécution immédiate de la ligne suivante.
En attente - Le projet attend que la fonction se termine.
Sans attente - Le projet lance la fonction et passe immédiatement à la ligne suivante.
Certaines fonctions incluent un paramètre tel que waitForCompletion pour choisir ce comportement. Pour ces fonctions, true fait généralement patienter le projet, tandis que false permet à la ligne suivante de s’exécuter immédiatement.
Commandes dans les sous-sections#
Les commandes C++ sont organisées par périphérique ou par sujet. Par exemple, les commandes relatives aux périphériques Drivetrain, Motion, Brain, Controller, Smart Port, 3-Wire, Console, Logic et VEXlink sont regroupées dans leurs propres sous-sections.