Projet 5A 19 20/Superviseur

Afin d'utiliser ou modifier le Superviseur, il faut avoir installé Qt au préalable (voir Guide Qt).

Importer, compiler et exécuter le projet

 

  • Télécharger le projet supervisor depuis Github :
    https://github.com/polybot-grenoble/supervisor
  • Ouvrir Qt Creator
  • Accéder à File/Open file or projet (1)
  • Ouvrir Supervisor/supervisor.pro (2)
  • Cliquer sur build/run Qmake PUIS sur Run (3)

Et hop, ca se lance. -WHOAH-

Aperçu du Superviseur

 

  • Console :

Permet d'afficher les messages émis par la STM.


  • Bouton Stop/Start :

Permet d'envoyer la commande Start/stop au Robot.


  • Bouton Manual/Auto :

En mode manual, le superviseur peut controler le robot grâce aux touches "ZQSD" ou aux flèches. En mode auto, le superviseur affiche juste les messages de log dans la console (sur la droite de l'interface) et positionne le robot sur la carte.


  • Checkbox Save log :

Elle n'est pas cochée par défaut. Une fois cochée, cela permet de sauver les messages logs dans un fichier externe placé dans le dossier logs (situé dans le dossier où est l'exécutable).


  • Bouton Connect :

Permet de connecter le superviseur au serveur ou de le reconnecter si besoin. L'état de connexion est affiché juste dessous.


Pour modifier l'adresse IP utilisée, il suffit de cliquer sur la zone de saisie prévue à cet effet. Elle n'accepte que les chiffres et les points. L'adresse est remplacée une fois la touche Enter du clavier pressée.

Organisation du code

Le code s'organise de manière très classique comme un projet C++ basique.

  • mainwindow.hpp : Déclaration de la classe mainwindow
  • mainwindow.cpp : Implémentation de la classe mainwindow
  • main.cpp : Petit bout de code ou il n'y a rien besoin de faire mais qui instancie un objet de la classemainwindow et qui l'affiche.

Avec quelques fichiers spécifiques à Qt

  • mainwindow.ui : Fichier définissant toute la partie interface utilisateur (front-end). Il ouvre automatiquement la partie Design de Qt.
  • supervisor.pro : une sorte de Makefile ou sont répertoriés les différents fichiers liés au projet.
  • ressources.qrc : répertorie les différentes ressources du projet (typiquement les images).

Si des modifications sont à apporter, elles interviendront sûrement dans mainwindow.cpp et mainwindow.ui.

Le code est généreusement commenté et se suffit donc à lui-même pour comprendre le fonctionnement global du projet.

Améliorations possibles

  • Pouvoir distribuer des exécutables du Superviseur.
  • Pouvoir court-circuiter la gateway Raspberry Pi avec un bouton, c'est à dire pouvoir connecter et communiquer directement avec la STM32 branchée à l'ordinateur exécutant le Superviseur.