IMA3/IMA4 2019/2021 P24+ : Différence entre versions

De Wiki de Projets IMA
(Semaine 3)
(Réalisation du Projet)
Ligne 60 : Ligne 60 :
 
'''19/05'''<br>
 
'''19/05'''<br>
 
Théo :
 
Théo :
*finition du design de la fenètre de modification des parametres liés aux ports série, les fonctionnalités ne sont pas encore implémentée
+
*finition du design de la fenêtre de modification des paramètres liés aux ports série, les fonctionnalités ne sont pas encore implémentée
*tentative de détection des emetteur et recepteur que l'on détecte en usb mais pas en série. <br>
+
*tentative de détection des émetteur et récepteur que l'on détecte en USB mais pas en série. <br>
 
Julien :
 
Julien :
*internationalisation du code fonctionnelle sur tous les ordinateurs(linux) grace à une détection automatique du chemin des fichier de traductions
+
*internationalisation du code fonctionnelle sur tous les ordinateurs(linux) grâce à une détection automatique du chemin des fichier de traductions
*debut de la création de la fenetre de visualisation en utilisant plusieurs onglets un pour la visualitsation un pour les courbes etc .. <br>
+
*debut de la création de la fenêtre de visualisation en utilisant plusieurs onglets un pour la visualisation un pour les courbes etc... <br>
 
----
 
----
 
'''20/05'''<br>
 
'''20/05'''<br>
 
Théo :
 
Théo :
*création du design complet de la fenetre de visualisation
+
*création du design complet de la fenêtre de visualisation
 
*début de la fonction de lecture sur les ports séries
 
*début de la fonction de lecture sur les ports séries
*identification des ports séries corrigées, si les microprocesseurs sont detectés en USB mais pas en série, il faut peut etre reboot l'ordinateur
+
*identification des ports séries corrigées, si les microprocesseurs sont détectés en USB mais pas en série, il faut peut être reboot l'ordinateur
 
Julien :
 
Julien :
*Ajout d'un fichier permettant l'installation de tout les outils nécéssairent quelquesoit le système ( semble fonctionner pour Linux, devrait fonctionner pour Mac, à faire pour Windows )
+
*Ajout d'un fichier permettant l'installation de tout les outils nécessaires quelque soit le système ( semble fonctionner pour Linux, devrait fonctionner pour Mac, à faire pour Windows )
*Ajout d'un menu déroulant pour la sélection des ports coté recepteur et transmetteur, ce menu déroulant recupère les ports connecté à l'ordinateur via port.py
+
*Ajout d'un menu déroulant pour la sélection des ports coté récepteur et transmetteur, ce menu déroulant récupère les ports connecté à l'ordinateur via port.py
*Ajout d'un message d'erreur à l'appuie du bouton enregistrer lors de la sélection du même port pour le recepteur et le transmetteur, sinon fermeture de la fenetre ( avec sauvegarde des infos dans des variable )
+
*Ajout d'un message d'erreur à l'appuie du bouton enregistrer lors de la sélection du même port pour le récepteur et le transmetteur, sinon fermeture de la fenêtre ( avec sauvegarde des infos dans des variable )
 
*Ajout d'un menu déroulant pour le choix de vitesse
 
*Ajout d'un menu déroulant pour le choix de vitesse
 
*Ajout d'un fichier de configuration config.txt, c'est là où sont stockés les informations rentré par l'utilisateur
 
*Ajout d'un fichier de configuration config.txt, c'est là où sont stockés les informations rentré par l'utilisateur
Ligne 82 : Ligne 82 :
 
'''21/05'''<br>
 
'''21/05'''<br>
 
Théo :
 
Théo :
*modification de la fenetre pour parametrer les ports series pour pouvoir rentrer les parametre de la liaison série
+
*modification de la fenêtre pour paramétrer les ports séries pour pouvoir rentrer les paramètre de la liaison série
*debut de la fenetre pour parametrer les graphes
+
*début de la fenêtre pour paramétrer les graphes
*debut de la création des graphes
+
*début de la création des graphes
*adaptation de la liaison serie pour qu'elle fonctionne selon les parametres séléctionnés<br>
+
*adaptation de la liaison série pour qu'elle fonctionne selon les paramètres sélectionnés<br>
 
Julien :
 
Julien :
*Changement du lancement de la fenetre de visualisation, elle se lance maintenant à l'appuie d'un bouton depuis la fenêtre principale
+
*Changement du lancement de la fenêtre de visualisation, elle se lance maintenant à l'appuie d'un bouton depuis la fenêtre principale
 
*L'affichage des données récupérées en série se fait dans 2 Thread ce qui permet l'accès au reste des commandes pendant que les données défilent sur l'écran de visualisation
 
*L'affichage des données récupérées en série se fait dans 2 Thread ce qui permet l'accès au reste des commandes pendant que les données défilent sur l'écran de visualisation
 
*La configuration des ports séries choisi par l'utilisateur reste maintenant enregistré pour la prochaine utilisation, sauf si le port utilisé la dernière fois n'est pas connecté
 
*La configuration des ports séries choisi par l'utilisateur reste maintenant enregistré pour la prochaine utilisation, sauf si le port utilisé la dernière fois n'est pas connecté
Ligne 94 : Ligne 94 :
 
'''25/05'''<br>
 
'''25/05'''<br>
 
Théo :
 
Théo :
*suite du design de la fenetre de parametrage des graphes
+
*suite du design de la fenêtre de paramétrage des graphes
*finition des fonctionalités de la fenetre de parametrage de l'echantillonage des mesures
+
*finition des fonctionnalités de la fenêtre de paramétrage de l'échantillonnage des mesures
 
*ajout de traduction et amélioration de l'organisation du gitlab <br>
 
*ajout de traduction et amélioration de l'organisation du gitlab <br>
 
Julien :
 
Julien :
Ligne 104 : Ligne 104 :
 
'''26/05'''<br>
 
'''26/05'''<br>
 
Théo :
 
Théo :
*finition des fonctionalités de la fenetre de parametrage des graphes
+
*finition des fonctionnalités de la fenêtre de paramétrage des graphes
 
*correction de l'organisation des fichiers texte
 
*correction de l'organisation des fichiers texte
*tentative de correction d'un bug d'affichage de fenetre<br>  
+
*tentative de correction d'un bug d'affichage de fenêtre<br>  
 
Julien :
 
Julien :
 
*Recherche et test sur les StyleSheet, test sur le logiciel
 
*Recherche et test sur les StyleSheet, test sur le logiciel
Ligne 119 : Ligne 119 :
 
'''28/05'''<br>
 
'''28/05'''<br>
 
Théo :
 
Théo :
Julien : Sur la fenetre principale remplacement des menus déroulant en bouton et ajout d'un theme
+
Julien : Sur la fenêtre principale remplacement des menus déroulant en bouton et ajout d'un theme
  
 
==Semaine 3==
 
==Semaine 3==
Ligne 159 : Ligne 159 :
 
*finition de la barre de chargement
 
*finition de la barre de chargement
 
*organisation du code et ajout de commentaire  
 
*organisation du code et ajout de commentaire  
Julien : modification du code des cartes LoRa peut maintenant se faire grace au parametre choisi par l'utilisateur dans le logiciel entre chaque acquisition  
+
Julien : modification du code des cartes LoRa peut maintenant se faire grâce aux paramètres choisi par l'utilisateur dans le logiciel entre chaque acquisition  
 
----
 
----
 
'''08/06'''<br>
 
'''08/06'''<br>
 
Théo :
 
Théo :
*abandon de la fenetre d'aide au profit d'un bon vieux pdf qui sera plus lisible et pratique a lire
+
*abandon de la fenêtre d'aide au profit d'un bon vieux pdf qui sera plus lisible et pratique a lire
*debut de la redaction du pdf d'aide
+
*début de la rédaction du PDF d'aide
 
*ajout de commentaire et de test d'ouverture des fichiers <br>
 
*ajout de commentaire et de test d'ouverture des fichiers <br>
 
Julien :  
 
Julien :  
* nouveau message d'erreur lorsque l'utilisateur inverse l'emetteur et le recepteur dans le choix des ports
+
* nouveau message d'erreur lorsque l'utilisateur inverse l'émetteur et le récepteur dans le choix des ports
 
* Le programme détecte maintenant par lui même quel sont les ports ou il faut écrire pour modifier le code sur les cartes LoRa
 
* Le programme détecte maintenant par lui même quel sont les ports ou il faut écrire pour modifier le code sur les cartes LoRa
 
----
 
----
Ligne 175 : Ligne 175 :
 
*ajout de commentaires <br>
 
*ajout de commentaires <br>
 
Julien :
 
Julien :
* rédaction de la suite du pdf d'aide avec un deuxième pdf traduit
+
* rédaction de la suite du PDF d'aide avec un deuxième PDF traduit
* Ajout d'un bouton cancel sur les fenetres en mode "run all"
+
* Ajout d'un bouton cancel sur les fenêtres en mode "run all"
* Correction de bug d'affichage des messages d'erreurs de parametre graphe   
+
* Correction de bug d'affichage des messages d'erreurs de paramètre graphe   
 
----
 
----
 
'''10/06'''<br>
 
'''10/06'''<br>
Ligne 187 : Ligne 187 :
 
* Ajout du bouton "Coding rate" et du bouton "graphique temps réel"
 
* Ajout du bouton "Coding rate" et du bouton "graphique temps réel"
 
* On peut maintenant afficher 2 graphe pour la même acquisition
 
* On peut maintenant afficher 2 graphe pour la même acquisition
* première ligne de recéption qui posais problème résolu (car on peut lancer le programme au milieu d'un envoie ou réception)
+
* première ligne de réception qui posais problème résolu (car on peut lancer le programme au milieu d'un envoie ou réception)
 
----
 
----
 
'''11/06'''<br>
 
'''11/06'''<br>
Ligne 198 : Ligne 198 :
 
Théo :
 
Théo :
 
*organisation du code et ajout de commentaire
 
*organisation du code et ajout de commentaire
*on peut maintenant arreter un test en fermant la fenetre de parametrage du test
+
*on peut maintenant arrêter un test en fermant la fenêtre de paramétrage du test
 
Julien :  
 
Julien :  
 
*Changement des erreurs en tant que class
 
*Changement des erreurs en tant que class
Ligne 206 : Ligne 206 :
 
Théo :
 
Théo :
 
*organisation du code  
 
*organisation du code  
*le style de chaque fenetre est desormais dans un fichier au format .css ce qui permet une meilleure lisibilité du code
+
*le style de chaque fenêtre est désormais dans un fichier au format .css ce qui permet une meilleure lisibilité du code
 
*meilleure gestion de l'affichage de la courbe en temps réel
 
*meilleure gestion de l'affichage de la courbe en temps réel
 
Julien :
 
Julien :
Ligne 226 : Ligne 226 :
 
'''18/06'''<br>
 
'''18/06'''<br>
 
Théo :
 
Théo :
*pour changer la langue on ne redemarre plus la fenetre principale
+
*pour changer la langue on ne redémarre plus la fenêtre principale
 
*correction de bug
 
*correction de bug
 
Julien :
 
Julien :
 +
*Changement de l'affichage des messages reçus sur visualisation
 
----
 
----
  

Version du 18 juin 2021 à 13:49


Présentation générale

  • Nom du projet : Interface graphique pour surveillance des communications d'un système embarqué
  • Stagiaire : Théo VAN ROMPAEY / Julien DELABRE
  • Encadrant : Thomas VANTROYS
  • Durée : 6 semaines (17 Mai - 25 Juin 2021)

Description

Dans le cadre d'un projet de recherche, nous avons besoin d'un outil graphique pour visualiser de manière plus agréable les données renvoyées par des capteurs. Ces données proviennent de ports série. L'interface sera réalisé avec la bibliothèque Qt, l'implémentation sera réalisé en C ou Python3.

Objectifs

Réaliser une interface en QT (Python3 ou C ) pour afficher les données de systèmes embarqués communicants via un port série

Préparation du projet

Cahier des charges

Choix techniques : matériel et logiciel

  • Python 3.7.3 QT for Python : https://www.qt.io/qt-for-python
  • pySerial pour la réception série
  • un emetteur et un recepteur (comprenant une puce LoRa chacun) qui nous ont été fournis

Liste des tâches à effectuer

Interface graphique :

  • Comprendre comment fonctionne QT
  • Internationaliser tout l'affichage qui pourra être fait
  • Faire une partie configuration et une partie affichage des données
  • faire une partie visualisation de courbe
  • internationaliser le code (francais anglais)

Données :

  • Utiliser pySerial pour la réception des données sur port série
  • Stockage des données pour l'affichage de courbe par exemple
  • Pouvoir modifier les paramètres d'envoie de donnée

Calendrier prévisionnel

Réalisation du Projet

Prologue

Semaine 1

18/05
- Installation des outils de travail : Qt, pySide, gettext, pySerial

Théo :

  • prise en main de la bibliothèque pyside6
  • création d'une barre de menu pour les diverses futures commandes
  • Création d'une interface simple qui dans un premier temps demande la langue voulu puis affiche dans cette dernière quelque informations et boutons ( informations et boutons non définitif utilisé pour le test )

Julien :

  • Création d'un 'dictionnaire' afin de traduire de l'anglais vers le français à l'aide de gettext, on remplace alors chaque chaîne de caractères 'string' par _('string') dans notre fichier .py (c'est le standard utilisé par gettext), ensuite on rempli le dictionnaire avec toute nos chaînes de caractères. Les commandes systèmes utilisés afin de créer le fichier binaire utilisé par gettext sont pour le moment exclusive à linux

19/05
Théo :

  • finition du design de la fenêtre de modification des paramètres liés aux ports série, les fonctionnalités ne sont pas encore implémentée
  • tentative de détection des émetteur et récepteur que l'on détecte en USB mais pas en série.

Julien :

  • internationalisation du code fonctionnelle sur tous les ordinateurs(linux) grâce à une détection automatique du chemin des fichier de traductions
  • debut de la création de la fenêtre de visualisation en utilisant plusieurs onglets un pour la visualisation un pour les courbes etc...

20/05
Théo :

  • création du design complet de la fenêtre de visualisation
  • début de la fonction de lecture sur les ports séries
  • identification des ports séries corrigées, si les microprocesseurs sont détectés en USB mais pas en série, il faut peut être reboot l'ordinateur

Julien :

  • Ajout d'un fichier permettant l'installation de tout les outils nécessaires quelque soit le système ( semble fonctionner pour Linux, devrait fonctionner pour Mac, à faire pour Windows )
  • Ajout d'un menu déroulant pour la sélection des ports coté récepteur et transmetteur, ce menu déroulant récupère les ports connecté à l'ordinateur via port.py
  • Ajout d'un message d'erreur à l'appuie du bouton enregistrer lors de la sélection du même port pour le récepteur et le transmetteur, sinon fermeture de la fenêtre ( avec sauvegarde des infos dans des variable )
  • Ajout d'un menu déroulant pour le choix de vitesse
  • Ajout d'un fichier de configuration config.txt, c'est là où sont stockés les informations rentré par l'utilisateur
  • La fonction de lecture sur les ports série récupère les ports choisi par l'utilisateur depuis le fichier de configuration
  • le changement de langue reste maintenant enregistré et peut être changer depuis la page principale ( nécessité de relancer le programme pour changer de langue )

21/05
Théo :

  • modification de la fenêtre pour paramétrer les ports séries pour pouvoir rentrer les paramètre de la liaison série
  • début de la fenêtre pour paramétrer les graphes
  • début de la création des graphes
  • adaptation de la liaison série pour qu'elle fonctionne selon les paramètres sélectionnés

Julien :

  • Changement du lancement de la fenêtre de visualisation, elle se lance maintenant à l'appuie d'un bouton depuis la fenêtre principale
  • L'affichage des données récupérées en série se fait dans 2 Thread ce qui permet l'accès au reste des commandes pendant que les données défilent sur l'écran de visualisation
  • La configuration des ports séries choisi par l'utilisateur reste maintenant enregistré pour la prochaine utilisation, sauf si le port utilisé la dernière fois n'est pas connecté

Semaine 2

25/05
Théo :

  • suite du design de la fenêtre de paramétrage des graphes
  • finition des fonctionnalités de la fenêtre de paramétrage de l'échantillonnage des mesures
  • ajout de traduction et amélioration de l'organisation du gitlab

Julien :

  • Création des fichiers et du programme pour sauvegarder les données lors d'une demande d'acquisition
  • ajout d'icône

26/05
Théo :

  • finition des fonctionnalités de la fenêtre de paramétrage des graphes
  • correction de l'organisation des fichiers texte
  • tentative de correction d'un bug d'affichage de fenêtre

Julien :

  • Recherche et test sur les StyleSheet, test sur le logiciel

27/05
Théo :

  • correction de bug
  • ajout de traduction

Julien :

  • Conception logo pour le logiciel

28/05
Théo : Julien : Sur la fenêtre principale remplacement des menus déroulant en bouton et ajout d'un theme

Semaine 3

31/05
Théo :

  • création du début de la fenêtre d'aide
  • correction de bogue

Julien : Correction d'un problème qui faisait que certaines fenêtres ne ce lançaient pas


01/06
Théo :

  • suite de la fenêtre d'aide
  • changement du fonctionnement du programme en vue de pouvoir programmer et exécuter plusieurs test à la suite

Julien :

  • Récupération des paramètres de graphe choisi par l'utilisateur et affichage du graphe
  • changement du fonctionnement du programme en vue de pouvoir programmer et exécuter plusieurs test à la suite

02/06
Théo :

  • prise en main et installation des programmes liées au microcontrôleur

Julien : ajout de la possibilités à l'utilisateur de demander une acquisition multiple qui se feront l'une après l'autre après validation, l'utilisateur pourra ensuite observer tout les graphes


03/06
Théo :

  • Création du nouveau git (serveur down)
  • Organisation des fichiers afin d'avoir une structure plus propre

Julien : Corrections des problèmes liés à la nouvelle structuration des fichiers


04/06
Théo :

  • ajout de voyant coloré(rond rouge vert et jaune dans les boutons) pour aider dans l'utilisation du programme
  • suite de la fenêtre d'aide

Julien : Certains paramètres sont affichés sur une fenêtre différente => changement dans les fichiers config et dans les programmes récupérant ces infos


Semaine 4

07/06
Théo :

  • finition de la barre de chargement
  • organisation du code et ajout de commentaire

Julien : modification du code des cartes LoRa peut maintenant se faire grâce aux paramètres choisi par l'utilisateur dans le logiciel entre chaque acquisition


08/06
Théo :

  • abandon de la fenêtre d'aide au profit d'un bon vieux pdf qui sera plus lisible et pratique a lire
  • début de la rédaction du PDF d'aide
  • ajout de commentaire et de test d'ouverture des fichiers

Julien :

  • nouveau message d'erreur lorsque l'utilisateur inverse l'émetteur et le récepteur dans le choix des ports
  • Le programme détecte maintenant par lui même quel sont les ports ou il faut écrire pour modifier le code sur les cartes LoRa

09/06
Théo :

  • test sur la réalisation des graphes temps réel
  • ajout de commentaires

Julien :

  • rédaction de la suite du PDF d'aide avec un deuxième PDF traduit
  • Ajout d'un bouton cancel sur les fenêtres en mode "run all"
  • Correction de bug d'affichage des messages d'erreurs de paramètre graphe

10/06
Théo :

  • suite de la réalisation des graphes en temps réel avec la visualisation. le graphe fonctionne ne fonctionne que sur certains ordinateurs
  • ajout de commentaire et amélioration de la structuration et la lisibilité du code

Julien :

  • Finition de l'aide pour l'état actuel du projet (encore certains points à revoir)
  • Ajout du bouton "Coding rate" et du bouton "graphique temps réel"
  • On peut maintenant afficher 2 graphe pour la même acquisition
  • première ligne de réception qui posais problème résolu (car on peut lancer le programme au milieu d'un envoie ou réception)

11/06
Théo : organisation du code et début de la suppression des appels à system() Julien :


Semaine 5

14/06
Théo :

  • organisation du code et ajout de commentaire
  • on peut maintenant arrêter un test en fermant la fenêtre de paramétrage du test

Julien :

  • Changement des erreurs en tant que class
  • Organisation du "dictionnaire" en regroupant les traductions par fenêtre

15/06
Théo :

  • organisation du code
  • le style de chaque fenêtre est désormais dans un fichier au format .css ce qui permet une meilleure lisibilité du code
  • meilleure gestion de l'affichage de la courbe en temps réel

Julien :

  • Ajout de la possibilité de changer les paramètres d'affichage en temps réel, ainsi que l'ajout d'un bouton permettant de refresh la courbe

16/06
Théo :

  • organisation du code et corrections de bug

Julien :

  • Découverte d'un autre moyens permettant d'afficher des graphes "QtCharts"
  • Premier test avec QtCharts

17/06
Théo :

  • correction de bug

Julien :

  • Test de remplacement d'une de nos fonctions par une fonction utilisant QtCharts mais plus compliqué à mettre en place donc abandon pour le moment

18/06
Théo :

  • pour changer la langue on ne redémarre plus la fenêtre principale
  • correction de bug

Julien :

  • Changement de l'affichage des messages reçus sur visualisation

Semaine 6

21/06
Théo : Julien :


22/06
Théo : Julien :


23/06
Théo : Julien :


24/06
Théo : Julien :


25/06
Théo : Julien :


Documents Rendus