Cours:TPqtFNS : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Machine à état fini)
Ligne 16 : Ligne 16 :
  
 
La librairie QT permet de décrire facilement des {{Rouge|F}}inite {{Rouge|S}}tate {{Rouge|M}}achine à l'aide d'un ensemble de classes listées sur la page [https://doc.qt.io/qt-5/statemachine-api.html statemachine-api.html]
 
La librairie QT permet de décrire facilement des {{Rouge|F}}inite {{Rouge|S}}tate {{Rouge|M}}achine à l'aide d'un ensemble de classes listées sur la page [https://doc.qt.io/qt-5/statemachine-api.html statemachine-api.html]
 +
 +
 +
=Prise en main de l'api FSM=
 +
 +
En vous servant de la page [https://doc.qt.io/qt-5/statemachine-api.html statemachine-api.html], écrire un programme répondant au cahier des charges suivant :
 +
 +
*sur l'interface graphique, disposez 2 objets :
 +
**led : de type WidgetLampe (classe donnée ci dessous, cf séance sur la spécialisation de widget pour l'ajouter)
 +
**bp  : de type QPushButton
 +
*le comportement est le suivant :
 +
**il y a 3 états différents (stateRouge,stateVert,stateNoir)
 +
**on change d'état à l'appui sur {{Rouge|bp}}
 +
**la led sera :
 +
**rouge dans l'état stateRouge
 +
**verte dans l'état stateVert
 +
**noire dans l'état stateNoir
 +
 +
  
 
=Ressources=
 
=Ressources=

Version du 26 septembre 2024 à 09:26

Machine à état fini

Les automates à états finis sont en moyen de décrire un système avec des comportements différents.

A chaque état est associé un comportement.

Des transitions permettent de passer d'un état à un autre

A chaque transition est associé une condition pour valider ce changement d'état.


Vous pouvez consulter la page wikipedia pour plus de détails.


La librairie QT permet de décrire facilement des Finite State Machine à l'aide d'un ensemble de classes listées sur la page statemachine-api.html


Prise en main de l'api FSM

En vous servant de la page statemachine-api.html, écrire un programme répondant au cahier des charges suivant :

  • sur l'interface graphique, disposez 2 objets :
    • led : de type WidgetLampe (classe donnée ci dessous, cf séance sur la spécialisation de widget pour l'ajouter)
    • bp  : de type QPushButton
  • le comportement est le suivant :
    • il y a 3 états différents (stateRouge,stateVert,stateNoir)
    • on change d'état à l'appui sur bp
    • la led sera :
    • rouge dans l'état stateRouge
    • verte dans l'état stateVert
    • noire dans l'état stateNoir


Ressources