Sommaire. 1 - Objectifs...2. 2 - Présentation de la console Enttec...2. 3 - Travail demandé...6. Annexes...9. 1.1 Présentation... 2 1.2 Schéma...



Documents pareils
Warren PAULUS Robin GODEFROID. C++ - Interface Graphique avec Visual Studio 2010

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Programmation système I Les entrées/sorties

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

TR2 : Technologies de l'internet. Chapitre VII. Serveur DHCP Bootp Protocole, Bail Relais DHCP

Programmation système de commandes en C

Algorithmique et Programmation, IMA

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Les possibilités de paramétrage réseau des logiciels de virtualisation sont les suivantes quant à la connexion réseau :

VoIP et "NAT" VoIP et "NAT" 1/ La Traduction d'adresse réseau. 1/ La traduction d'adresse réseau. 1/ La traduction d'adresse réseau

Date : NOM Prénom : TP n /5 DISTANT : CONCEPTS ET DIFFÉRENCES

Introduction au langage C

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Chapitre 6 -TP : Support Réseau des Accès Utilisateurs

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

Programmation C. Apprendre à développer des programmes simples dans le langage C

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Programmation système en C/C++

TP Réseau 1A DHCP Réseau routé simple

Administration Réseau sous Ubuntu SERVER Serveur DHCP

Sélection du contrôleur

Modéliser ses fenêtres avec Qt Designer

L3 informatique Réseaux : Configuration d une interface réseau

OS Réseaux et Programmation Système - C5

Cours Langage C/C++ Programmation modulaire

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Contrôle d accès UTIL TP N 1 découverte

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Plan. École Supérieure d Économie Électronique. Plan. Chap 9: Composants et systèmes de sécurité. Rhouma Rhouma. 21 Juillet 2014

Cours LG : Administration de réseaux et sécurité informatique. Dans les Paramètres Système onglet Processeur, le bouton "Activer PAE/NX"

Cours admin 200x serveur : DNS et Netbios

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Arguments d un programme

Programmation C++ (débutant)/instructions for, while et do...while

Date : 08/02/12 SISR1 tp.topologie.reseau.wan Durée : 2 h

(Fig. 1 :assistant connexion Internet)

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Présentation du modèle OSI(Open Systems Interconnection)

ETI/Domo. Français. ETI-Domo Config FR

NOTICE DE EOBD-Facile Pour Android

Contrôleur de communications réseau. Guide de configuration rapide DN

Tutorial et Guide TeamViewer

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Le langage C. Séance n 4

Tutorial Terminal Server sous

Exercice sur les Dockers

TP réseau Les réseaux virtuels (VLAN) Le but de se TP est de segmenter le réseau d'une petite entreprise dont le câblage est figé à l'aide de VLAN.

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

Guide d utilisation. Table des matières. Mutualisé : guide utilisation FileZilla

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Le prototype de la fonction main()

AWS avancé. Surveiller votre utilisation d EC2

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Vous y trouverez notamment les dernières versions Windows, MAC OS X et Linux de Thunderbird.

Assistance à distance sous Windows

VoIP Sniffing IHSEN BEN SALAH (GL 3) MAHMOUD MAHDI (GL 3) MARIEM JBELI (RT 2) SAFA GALLAH (RT 3) SALAH KHEMIRI (RT 3) YOUSSEF BEN DHIAF (GL 3)

ASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe :

Partie 2 (Service de téléphonie simple) :

Master d'informatique 1ère année. Réseaux et protocoles. Architecture : les bases

Exemples et tutoriels Version 7.5. Tutoriel de l'exemple Recrutement de personnel pour IBM Process Designer

Réseaux TP4 Voix sur IP et Qualité de service. Partie 1. Mise en place du réseau et vérification de la connectivité

Programme formation pfsense Mars 2011 Cript Bretagne

Travaux Pratiques Introduction aux réseaux IP

TP7. DHCP. 1 Comportement en présence d un serveur unique

Backup Exec 2014 Management Pack for Microsoft SCOM. - Guide de l'utilisateur

Fonctionnement Kiwi Syslog + WhatsUP Gold

Le Multicast. A Guyancourt le

Compression de Données - Algorithme de Huffman Document de Conception

Vade mecum installation et configuration d une machine virtuelle V5.1.0

Couche application. La couche application est la plus élevée du modèle de référence.

Chap.9: SNMP: Simple Network Management Protocol

Réseaux et protocoles Damien Nouvel

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

Programmation sous QT

Tout savoir sur le clavier

Exchange Server 2010 Exploitation d'une plateforme de messagerie

Connexion à distance. Pour configurer les automates Beckhoff via un PC de programmation VERSION : 1.0 / PH

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

Spécialité Professionnelle. Patrick Boulandet

Petit guide d'installation de l'option de connexion réseau

GENERALITES. COURS TCP/IP Niveau 1

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Internet Le service de noms - DNS

Guide de l'utilisateur de l'utilitaire d'installation de caméra Avigilon

Stockage du fichier dans une table mysql:

Remote Method Invocation Les classes implémentant Serializable

Dongle WiFi de QUMI Manuel de l utilisateur

Le Protocole DHCP. Définition. Références. Fonctionnement. Les baux

TP Analyse de flux et outils Netflow : Nfdump et Nfsen

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Tutoriel code::blocks

SECURIDAY 2013 Cyber War

Communication par sockets

Quelques éléments de compilation en C et makefiles

Travaux Pratiques Introduction aux réseaux IP

Transcription:

Sommaire 1 - Objectifs...2 1.1 Présentation... 2 1.2 Schéma... 2 2 - Présentation de la console Enttec...2 2.1 Caractéristiques... 2 2.2 Protocoles... 2 2.3 Capture de trame réseau...3 2. Décodage de trame réseau...4 2.3 Affectation des touches... 5 3 - Travail demandé...6 3.1 Sujet... 6 3.2 Diagramme de classe... 7 3.3 Diagramme de séquence...8 Annexes...9 Fichier projet Qt... 9 Fichier main.cpp... 9 Exemple... 9 Console logicielle... 10 1/10

1 - Objectifs 1.1 Présentation Il est demandé de réaliser un programme (serveur) capable de communiquer avec un équipement professionnel (client). La contrainte de développement fixée pour ce TP est d'utiliser le support socket fourni par Qt. On ne prévoit pas d'ihm GUI pour ce serveur. L'équipement professionnel choisi sera une console Enttec. Une console logicielle (qui simule une console Enttec) est fournie afin d'assurer des tests de communication pour le programme serveur à réaliser (cf. Annexe). 1.2 Schéma 2 - Présentation de la console Enttec La console Enttec playback est équipée d'une carte réseau et elle est capable de communiquer en UDP/IP. 2.1 Caractéristiques ADRESSE IP : 10.7.89.95 PORT : 3330 MASQUE : 255.0.0.0 ADRESSE BROADCAST : 255.255.255.255 2.2 Protocoles La console Enttec utilise un protocole propriétaire WING comme protocole de couche Application. Celui est décrit précisément dans le fichier wing_api_spec.pdf. Il s'appuie sur deux types de messages : le message de type WODD est envoyé par la console à chaque appui sur une touche ou une modification des contrôle de type slider. Il contient l'état de l'ensemble des touches de la console. le message de type WIDD est reçu par la console pour commander les 2 afficheurs 7 segments. Il contient la valeur à afficher. 2/10

Le transport des messages WODD/WIDD est assuré par le protocole UDP. Le modèle DoD est donc le suivant : Application Transport Réseau Interface WODD/WIDD UDP IP Ethernet_II 2.3 Capture de trame réseau Voici un exemple de trame envoyée par la console Enttec lors de l'appui sur une touche : 3/10

2. Décodage de trame réseau Le décodage de cette trame par wireshark : En résumé, la console Enttec émet ses datagrammes en broadcast IP (adresse destination 255.255.255.255) vers le port UDP 3330. Son port d'écoute pour la réception de datagramme est aussi le 3330. Remarque : les 28 octets de données sont «décodables» à partir de la documentation Enttec dans le fichier wing_api_spec.pdf. 4/10

2.3 Affectation des touches Les touches de la consoles Enttec sont identifiables de la façon suivante : Les curseurs (en bas sur la figure ci-dessus) sont appelés des faders. Ils sont numérotés de 0 à 9, de gauche à droite. Ils renvoient une valeur sur 8 bits suivant la position du curseur. 5/10

3 - Travail demandé 3.1 Sujet Le programme serveur à réaliser en Qt/C++ doit être capable : de recevoir et de décoder (au moins afficher) des messages WODD d'envoyer des messages WIDD On peut utiliser soit la console Enttec soit le programme simulateurenttecudp fourni. On utilise QUdpSocket pour dialoguer avec la console. La fabrication de l'application serveur se fera de la manière suivante : $ qmake $ make Le code source de la fonction principale main() est fourni en Annexe. Il vous faut respecter le fichier main.cpp, le diagramme de classe et le diagramme de séquence partiels fournis ci-après. Documentation Qt pour QUdpSocket : http://developer.qt.nokia.com/doc/qt-4.7/qudpsocket.html Quelques informations complémentaires sur la classe DialogueConsole à réaliser : Le constructeur de la classe DialogueConsole doit assurer la création de la socket (udpsocket) et son attachement sur le port 3330 des interfaces locales. La méthode demarrer() (appelée à partir de la fonction main()) réalise la connexion du signal readyread() au slot ReceptionnerDatagrammes() (si l'attachement bind() a évidemment réussi). La méthode VerifierDatagramme() permet de s'assurer de la validité du datagramme reçu. Pour cela, on vérifiera que le type du message est bien 'WODD' et que sa taille correspond à celle fournie par le protocole WING. Cette méthode retourne 1 si le datagramme est valide sinon 0. La méthode TraiterDatagramme() doit assurer l'affichage simple des données reçues (voir exemple fourni en Annexe) et de la détection des touches PAGE_UP ou PAGE_DOWN. De plus, elle retournera 1 si une touche PAGE_UP a été appuyée, 2 si c'est la touche PAGE_DOWN ou 0 si aucun appui sur ces deux touches. La méthode EnvoyerDatagramme() permet l'envoi d'un message de type 'WIDD' vers la console. Elle est invoquée si une touche PAGE_UP ou PAGE_DOWN a été appuyée. Le message contiendra la valeur qui permettra d'incrémenter ou décrémenter l'affichage sur la console. 6/10

La méthode ReceptionnerDatagrammes() assure la réception UDP. Pour cela, elle réalise un boucle d'attente sur la présence de données dans la socket. Son pseudo code à compléter est le suivant : // Retourne vrai si au moins un datagramme est en attente d'être lu while (udpsocket >haspendingdatagrams()) { QByteArray donneesdatagramme; // Fixe la taille du tableau au nombre d'octets reçus en attente // cf. pendingdatagramsize() // Lit le datagramme en attente cf. readdatagram() } // Vérifie la validité du datagramme etat = VerifierDatagramme(donneesDatagramme.data(), nboctets); if(etat == 1) { touche = TraiterDatagramme(donneesDatagramme.data(), donneesdatagramme.size()); if(touche > 0) // Envoie un datagramme avec un message WIDD } else { emit terminer(); /* sinon on quitte! */ } 3.2 Diagramme de classe Remarque : diagramme de classe partiel à compléter si nécessaire. 7/10

3.3 Diagramme de séquence Remarque : diagramme de séquence partiel à compléter si nécessaire. 8/10

Annexes Fichier projet Qt Le fichier.pro sera le suivant : TEMPLATE = app TARGET = serveurudp DEPENDPATH +=. INCLUDEPATH +=. QT += network HEADERS += DialogueConsole.h SOURCES += main.cpp DialogueConsole.cpp Fichier main.cpp Le code source du fichier main.cpp est le suivant : #include <QApplication> #include "DialogueConsole.h" int main(int argc, char *argv[]) { int ret = 0; DialogueConsole *dialogueconsole; QApplication app(argc, argv); dialogueconsole = new DialogueConsole(); dialogueconsole >demarrer(); } ret = app.exec(); delete dialogueconsole; return ret; Exemple Voici la sortie «écran» d'un programme serveur d'exemple : <DialogueConsole.cpp:DialogueConsole:23> socket UDP sur le port 3330 <127.0.0.1:3331> datagramme de 28 octet(s) reçu(s) WODD 0x10 0x01 0xFF 0xFF 0xFF 0xFF 0xFF 0xFD 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 <127.0.0.1:3331> datagramme de 28 octet(s) reçu(s) WODD 0x10 0x01 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 <127.0.0.1:3331> datagramme de 1 octet(s) reçu(s) : INVALIDE! 9/10

Console logicielle Deux programmes de test sont fournis pour simuler la console Enttec : communicationenttec.c C'est un client UDP qui permet le dialogue avec la console Enttec en gérant les deux types de messages : WODD et WIDD. Pour quitter ce programme, il faut appuyer sur le touche BACK. Les touches PAGE_UP et PAGE_DOWN permettent la commande de l'afficheur 7 segments (valeur comprise entre 0 et 99). Sinon, le programme affiche les états des touches et faders reçus dans un message de type WODD. Compilation : gcc communicationenttec.c o communicationenttec simulateurenttecudp.c Ce programme (non terminé) permet de simuler une console Enttec dans un mode très simplifié. Les touches KEY_0 à KEY_7 sont remplacés par les touches azertyui du clavier. La touche q permet de quitter le programme (en envoyant un datagramme UDP non valide). Compilation : gcc simulateurenttecudp.c o simulateurenttecudp 10/10