Contrôleur#
Introduction#
La classe controller représente un contrôleur VEX EXP connecté au cerveau EXP. Un objet controller permet d’accéder aux valeurs des axes du joystick, de lire l’état des boutons, d’enregistrer des fonctions de rappel pour les boutons ou le joystick, de faire vibrer le contrôleur et de vérifier sa connexion.
VEX EXP est compatible avec le contrôleur V5. Consultez la API du contrôleur V5 pour plus d’informations.
Lorsqu’un ou plusieurs contrôleurs sont configurés dans la fenêtre Appareils, VEXcode EXP fournit également RemoteControlCodeEnabledCette variable globale active ou désactive les actions du contrôleur configurées dans le menu Appareils.
Classes dérivées#
La classe du contrôleur controller fournit les classes dérivées suivantes :
Constructeurs#
1 - Crée un contrôleur utilisant le type de contrôleur principal. Généralement utilisé lorsqu’un seul contrôleur est connecté.
controller();
2 - Crée un contrôleur pour le type de contrôleur spécifié. Utilisé lorsque deux contrôleurs sont connectés.
controller( controllerType id );
Fonctions disponibles
controller();
controller(controllerType id);
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Facultatif. Le type de contrôleur à créer : |
Remarques
Only one primary controller and one partner controller can be created in a single project.
Exemple
// Create the primary controller
controller Controller1 = controller();
// Create a partner controller
controller Controller2 = controller(partner);
Destructeur#
~contrôleur#
~controller détruit l’objet du contrôleur controller et libère les ressources associées.
Fonction disponible
~controller();
Paramètres#
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Type de contrôleur créé :
|
Notes#
Only one
primaryand onepartnercontroller may exist in a single project.
Exemple#
// Create an EXP controller instance
controller Controller = controller();
Fonctions des membres#
La classe du contrôleur controller comprend les fonctions membres suivantes :
rumble- Fait vibrer le contrôleur en utilisant un motif.installed- Vérifie si le contrôleur est connecté au cerveau.
gronder#
La touche rumble activent une vibration spécifique à la manette. Dans cette séquence, les points représentent des vibrations courtes, les tirets des vibrations longues et les espaces des pauses.
Fonction disponible
void rumble(const char *str);
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Une suite de points, de traits et d’espaces représentant le motif de grondement. |
Valeur de retour
Cette fonction ne renvoie aucune valeur.
Exemple
// Rumble with a short-short-long pattern
Controller1.rumble("..-");
Getter#
installé#
installed indique si la manette est connectée au cerveau.
Fonction disponible
bool installed();
Paramètres
Cette fonction ne possède pas de paramètres.
Valeur de retour
Renvoie une valeur booléenne.
true- The controller is installed/connected.false- The controller is not installed/connected.
Variables globales#
Code de télécommande activé#
RemoteControlCodeEnabled active ou désactive les actions de la manette configurées dans le menu Appareils. Les actions configurées sur la manette sont activées par défaut.
Usage:
RemoteControlCodeEnabled = state;
Valeur |
Description |
|---|---|
|
Active les actions configurées par le contrôleur. |
|
Désactive les actions configurées du contrôleur. |
true- Controller-configured actions are enabled.false- Controller-configured actions are disabled.
Les actions configurées par le contrôleur sont activées par défaut.
Cette variable ne fonctionnera que lors de l’utilisation de 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;