Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
tpqt [2018/03/15 13:34] bvandepo |
tpqt [2019/04/11 17:14] 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 106: | Ligne 106: | ||
cd QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant/ | cd QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant/ | ||
rm broadcastreceiver.pro.user | rm broadcastreceiver.pro.user | ||
+ | qmake-qt4 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> | ||
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 **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 0, vous 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 170: | Ligne 171: | ||
cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant | cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant | ||
git commit -a -m'emission' | git commit -a -m'emission' | ||
- | gitk | + | gitk & |
echo fini | echo fini | ||
Ligne 197: | 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. | ||
Ligne 206: | Ligne 207: | ||
cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant | cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant | ||
git commit -a -m'reception' | git commit -a -m'reception' | ||
- | gitk | + | gitk & |
echo fini | echo fini | ||
| | ||
Ligne 232: | Ligne 233: | ||
cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant | cd ~/QTbroadcastreceiveretudiantAU2ET3/QTbroadcastreceiveretudiant | ||
git commit -a -m'avec carte pic' | git commit -a -m'avec carte pic' | ||
- | gitk | + | gitk & |
echo fini | echo fini | ||