Cours:TPgpioControleur : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Classe Bouton avec filtrage des rebonds)
(Programmez !)
 
Ligne 57 : Ligne 57 :
 
class Vehicule
 
class Vehicule
 
{
 
{
   Vehicule(String name);
+
   Vehicule(String _marque);
   String name;
+
   String marque;
 
}
 
}
  
Ligne 96 : Ligne 96 :
  
 
{{finAide}}
 
{{finAide}}
 
  
 
=Classes pour bouton=
 
=Classes pour bouton=
  
 
[[Cours:TPgpioQT|cf séance sur les GPIO]]
 
[[Cours:TPgpioQT|cf séance sur les GPIO]]

Version actuelle datée du 4 octobre 2024 à 10:41

Un programme se résume souvent à modifier l'état de sorties en fonction de l'état d'entrées.

Si on souhaite avoir le même comportement entre plusieurs groupes d'entrées et plusieurs groupes de sorties, il est intéressant de créer un classe contrôleur qui permettra de faire le lien entre entrées et sorties.

Cahier des charges

Une classe Controleur devra :

  • observer l'appui sur un bouton poussoir
  • permettre de configurer un nombre d'appui souhaité
  • tous les nbAppuis appuis, une led devra changer d'état
  • posséder 2 slots permettant de
    • arrêter le fonctionnement du controleur (led éteinte, ne pas tenir compte des appuis)
    • mettre en route le fonctionnement du controleur (reprise du fonctionnement normal)

Question.jpg Faire un diagramme des classes que vous utiliserez

Question.jpg Faire un diagramme d'objets que vous utiliserez



Programmez !

Vous utiliserez :

  • 2 boutons poussoirs
  • 2 leds
  • 4 boutons sur l'interface graphique
  • 2 instances de Controleur

Chaque Controleur devra :

  • utiliser
    • 1 bp
    • 1 led
  • être connecté sur l'interface graphique à :
    • 1 QPB pour arrêter le Controleur
    • 1 QPB pour mettre en route le Controleur


Question.jpg Réaliser le programme


Remarques :

  • il est judicieux de vérifier les fonctionnalités au fur et à mesure
  • ne pas hésiter à utiliser des "qDebug()"
  • on peut commencer par faire une classe Controleur dans le comportement n'est pas souhaité/complet et modifier au fur et à mesure


Bluebg.png
Aidesmall.png
À propos de cette image

Passage de paramètres au constructeur



class Vehicule
{
  Vehicule(String _marque);
  String marque;
}

class Garage
{
  Garage(String marqueVoiture);
  Vehicule voiture;
}
garage.cpp

Garage::Garage(String marqueVoiture)
       : voiture(marqueVoiture)
{
}

vehicule.cpp

Vehicule::Vehicule(String _marque)
{
  marque = _marque;
}

main.cpp :

Garage g1{"peugeot"};
Garage g2{"renault"};


Classes pour bouton

cf séance sur les GPIO