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
tpqt [2018/05/22 17:52]
bvandepo
tpqt [2020/04/02 14:05]
bvandepo
Ligne 13: Ligne 13:
 </​color>​ </​color>​
  
-Polycopié ​du courshttp://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_pic/cours_preparation_pic_qt_six.pdf+<color red> 
 +Si vous êtes en salle Chez Vous car confiné à cause du coronavirus,​ se connecter (en cliquant en haut à droite sur s'​identifier) en tant que  ​utilisateur=app,​ mot de passe=app 
 +</color>
  
-et:   {{http://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_qt/​coursPOO2015.pdf}}+ 
 + 
 +Polycopié du cours: https://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_pic/​cours_preparation_pic_qt.pdf 
 + 
 +et:   {{https://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_qt/​cours_POO_intro9_2019.pdf}}
  
  
Ligne 46: Ligne 52:
 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: http://​homepages.laas.fr/​bvandepo/​files/​iut/​td_fifo/​install_qt5_windows/​QTbroadcastreceiveretudiantEtBinairesWindowsQT5.zip
 +
 +</​ifauth>​
 +
 +<ifauth @au,​@en> ​  
 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 ~/
Ligne 54: Ligne 66:
   ./​testenlocal.sh  ​   ./​testenlocal.sh  ​
   echo '​fini'​   echo '​fini'​
 +</​ifauth>​
 +
  
  
Ligne 75: Ligne 89:
 </​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> ​ 
 ===Utilisation de simupic=== ===Utilisation de simupic===
 Saisir dans la console: Saisir dans la console:
   cd ~/binaries   cd ~/binaries
   ./​simupic ​ &    ​   ./​simupic ​ &    ​
- +</​ifauth> ​
  
  
Ligne 96: Ligne 128:
  
 <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>  ​
   echo commence   echo commence
   cd ~/   cd ~/
Ligne 106: Ligne 147:
   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
-Cliquer sur Configurer le projet. +   
- +<color red> ​  
- +Important: COCHER la configuration DEBUG  puis Cliquer sur Configurer le projet. 
 +</​color>​ 
 +</​ifauth>​
  
  
 +<ifauth @au,​@en>  ​
 ==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 126: Ligne 172:
  
 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 154: Ligne 200:
  
 Afin que l'​application à développer sur PC soit capable d'​émettre les datagrammes pour piloter la carte PIC, il faut implémenter une méthode ** void Receiver::​sendUDP(int i)**, (i code le numéro de la led à allumer, donc le bouton ​ pressé de l'​application sur le PC). Cette méthode devra faire les actions suivantes: Afin que l'​application à développer sur PC soit capable d'​émettre les datagrammes pour piloter la carte PIC, il faut implémenter une méthode ** void Receiver::​sendUDP(int i)**, (i code le numéro de la led à allumer, donc le bouton ​ pressé de l'​application sur le PC). Cette méthode devra faire les actions suivantes:
-  - 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 * IP)** de l'​objet ​ **DestIP** pour régler l'ip du dispositif avec lequel communiquer. +  - 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.
   ​   ​
-Pour que la méthode **void Receiver::​sendUDP(int i)** soit appelée lorsque l'​utilisateur presse ​le bouton 0vous devrez appeler **sendUDP(0);​** dans la méthode **void Receiver::​sendUDP0();​** qui est une fonction associée au signal "click de la souris"​ sur le bouton ​0. +La méthode **void Receiver::​sendUDP(int i)** est appelée lorsque l'​utilisateur presse ​un des boutons, le paramètre i codant le numéro du bouton. ​
- +
-Faire de même pour les méthodes **sendUDP1** et **sendUDP2** afin d'​indiquer au programme ce qu'il doit faire en cas d'​appui sur les boutons 1 et 2.+
  
 Tester que l'​appui sur le bouton i commute bien la led i du simulateur. Tester que l'​appui sur le bouton i commute bien la led i du simulateur.
Ligne 198: Ligne 242:
   - Utiliser la fonction sscanf pour décoder le datagramme reçu **int sscanf(char *chaine, const char * format, …)**   - Utiliser la fonction sscanf pour décoder le datagramme reçu **int sscanf(char *chaine, const char * format, …)**
   - Régler les valeurs de variables codant l'​état des boutons (b1,b2,b3)   - Régler les valeurs de variables codant l'​état des boutons (b1,b2,b3)
-  - Régler les afficheurs de la fenêtre (sw1,​sw2,​sw3) en appelant la méthode **void setChecked(bool);​** de chacun des trois objets sw1 à 3 +  - Régler les afficheurs de la fenêtre (sw1,​sw2,​sw3) en appelant la méthode **void setChecked(bool);​** de chacun des trois objets sw1 à 3 . Appeler également la méthode setText(char * chaine) de l'​objet statusLabel pour afficher les caractères ASCII reçus.
    
 Tester que l'​appui sur le bouton i dans l'​application simupic est bien répercuté sur votre application. Tester que l'​appui sur le bouton i dans l'​application simupic est bien répercuté sur votre application.
Ligne 252: Ligne 296:
   - 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 304:
   - 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>+ 
 + 
 +{{http://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_pic/​validation.png}} 
tpqt.txt · Dernière modification: 2020/04/02 14:05 par bvandepo