Outils pour utilisateurs

Outils du site


tpqt

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
tpqt [2019/04/11 17:14]
bvandepo
tpqt [2021/03/19 16:38]
bvandepo
Ligne 1: Ligne 1:
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/warning.jpeg}}+{{https://bvdp.inetdoc.net/files/iut/tp_pic/warning.jpeg}}
 <color red> <color red>
 POUR ACCEDER A L'INTEGRALITE DU SUJET DE TP: POUR ACCEDER A L'INTEGRALITE DU SUJET DE TP:
Ligne 13: Ligne 13:
 </color> </color>
  
-Polycopié du courshttps://homepages.laas.fr/bvandepo/files/iut/tp_pic/cours_preparation_pic_qt_six.pdf+<color red> 
 +Si vous êtes en chez vous, et que vous n'arrivez pas à vous connecter via SSH et VNC à une salle de TP, se connecter (en cliquant en haut à droite sur s'identifier) en tant que  utilisateur=app, mot de passe=app 
 +</color>
  
-et:   {{https://homepages.laas.fr/bvandepo/files/iut/tp_qt/cours_POO_intro9_2019.pdf}} 
  
 +<color red>
 +Si vous êtes en chez vous, et que vous arrivez à vous connecter via SSH et VNC à une salle de TP, se connecter (en cliquant en haut à droite sur s'identifier) en tant que :  utilisateur=dist, mot de passe=dist
 +</color>
 +
 +
 +
 +
 +Polycopié du cours: https://bvdp.inetdoc.net/files/iut/cours_preparation_pic_qt_2021_complet_numbered.pdf
 +
 +et:   https://bvdp.inetdoc.net/files/iut/cours_POO_intro_complet_2021_numbered.pdf
  
  
Ligne 43: Ligne 54:
      
 Le résultat de cette analyse est que vous devez utiliser les numéros de ports 2700 et 2701 pour échanger des informations depuis le PC. Le résultat de cette analyse est que vous devez utiliser les numéros de ports 2700 et 2701 pour échanger des informations depuis le PC.
 +
 +
 +Le schéma suivant récapitule l'ensemble des matériels et logiciels que nous allons utiliser dans cette série de TP. Les différents éléments seront expliqués au fur et à mesure. <color red>A chaque étape, vous devez être capable d'identifier les portions utilisées et leur rôle. Vous devrez remplir les cases jaunes sur la feuille distribuée lors du TP.</color>
 +
 +
 +{{https://bvdp.inetdoc.net/files/iut/tp_pic/schemareseauPIC-2018-au-en-horizontal.png}}
 +
 +
 +
 +
 ====Utilisation de l'application BroadcastReceiver sur les PC étudiant==== ====Utilisation de l'application BroadcastReceiver sur les PC étudiant====
 L'application que vous devez développer vous est fournie dans un premier temps afin que vous la voyez fonctionner et sachiez ce que vous devez faire. Une application fonctionnant sur le PC et simulant le PIC est également fournie pour faciliter le développement et permettre aux étudiants n'ayant pas terminé le programme sur le PIC de faire ce TP. L'application que vous devez développer vous est fournie dans un premier temps afin que vous la voyez fonctionner et sachiez ce que vous devez faire. Une application fonctionnant sur le PC et simulant le PIC est également fournie pour faciliter le développement et permettre aux étudiants n'ayant pas terminé le programme sur le PIC de faire ce TP.
      
 +<ifauth @app>  
 +Récupérer les fichiers nécessaires, et dezipper: https://bvdp.inetdoc.net/files/iut/td_fifo/install_qt5_windows/QTbroadcastreceiveretudiantEtBinairesWindowsQT5.zip
 +
 +</ifauth>
 +
 +<ifauth @au,@en,@dist>   
 Récupérer les fichiers nécessaires en saisissant dans une console: Récupérer les fichiers nécessaires en saisissant dans une console:
   cd ~/   cd ~/
-  wget  http://homepages.laas.fr/bvandepo/files/iut/tp_qt/binaries.zip+  wget  https://bvdp.inetdoc.net/files/iut/tp_qt/binaries.zip
   unzip binaries.zip    unzip binaries.zip 
   rm binaries.zip   rm binaries.zip
Ligne 54: Ligne 81:
   ./testenlocal.sh     ./testenlocal.sh  
   echo 'fini'   echo 'fini'
 +</ifauth>
 +
  
  
Ligne 75: Ligne 104:
 </ifauth> </ifauth>
  
- + 
 + 
 +<ifauth @app> 
 +===Configuration du script pour le test en local=== 
 +Dans le dossier dezippé, configurer l'application BroadcastReceiver en éditant le script « testenlocal.bat » (click droit,  modifier) pour configurer l'IP et les ports UDP en émission et en réception. La syntaxe est la suivante: 
 +  start broadcastReceiver.exe IP_destination port_UDP_émission port_UDP_réception paramètres_optionnels_de_réglages_de_la_fenêtre 
 +par exemple:  
 +  start broadcastreceiver 192.168.1.100 27016 27017 10 40 500 130    
 + 
 +===Configuration du script pour simupic=== 
 +Dans le dossier dezippé, configurer l'application simupic en éditant le script « testsimu.bat » (click droit,  modifier) pour configurer l'IP et les ports UDP en émission et en réception. La syntaxe est la suivante: 
 +  start  simupic.exe ipachanger port1achanger port2achanger paramètres_optionnels_de_réglages_de_la_fenêtre 
 +par exemple:  
 +  start  simupic.exe ipachanger port1achanger port2achanger 2 25 700 80    
 + 
 +</ifauth> 
 + 
 + 
 +<ifauth @au,@en,@dist>  
 ===Utilisation de simupic=== ===Utilisation de simupic===
 Saisir dans la console: Saisir dans la console:
   cd ~/binaries   cd ~/binaries
   ./simupic  &       ./simupic  &    
- +</ifauth> 
  
  
Ligne 96: Ligne 143:
  
 <ifauth @prof> <ifauth @prof>
-Dézipper le fichier QTbroadcastreceiveretudiantAU2ET3.zipPour ouvrir le projet, il faut que vous lanciez le script lanceqt.bat puis cliquez sur  Fichier->ouvrir_projet et sélectionnez le fichier .pro dans le dossier que vous venez de dézipper.+Note pour la Migration de qt4 vers qt5: 
 + 
 + 
 +https://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5 
 + 
 +http://www.yourownlinux.com/2015/04/sed-command-in-linux-append-and-insert-lines-to-file.html 
 + 
 + 
 </ifauth> </ifauth>
  
 +<ifauth @au,@en,@dist>  
   echo commence   echo commence
   cd ~/   cd ~/
-  wget  http://homepages.laas.fr/bvandepo/files/iut/tp_qt/QTbroadcastreceiveretudiantAU2ET3.zip+  wget  https://bvdp.inetdoc.net/files/iut/tp_qt/QTbroadcastreceiveretudiantAU2ET3.zip
   unzip QTbroadcastreceiveretudiantAU2ET3.zip   unzip QTbroadcastreceiveretudiantAU2ET3.zip
   rm QTbroadcastreceiveretudiantAU2ET3.zip   rm QTbroadcastreceiveretudiantAU2ET3.zip
   cd QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant/   cd QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant/
   rm broadcastreceiver.pro.user   rm broadcastreceiver.pro.user
-  qmake-qt4 broadcastreceiver.pro+  echo "Migration qt4 vers qt5" 
 +  sed -i '/QT += network/ a QT += widgets' broadcastreceiver.pro   
 +  sed -i 's/#include <QtGui>/#include <QtWidgets>/g' receiver.cpp 
 +  qmake broadcastreceiver.pro
   qtcreator broadcastreceiver.pro &   qtcreator broadcastreceiver.pro &
   echo fini   echo fini
Ligne 113: Ligne 172:
 Important: COCHER la configuration DEBUG  puis Cliquer sur Configurer le projet. Important: COCHER la configuration DEBUG  puis Cliquer sur Configurer le projet.
 </color> </color>
 +</ifauth>
  
  
- +<ifauth @au,@en,@dist>  
 ==Initialisation du système de gestion de version en local== ==Initialisation du système de gestion de version en local==
 POUR LA PREMIERE SEANCE UNIQUEMENT!, Copier/coller dans une console: POUR LA PREMIERE SEANCE UNIQUEMENT!, Copier/coller dans une console:
Ligne 128: Ligne 187:
  
 Vous pouvez ensuite fermer l'outils gitk qui permet de voir les changements entre les différentes versions. Vous pouvez ensuite fermer l'outils gitk qui permet de voir les changements entre les différentes versions.
-  +</ifauth>  
      
  
Ligne 134: Ligne 193:
 ===Structure du projet=== ===Structure du projet===
    
-Le projet est constitué des fichiers sources d'une application graphique sous QT. Votre code sera saisi dans l'implémentation de la fenêtre principale, à l'intérieur du fichier Sources->receiver.c. <color #FF0000>. Les définitions des méthodes et objets de la fenêtre principale sont quant à elles faites dans le fichier receiver.h. Ce sont les deux seuls fichiers que vous aurez à modifier jusqu'à nouvel ordre. </color> Pour information le projet contient également: +Le projet est constitué des fichiers sources d'une application graphique sous QT. Votre code sera saisi dans l'implémentation de la fenêtre principale, à l'intérieur du fichier Sources->receiver.cpp. <color #FF0000>. Les définitions des méthodes et objets de la fenêtre principale sont quant à elles faites dans le fichier receiver.h. Ce sont les deux seuls fichiers que vous aurez à modifier jusqu'à nouvel ordre. </color> Pour information le projet contient également: 
    .pro      fichier décrivant le projet QT, les règles de compilation, les librairies à utiliser etc...    .pro      fichier décrivant le projet QT, les règles de compilation, les librairies à utiliser etc...
   main.cpp       fichier décrivant le programme principal, qui se contente de lancer la fenêtre principale.   main.cpp       fichier décrivant le programme principal, qui se contente de lancer la fenêtre principale.
Ligne 158: Ligne 217:
   - Définir une variable de type **QHostAddress**  (par exemple **destIP** )   - Définir une variable de type **QHostAddress**  (par exemple **destIP** )
   - Appeler la méthode **bool setAddress(char * addrIP)** de l'objet  **destIP** pour régler l'ip du dispositif avec lequel communiquer à l'aide d'une chaine de caractères **addrIP**.   - Appeler la méthode **bool setAddress(char * addrIP)** de l'objet  **destIP** pour régler l'ip du dispositif avec lequel communiquer à l'aide d'une chaine de caractères **addrIP**.
-  - Définir une variable de type **quint16**  pour coder le numéro du port UDP destination (par exemple DestPort=4567;)+  - Définir une variable de type **quint16**  pour coder le numéro du port UDP destination (par exemple destPort=4567;)
   - Définir un tableau de caractères (par exemple **chaine[]**) et générer la chaîne pour piloter les leds (par exemple avec la fonction sprintf comme pour le PIC)   - Définir un tableau de caractères (par exemple **chaine[]**) et générer la chaîne pour piloter les leds (par exemple avec la fonction sprintf comme pour le PIC)
   - Pour émettre la chaîne **chaine** sur la socket, appeler la méthode **qint64 writeDatagram(const char * chaine, qint64 len, const QHostAddress host, quint16 port);** de l'objet **udpSocket**. Pour le paramètre **len** utiliser la valeur **(qint64)strlen(chaine)+1** (car on envoie le contenu de la chaine + le caractère \0 terminateur de chaine.   - Pour émettre la chaîne **chaine** sur la socket, appeler la méthode **qint64 writeDatagram(const char * chaine, qint64 len, const QHostAddress host, quint16 port);** de l'objet **udpSocket**. Pour le paramètre **len** utiliser la valeur **(qint64)strlen(chaine)+1** (car on envoie le contenu de la chaine + le caractère \0 terminateur de chaine.
Ligne 167: Ligne 226:
      
  
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant   cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant
Ligne 203: Ligne 262:
  
      
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant   cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant
Ligne 229: Ligne 288:
  
        
-{{http://homepages.laas.fr/bvandepo/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:+{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} Une fois les réponses validées, mettre à jour le suivi de version en saisissant dans une console:
   echo commence   echo commence
   cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant   cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant
Ligne 248: Ligne 307:
   - les définitions des boutons pour les leds 1 et 2   - les définitions des boutons pour les leds 1 et 2
   - les méthodes associées  dans la partie private slots:    - les méthodes associées  dans la partie private slots: 
-Dans le fichier receiver.c, implémenter les fonctions correspondant à l'appui sur les boutons (appel de **sendUDP(i)** ) et ajouter dans la méthode constructeur de la fenêtre: +Dans le fichier receiver.cpp, implémenter les fonctions correspondant à l'appui sur les boutons (appel de **sendUDP(i)** ) et ajouter dans la méthode constructeur de la fenêtre:
   - la construction des objets boutons (new)   - la construction des objets boutons (new)
   - la connexion de l'événement « click sur les boutons » au slots correspondants   - la connexion de l'événement « click sur les boutons » au slots correspondants
   - le placement des boutons sur la fenêtre (button1Layout->addWidget...)   - le placement des boutons sur la fenêtre (button1Layout->addWidget...)
 +</ifauth>
 ===Gestion du Timer sur le PC=== ===Gestion du Timer sur le PC===
  
Ligne 260: Ligne 319:
   - Décommenter la création de **commutTimerButton** et de **Timer** ainsi que les implémentations de **void Receiver::commutTimer()** et de **void Receiver::on_timer_Event()**   - Décommenter la création de **commutTimerButton** et de **Timer** ainsi que les implémentations de **void Receiver::commutTimer()** et de **void Receiver::on_timer_Event()**
   - Tester votre application avec Simupic   - Tester votre application avec Simupic
-</ifauth>+ 
 + 
 +{{https://bvdp.inetdoc.net/files/iut/tp_pic/validation.png}} 
tpqt.txt · Dernière modification: 2021/04/14 17:12 de bvandepo