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/03/08 14:04]
bvandepo
tpqt [2019/04/11 17:16] (Version actuelle)
bvandepo
Ligne 13: Ligne 13:
 </​color>​ </​color>​
  
-Polycopié du cours: ​http://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_pic/​cours_preparation_pic_qt_six.pdf+Polycopié du cours: ​https://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_pic/​cours_preparation_pic_qt_six.pdf
  
-et:   {{http://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_qt/​coursPOO2015.pdf}}+et:   {{https://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_qt/​cours_POO_intro9_2019.pdf}}
  
  
Ligne 79: Ligne 79:
 Saisir dans la console: Saisir dans la console:
   cd ~/binaries   cd ~/binaries
-  ./​simupic ​     +  ./​simupic ​ & ​   ​
    
  
Ligne 106: Ligne 106:
   cd QTbroadcastreceiveretudiantAU2ET3/​QTbroadcastreceiveretudiant/​   cd QTbroadcastreceiveretudiantAU2ET3/​QTbroadcastreceiveretudiant/​
   rm broadcastreceiver.pro.user   rm broadcastreceiver.pro.user
-  qtcreator broadcastreceiver.pro ​+  ​qmake-qt4 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>​
  
  
Ligne 121: Ligne 124:
   git add broadcastreceiver.pro ​ dialog.ui ​ main.cpp ​ receiver.cpp ​ receiver.h   git add broadcastreceiver.pro ​ dialog.ui ​ main.cpp ​ receiver.cpp ​ receiver.h
   git commit -m'​initial version'​   git commit -m'​initial version'​
-  gitk +  gitk &
   echo fini   echo fini
  
Ligne 153: Ligne 156:
  
 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 sur la socket, appeler la méthode **qint64 writeDatagram(const char *data, qint64 len, const QHostAddress host, quint16 port);** de l'​objet udpSocket. ​NB: il faut caster (convertir le type de) la chaîne en  (const char *)  et  pour le paramètre len utiliser (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.
   ​   ​
-{{http://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_pic/​validation.png}} 
  
 +{{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:
 +  echo commence
 +  cd ~/​QTbroadcastreceiveretudiantAU2ET3/​QTbroadcastreceiveretudiant
 +  git commit -a -m'​emission'​
 +  gitk & 
 +  echo fini
  
  
Ligne 182: Ligne 188:
  
 Ainsi la méthode **processPendingDatagrams()** sera automatiquement appelée à la réception d'un datagramme sur le numéro de port choisi. Ainsi la méthode **processPendingDatagrams()** sera automatiquement appelée à la réception d'un datagramme sur le numéro de port choisi.
 + 
  
 ===Implémentation de  la méthode de réception=== ===Implémentation de  la méthode de réception===
Ligne 192: Ligne 198:
   - 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.
  
   ​   ​
-{{http://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_pic/​validation.png}} +{{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: 
 +  echo commence 
 +  cd ~/​QTbroadcastreceiveretudiantAU2ET3/​QTbroadcastreceiveretudiant 
 +  git commit -a -m'​reception'​ 
 +  gitk &  
 +  echo fini 
 +  ​
  
  
Ligne 217: Ligne 228:
   - Repérer les champs correspondants aux différentes couches réseau.   - Repérer les champs correspondants aux différentes couches réseau.
  
-  ​ +    
-{{http://​homepages.laas.fr/​bvandepo/​files/​iut/​tp_pic/​validation.png}} +{{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: 
 +  echo commence 
 +  cd ~/​QTbroadcastreceiveretudiantAU2ET3/​QTbroadcastreceiveretudiant 
 +  git commit -a -m'​avec carte pic' 
 +  gitk & 
 +  echo fini
  
  
tpqt.1520514252.txt.gz · Dernière modification: 2018/03/08 14:04 par bvandepo