|
|
Ligne 6 : |
Ligne 6 : |
| {{Rouge|Même si le nom est identique aux classes déjà utilisées, elles peuvent être différentes !!}} | | {{Rouge|Même si le nom est identique aux classes déjà utilisées, elles peuvent être différentes !!}} |
| | | |
− | =Analyse et utilisation=
| |
− |
| |
− | ==Classes à disposition==
| |
| | | |
| Voici l'archive contenant les fichiers des classes listées ci-dessous : [[Media:ClassesEvaluationPOO.zip ]] | | Voici l'archive contenant les fichiers des classes listées ci-dessous : [[Media:ClassesEvaluationPOO.zip ]] |
− |
| |
− | ==Diagramme de classes==
| |
− |
| |
− |
| |
− | {{Eval|2|Réaliser un diagramme des classes déclarées dans les fichiers suivants :}}
| |
− | *eclairagedimmable.h
| |
− | *barregraphe.h
| |
− | *leddimmable.h
| |
− | *bouton.h
| |
− |
| |
− | '''Remarque''' :
| |
− | *Vous listerez les {{Rouge|signals}} avec les méthodes en indiquant <code>signal</code> devant le nom
| |
− |
| |
− | ==Programme==
| |
− |
| |
− | ===Création du projet===
| |
− |
| |
− | {{Eval|2|Faire un nouveau projet :}}
| |
− | *de type <code>QWidget</code> application
| |
− | *ajouter un bouton sur l'interface graphique pour quitter l'application
| |
− | *ajouter les fichiers des classes données en début d'énoncé
| |
− | *{{Rouge|'''ajouter à la fin du fichier .pro la ligne'''}} <code>LIBS += -lpigpio</code>
| |
− |
| |
− | ===Utilisation de la classe LedDimmable===
| |
− |
| |
− | Une led est connectée sur la sortie {{Rouge|pwm 0}}.
| |
− |
| |
− | On souhaite pouvoir modifier l'état (allumée/éteinte) et la puissance d'éclairage de cette led à l'aide de 4 boutons placés sur l'interface graphique.
| |
− |
| |
− | {{Eval|3|Ecrire un programme qui répond à ce cahier des charges :}}
| |
− | *il doit y avoir 5 boutons sur l'interface graphique (on, off, +, -, quitter appli)
| |
− |
| |
− | ===Utilisation de la classe <code>Barregraphe</code>===
| |
− |
| |
− | On ajoute la gestion des 4 leds (broches 18/19/26/27) à l'aide de la classe <code>Barregraphe</code>.
| |
− |
| |
− | {{Eval|3|Ajouter à votre programme :}}
| |
− | *1 objet de type <code>Barregraphe</code>
| |
− | *2 boutons sur l'interface graphique
| |
− | **l'un pour augmenter la puissance du Barregraphe
| |
− | **l'autre pour diminuer la puissance du Barregraphe
| |
− | *faire en sorte que
| |
− | **le bouton pour allumer la LedDimmable allume également le Barregraphe
| |
− | **le bouton pour éteindre la LedDimmable éteigne également le Barregraphe
| |
− |
| |
− | =Conception=
| |
− |
| |
− | On souhaite pouvoir commander les éclairages à l'aide de dispositifs augmentant ou diminuant la puissance d'éclairage :
| |
− | * représentés par une classe <code>VariateurPuissance</code>
| |
− | qui sera spécialisée en
| |
− | * une classe <code>IkeaTradfri</code> représentant un module à deux boutons (un bouton "plus" et un bouton "moins")
| |
− | * une classe <code>Gradateur</code> représentant un module codeur incrémental
| |
− | selon le diagramme de classes suivant :
| |
− |
| |
− | [[Fichier:Eval2022-diagrammeClasse2.png]]
| |
− |
| |
− | Rappel : <code>#</code> spécifie un attribut ou une méthode <code>protected</code>
| |
− |
| |
− | Pour mémoire les ports GPIO utilisés par les modules sont les suivants :
| |
− |
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! n° GPIO !! Module !! n° GPIO !! Module
| |
− | |-
| |
− | | 5 || Encodeur voie A|| 16 || Bouton poussoir 1 (vert?)
| |
− | |-
| |
− | | 6 || Encodeur voie B|| 17 || Bouton poussoir 2 (rouge?)
| |
− | |}
| |
− |
| |
− | ===Classe <code>IkeaTradfri</code>===
| |
− |
| |
− | {{Eval|3|Ajouter au projet l'implémentation de <code>IkeaTradfri</code> :}}
| |
− | * un appui sur le bouton vert doit émettre le signal <code>plus()</code>
| |
− | * un appui sur le bouton rouge doit émettre le signal <code>moins()</code>
| |
− |
| |
− | {{Eval|2|Instancier un objet de type <code>IkeaTradfri</code> dans l'application pour commander la led dimmable.}}
| |
− |
| |
− | ===Classe <code>Gradateur</code>===
| |
− |
| |
− | {{Eval|3|Ajouter au projet l'implémentation de <code>Gradateur</code> :}}
| |
− | * Le codeur se comporte comme deux boutons (de type <code>Bouton</code>)
| |
− | * Le sens de rotation peut être détecté en observant un front, descendant ou montant, sur la <code>voieB</code> et alors
| |
− | ** si <code>voieA = false</code> et <code>voieB = false</code> : émettre le signal <code>plus()</code>
| |
− | ** si <code>voieA = true</code> et <code>voieB = false</code> : émettre le signal <code>moins()</code>
| |
− | {{Eval|2|Instancier un objet de type <code>Gradateur</code> dans l'application pour commander les leds du barregraphe.}}
| |