Cours:TPheritageIO : Différence entre versions
(→classe abstraite Lampe) |
(→classe abstraite Lampe) |
||
Ligne 39 : | Ligne 39 : | ||
*setValue est la seule méthode qui sera redéfinie dans les classes {{Rouge|filles}} | *setValue est la seule méthode qui sera redéfinie dans les classes {{Rouge|filles}} | ||
*du coup il est nécessaire de la déclarer comme {{Rouge|virtual}} | *du coup il est nécessaire de la déclarer comme {{Rouge|virtual}} | ||
− | *les méthodes(slots plutôt) allumer/eteindre/changer doivent utiliser la méthode setValue | + | *les méthodes(slots plutôt) {{Rouge|allumer/eteindre/changer}} doivent {{Rouge|utiliser}} la méthode {{Rouge|setValue}} |
==classe LampeGPIO== | ==classe LampeGPIO== |
Version du 28 septembre 2022 à 15:19
Nous allons utiliser un gpio expander en i2c qui permet d'ajouter facilement un grand nombre d'entrées/sorties sur un système.
Le composant utilisé, un mcp23017, possède 16 gpio. Son @i2c est réglable à l'aide de 3 broches ce qui permet au maximum d'en utiliser 8 sur le même bus i2c.
On peut donc ajouter jusqu'à 128 entrées/sorties en utilisant ce composant.
Nous souhaitons écrire un programme qui permet de piloter des lampes/leds, certaines connectées directement sur les gpio de la carte programmable, d'autres branchées sur le gpio expander.
Dans tous les cas, il s'agit de Lampe
, qu'elle soit une LampeI2c
ou une LampeGPIO
.
Chaque Lampe
présente :
- la propriété ou attribut suivant :
- isAllumee
- les fonctionnalités ou méthodes suivantes :
- allumer
- eteindre
- changer
Sommaire
"Diagramme" de classe
classe abstraite Lampe
- hérite de QObject
- a un attribut protected :
- isAllumee : bool
- a des slots public :
- allumer
- eteindre
- changer
- a une méthode protected
- virtual void setValue(bool etat)
Remarque :
- setValue est la seule méthode qui sera redéfinie dans les classes filles
- du coup il est nécessaire de la déclarer comme virtual
- les méthodes(slots plutôt) allumer/eteindre/changer doivent utiliser la méthode setValue