Jc/md/lp-01/05Essai ligne série COM1 : corrigé1 Essai ligne série CEPC Application écho sur COM1 Présentation.

Slides:



Advertisements
Présentations similaires
Les pronoms compléments
Advertisements



PHP5 its a kind of magic. Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le.
Relative pronouns Relative pronouns are used as replacements for a repeated noun or pronoun in a subordinate clause. TWO SENTENCES: I am looking for my.
(Nom du fichier) - D1 - 01/03/2000 FTR&D/VERIMAG TAXYS : a tool for the Development and Verification of RT Systems a joint project between France Telecom.
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
Inforoute Santé du Canada Les défis de linteropérabilité en e-santé Mike Sheridan, Chef de lexploitation 19 mai 2006.
OTB Analog module: Input configuration with TSX PREMIUM (TSXCPP110)
Réseau des Tribunaux référents Network of Pilot Courts 5. Quels indicateurs pour mesurer la qualité de la justice? Which indicators for measuring the quality.
PILOTE - Sous Projet PILOTE SOUS-PROJET 5 Cyril Carrez, Elie Najm, Alexandre Tauveron.
Symfony Formulaires.
Revision.
Driver de port parallèle
Jc/md/lp-01/06Threads1. jc/md/lp-01/06Threads2 Objectif du chapitre Génération dune application avec thread –Création dun thread –Identification dun thread.
jc/md/lp-01/05IT CE4.2 : cours1 Traitement des interruptions Cours.
Jc/md/lp-01/06Applications1 Émulateur. jc/md/lp-01/06Applications2 Objectif du chapitre Génération dapplications –WCE Console Application –WCE Application.
Jc/md/lp-01/05Essai ligne série COM1 : présentation1 Essai ligne série CEPC Application écho sur COM1 Présentation.
Jc/md/lp-01/05gestion mémoire : corrigé1 Gestion mémoire Corrigé
Jc/md/lp-01/05Communication inter processus corrigé1 Communication inter process Corrigé
Jc/md/lp-01/06Kernel Tracker1 Debugging Kernel Tracker.
Jc/md/lp-01/05Principe des drivers1 Généralités sur les drivers Présentation.
Jc/md/lp-01/05TTY_IT : corrigé1 TTY_IT Corrigé. jc/md/lp-01/05TTY_IT : corrigé2 Objectif du chapitre Proposer une solution pour les exercices suggérés.
Driver UART en polling : corrigé
Jc/md/lp-01/05Driver élémentaire : corrigé1 Driver élémentaire Émulateur Corrigé
Jc/md/lp-01/05Trains_presentation1 Threads et Synchronisation Application train Présentation.
Jc/md/lp-01/05Driver élémentaire : présentation1 Driver élémentaire Émulateur Présentation.
Jc/md/lp-01/05Trains_corrigé1 Threads et Synchronisation Application train Corrigé
5 Contractions Les normes: Communication 1.1 – Understanding the spoken and written language Comparisons 4.1 – Understanding the nature of language through.
Les pronoms compléments: le/la/les; lui/leur. You already know how to use direct object pronouns: Je mange le sandwich = Je le mange Il aime les films.
XGKS et XUV XGKS and XUV 25/10/2003 V1.0 Conception d une application sans contact How to design a RFID application Comment raccorder un système OSIVIEW.
What does en mean? The object pronoun en usually means some or of them.
Y and en Two little words with a lot of meaning. y.
Chapitre 5 Structure. Aller The verb aller (to go) is an irregular verb. Study the following forms. ALLER vais vas j tu il/elle/onva nous allons vous.
WALT: how to use the time when talking about your timetable WILF: to identify the correct time in French when reading & listening (level 3) DAYS OF THE.
10 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux déclencheurs.
Les pluriels Sometimes you cant just take one!. Les articles… There are « DEUX » articles that can show that something is plural. Les = the Les ciseaux,
TM.
En translates to some, any, of it, or of them.. Tu veux du yaourt? Non, merci, je nen veux pas.
DELF Le 12 au 15 avril POURQUOI DELF? Official French language diplomas (DELF-DALF) - Why take the DELF and the DALF ? The Diplôme dEtudes en Langue.
Mardi 20 Novembre 2012 Recap I can
Eri Prasetyo Universitas Gunadarma
Magnets fiche projet / project sheet IAFACTORY THE MAGNETIC FACTORY magnets. IAFACTORY | conseil en architecture de linformation | |
TortoiseSVN N°. Subversion : pour quoi faire ? Avoir un espace de stockage commun – Tous les étudiants du SIGLIS ont un espace svn commun Partager vos.
5.1 URDL22005 Systèmes dexploitation Threads Vue dEnsemble Modèles de Multithreading Problèmes des Threads Pthreads Threads Windows XP Threads Linux Threads.
GRAMMAIRE Révision des verbes réflexives Les verbes et grammaire Fill in the phrases with the missing words: 1.Bonjour, comment vous sentez-_______?
Laboratoire de Bioinformatique des Génomes et des Réseaux Université Libre de Bruxelles, Belgique Introduction Statistics.
PLSQL ORACLE 8i Connecter VB à BD Oracle Les collections Question de révision Les blocs anonymes Les triggers REVISION Par : Joël Huot.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Contraintes et Triggers Chapitre 5,
Miguel Garzon CrUise Lab - SITE. Introduction Data Types and Sizes Constants Logic Operators Type conversions Example.
14 mai 2003TSTG Barcelona Meeting - Gilbert1 TSTG General Meeting: Configure and Makefile issues Gilbert Grosdidier LAL-Orsay/IN2P3/CNRS & LCG.
IFT 6800 Atelier en Technologies d’information
OpenCV: Introduction au Traitement d’Images et Vidéo
CSI1502 Principes fondamentaux en conception des logiciels Chapter 8: Gestion des exceptions.
Donnez l’heure “Time”… it’s a ticking!.
Les fichiers texte en C++
Différencier: NOMBRE PREMIER vs. NOMBRE COMPOSÉ
Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.
Quelle heure est-il? What time is it ?.
Pour commencer … Read the statements below and put them into three columns depending on whether they are written in the past, present or future tense.
Français 2: jeudi, le 9 mai, 2013 Activités: Texte p Structure: les pronoms lui, leur Cahier BV p. 141 Activités 7 et 8 Interro 3 formatif Worksheets.
Argc et argv Utilisation des paramètres de la ligne de commande.
Sif Cours 9 n 7. Communication série u Concepts généraux u Programmation des ports séries n Le matériel u Chapitre 10 CSA u Article dans MSDN: F.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
Pthread Ordonnancement. #define _MULTI_THREADED #include #ifndef _CHECK_H #define _CHECK_H /* headers used by a majority of the example program */ #include.
Nicolas Ribot Introduction aux triggers Nicolas Ribot - Licence GNU FDL - Version 1.1.
IP Multicast Text available on
Work: ISA8895 Implementation Section: Interoperability Chapter: B2O
- User case - 3D curve length optimization
Transcription de la présentation:

jc/md/lp-01/05Essai ligne série COM1 : corrigé1 Essai ligne série CEPC Application écho sur COM1 Présentation

jc/md/lp-01/05Essai ligne série COM1 : corrigé2 Objectif Utiliser la ligne série de la plate-forme CEPC avec les logiciels fournis en standard par Windows CE Configurer le port série

jc/md/lp-01/05Essai ligne série COM1 : corrigé3 Programme à réaliser Faire un programme décho sur le deuxième port de communication Comme le premier port est pris pour le debugging, le premier port utilisable par une application est le deuxième, traditionnellement appelé COM2. En tant que premier port libre, il va sappeler COM1 dans notre application.

jc/md/lp-01/05Essai ligne série COM1 : corrigé4 Plan de travail Faire une plate-forme vierge : z_COM Préparation de lapplication ESSAI_COM1 –Ouverture dun port série –Modification de la configuration du port –Installation des événements de communication –Écriture dune boucle dessai –Fermeture de lapplication

jc/md/lp-01/05Essai ligne série COM1 : corrigé5 File New Project or File

jc/md/lp-01/05Essai ligne série COM1 : corrigé6 Application ESSAI_COM1 (1) Nommer Valider Choisir

jc/md/lp-01/05Essai ligne série COM1 : corrigé7 Application ESSAI_COM1 (2) Choisir Valider

jc/md/lp-01/05Essai ligne série COM1 : corrigé8 Après création du projet

jc/md/lp-01/05Essai ligne série COM1 : corrigé9 Configuration Platform Settings Valider Choisir

jc/md/lp-01/05Essai ligne série COM1 : corrigé10 Utilisation du port série standard Ouvrir le port série par la fonction CreateFile et lui attribuer un nom, par exemple COM1 Le port est configuré à partir dinformations regroupées dans une structure nommée DCB DCB est définie par un typedef dans winbase.h Constantes définies par des #define dans winbase.h Accès aux paramètres du port –Lecture : GetCommState –Écriture : SetCommState

jc/md/lp-01/05Essai ligne série COM1 : corrigé11 Constantes (1) // DTR Control Flow Values. #define DTR_CONTROL_DISABLE 0x00 #define DTR_CONTROL_ENABLE 0x01 #define DTR_CONTROL_HANDSHAKE 0x02 // RTS Control Flow Values #define RTS_CONTROL_DISABLE 0x00 #define RTS_CONTROL_ENABLE 0x01 #define RTS_CONTROL_HANDSHAKE 0x02 #define RTS_CONTROL_TOGGLE 0x03

jc/md/lp-01/05Essai ligne série COM1 : corrigé12 Constantes (2) #define NOPARITY0 #define ODDPARITY 1 #define EVENPARITY 2 #define MARKPARITY 3 #define SPACEPARITY4 #define ONESTOPBIT0 #define ONE5STOPBITS 1 #define TWOSTOPBITS 2 #define IGNORE 0 // Ignore signal

jc/md/lp-01/05Essai ligne série COM1 : corrigé13 DCB (1) typedef struct _DCB{ DWORD DCBlength; // longueur de la structure DWORD BaudRate; // vitesse de transmission DWORD fBinary:1; // TRUE: no EOF DWORD fParity:1; // FALSE: no parity DWORD fOutxCtsFlow:1; // FALSE: no CTS DWORD fOutxDsrFlow:1; // FALSE: no DSR DWORD fDtrControl:2; // DTR_CONTROL_DISABLE DWORD fDsrSensitivity:1; // FALSE: no DSR sensitive DWORD fTXContinueOnXoff:1; // TRUE: Continue // TX when Xoff sent DWORD fOutX:1; // FALSE: no XON/XOFF

jc/md/lp-01/05Essai ligne série COM1 : corrigé14 DCB (2) DWORD fInX:1; // FALSE: no XON/XOFF DWORD fErrorChar:1; // FALSE: no error replacement DWORD fNull:1;// FALSE: no null bytes discarded DWORD fRtsControl:2; // RTS_CONTROL_DISABLE DWORD fAbortOnError:1; // FALSE: no error abort DWORD fDummy2:17; // Reserved WORD wReserved; // must be 0 WORD XonLim; // Flow control default value WORD XoffLim; // Flow control default value BYTE ByteSize; // 8 bits BYTE Parity; // 0: non parity BYTE StopBits; // 0: one stop bit

jc/md/lp-01/05Essai ligne série COM1 : corrigé15 DCB (3) char XonChar; // Default value char XoffChar; // Default value char ErrorChar; // Default value char EofChar; // Default value char EvtChar; // Default value WORD wReserved1; // Default value }DCB, *LPDCB;

jc/md/lp-01/05Essai ligne série COM1 : corrigé16 Lecture de la configuration du port BOOL GetCommState( HANDLE hFile, LPDCB lpDCB ); Parameters hFile [in] Handle to the communication device. The CreateFile function returns this handle.CreateFile lpDCB [out] Long pointer to the DCB structure in which the control settings data is returned. Return Values Nonzero indicates success. Zero indicates failure. To obtain extended error data, call the GetLastError function.GetLastError

jc/md/lp-01/05Essai ligne série COM1 : corrigé17 Écriture de la configuration du port BOOL SetCommState( HANDLE hFile, LPDCB lpDCB ); Parameters hFile [in] Handle to the communications device. The CreateFile function returns this handle.CreateFile lpDCB [in] Long pointer to a DCB structure containing the configuration information for the specified communications device. Return Values Nonzero indicates success. Zero indicates failure. To obtain extended error information, call the GetLastError function.GetLastError

jc/md/lp-01/05Essai ligne série COM1 : corrigé18 Écriture de données (1) BOOL WriteFile (HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped); Parameters hFile [in] Handle to the file to be written to. The file handle must have been created with GENERIC_WRITE access to the file. lpBuffer [in] Pointer to the buffer containing the data to write to the file.

jc/md/lp-01/05Essai ligne série COM1 : corrigé19 Écriture de données (2) nNumberOfBytesToWrite [in] Number of bytes to write to the file. A value of zero specifies a null write operation. A null write operation does not write any bytes but does cause the time stamp to change. WriteFile does not truncate the file. To truncate or extend a file, use the SetEndOfFile function.SetEndOfFile lpNumberOfBytesWritten [out] Pointer to the number of bytes written by this function call. WriteFile sets this value to zero before taking action or checking errors. lpOverlapped [in] Unsupported; set to NULL. Return Values Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.GetLastError

jc/md/lp-01/05Essai ligne série COM1 : corrigé20 Lecture de données (1) BOOL ReadFile (HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ); Parameters hFile [in] Handle to the file to be read. The file handle must have been created with GENERIC_READ access to the file. This parameter cannot be a socket handle. lpBuffer [out] Pointer to the buffer that receives the data read from the file.

jc/md/lp-01/05Essai ligne série COM1 : corrigé21 Lecture de données (2) nNumberOfBytesToRead [in] Number of bytes to be read from the file. lpNumberOfBytesRead [out] Pointer to the number of bytes read. ReadFile sets this value to zero before doing taking action or checking errors. lpOverlapped [in] Unsupported; set to NULL. Return Values Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.GetLastError

jc/md/lp-01/05Essai ligne série COM1 : corrigé22 Événements de communication Des événements « EVENTs » ont été définis pour signaler que quelque chose sest produit : break, signaux MODEM, caractère reçu, transmetteur prêt… La lecture sera en attente de lEVENT caractère reçu : EV_RXCHAR La fonction WaitCommEvent permet dattendre un événement sur le port La fonction SetCommMask permet de spécifier la nature de lévénement attendu

jc/md/lp-01/05Essai ligne série COM1 : corrigé23 Attente dEVENT (1) BOOL WaitCommEvent ( HANDLE hFile, LPDWORD lpEvtMask, LPOVERLAPPED lpOverlapped ); Parameters hFile [in] Handle to the communications device. The CreateFile function returns this handle.CreateFile lpEvtMask [out] Long pointer to a 32-bit variable that receives a mask indicating the events that occurred. If an error occurs, the value is zero; otherwise, it is one or more of the following values. ValueDescription EV_BREAKA break was detected on input. …

jc/md/lp-01/05Essai ligne série COM1 : corrigé24 Attente dEVENT (2) … EV_RXCHARA character was received and placed in the input buffer. … lpOverlapped [in] Ignored; set to NULL. Return Values Nonzero indicates success. Zero indicates failure. To obtain extended error information, call the GetLastError functionGetLastError

jc/md/lp-01/05Essai ligne série COM1 : corrigé25 Choix de lévénement attendu (1) BOOL SetCommMask ( HANDLE hFile, DWORD dwEvtMask ); Parameters hFile [in] Handle to the communications device. The CreateFile function returns this handle.CreateFile dwEvtMask [in] Specifies the events to be enabled and immediately signals any thread waiting on the WaitCommEvent function. A value of zero disables all events.WaitCommEvent The following table shows possible values for this parameter. ValueDescription EV_BREAKA break was detected on input. …

jc/md/lp-01/05Essai ligne série COM1 : corrigé26 Choix de lévénement attendu (2) … EV_RXCHARA character was received and placed in the input buffer. … Return Values Nonzero indicates success. Zero indicates failure. To obtain extended error information, call the GetLastError function.GetLastError

jc/md/lp-01/05Essai ligne série COM1 : corrigé27 Gestion des « Time-out » Les « Time-out » sont configurés à partir dinformations regroupées dans une structure nommée COMMTIMEOUTS COMMMTIMEOUTS définie par un typedef dans winbase.h Accès aux paramètres du port –Lecture : GetCommTimeouts –Écriture : SetCommTimeouts

jc/md/lp-01/05Essai ligne série COM1 : corrigé28 Structure COMMTIMEOUTS typedef struct _COMMTIMEOUTS{ DWORD ReadIntervalTimeout; DWORD ReadTotalTimeoutMultiplier; DWORD ReadTotalTimeoutConstant; DWORD WriteTotalTimeoutMultiplier; DWORD WriteTotalTimeoutConstant; }COMMTIMEOUTS, *LPCOMMTIMEOUTS;

jc/md/lp-01/05Essai ligne série COM1 : corrigé29 Paramètres des Time-out Pour la lecture on limite loverhead en mettant –ReadIntervalTimeout = MAXDWORD; –ReadTotalTimeoutMultiplier = 0; –ReadTotalTimeoutConstant = 0; Pour lécriture on prend une marge de sécurité par rapport a la vitesse de transmission –WriteTotalTimeoutMultiplier = 10; –WriteTotalTimeoutConstant = 1000;

jc/md/lp-01/05Essai ligne série COM1 : corrigé30 Application

jc/md/lp-01/05Essai ligne série COM1 : corrigé31 Programme à réaliser Application qui utilise le port série COM1 Le programme est très simple, il doit : –Écrire un $ avec IOCTL_ PUTC –Attendre la réception dun caractère avec IOCTL_GETC –Envoyer lécho avec IOCTL_PUTC –Boucler jusquà la réception du caractère ESCAPE (0x1B) –Se terminer après la réception de ESCAPE

jc/md/lp-01/05Essai ligne série COM1 : corrigé32 COM1.cpp (1) #include "stdafx.h" int main(int argc,char *argv[],char *envp[]) { // Déclarations et réservations HANDLE hPort; BYTE byte=0; DWORD dwCom,dwBytes; DCB PortDCB; COMMTIMEOUTS CommTimeouts;

jc/md/lp-01/05Essai ligne série COM1 : corrigé33 COM1.cpp (2) // Ouverture du port série hPort=CreateFile(_T("COM1:"),GENERIC_READ| GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); // Traitement de l'erreur if(hPort==INVALID_HANDLE_VALUE) { printf("Erreur lors de l'ouverture du port\n"); return 0; }

jc/md/lp-01/05Essai ligne série COM1 : corrigé34 COM1.cpp (3) // Message de bienvenue printf("Début de ESSAI_COM1.cpp\n"); // Récupération des paramètres du port if(!GetCommState(hPort,&PortDCB)) { CloseHandle(hPort); printf("Erreur lors de GetCommState\n"); return 0; }

jc/md/lp-01/05Essai ligne série COM1 : corrigé35 COM1.cpp (4) // Modifications des paramètres du port PortDCB.BaudRate = 9600; PortDCB.fBinary = TRUE; PortDCB.fParity = FALSE; PortDCB.fOutxCtsFlow = FALSE; PortDCB.fOutxDsrFlow = FALSE; PortDCB.fDtrControl = DTR_CONTROL_DISABLE; PortDCB.fDsrSensitivity = FALSE; PortDCB.fTXContinueOnXoff = TRUE;

jc/md/lp-01/05Essai ligne série COM1 : corrigé36 COM1.cpp (5) PortDCB.fOutX = FALSE; PortDCB.fInX = FALSE; PortDCB.fErrorChar = FALSE; PortDCB.fNull = FALSE; PortDCB.fRtsControl = RTS_CONTROL_DISABLE; PortDCB.fAbortOnError = FALSE; PortDCB.ByteSize = 8; PortDCB.Parity = NOPARITY; PortDCB.StopBits = ONESTOPBIT;

jc/md/lp-01/05Essai ligne série COM1 : corrigé37 COM1.cpp (6) // Écriture des nouveaux paramètres du port if(!SetCommState(hPort,&PortDCB)) { CloseHandle(hPort); printf("Erreur lors de SetCommState\n"); return 0; }

jc/md/lp-01/05Essai ligne série COM1 : corrigé38 COM1.cpp (7) // Lecture des paramètres de time-out if (!GetCommTimeouts(hPort,&CommTimeouts)) { CloseHandle(hPort); printf("Erreur lors de GetCommTimeouts\n"); return 0; } // Modification des paramètres de time-out CommTimeouts.ReadIntervalTimeout = MAXDWORD; CommTimeouts.ReadTotalTimeoutMultiplier = 0;

jc/md/lp-01/05Essai ligne série COM1 : corrigé39 COM1.cpp (8) CommTimeouts.ReadTotalTimeoutConstant = 0; CommTimeouts.WriteTotalTimeoutMultiplier = 10; CommTimeouts.WriteTotalTimeoutConstant = 1000; // Écriture des nouveaux paramètres de time-out if(!SetCommTimeouts(hPort,&CommTimeouts)) { CloseHandle(hPort); printf("Erreur lors de SetCommTimeouts\n"); return 0; }

jc/md/lp-01/05Essai ligne série COM1 : corrigé40 COM1.cpp (9) // Spécification de l'événement attendu if(!SetCommMask(hPort,EV_RXCHAR)) { CloseHandle(hPort); printf("Erreur lors de SetCommMask\n"); return 0; }

jc/md/lp-01/05Essai ligne série COM1 : corrigé41 COM1.cpp (10) // Boucle d'écho while(byte!=0x1B) { // Attente de l'événement if(!WaitCommEvent(hPort,&dwCom,NULL)) { CloseHandle(hPort); printf("Erreur lors de WaitCommEven\n"); return 0; }

jc/md/lp-01/05Essai ligne série COM1 : corrigé42 COM1.cpp (11) // Réarmement de l'événement if(!SetCommMask(hPort,EV_RXCHAR)) { CloseHandle(hPort); printf("Erreur lors de SetCommMask\n"); return 0; }

jc/md/lp-01/05Essai ligne série COM1 : corrigé43 COM1.cpp (12) // Lecture et écho du caractère { ReadFile(hPort,&byte,1,&dwBytes,NULL); WriteFile(hPort,&byte,1,&dwBytes,NULL); } }// Fin while

jc/md/lp-01/05Essai ligne série COM1 : corrigé44 COM1.cpp (13) // Fermeture du handle CloseHandle(hPort); printf("Fin de ESSAI_COM1.cpp\n"); return 0; }// Fin main

jc/md/lp-01/05Essai ligne série COM1 : corrigé45 Test Télécharger le noyau Exécuter lapplication Vérifier le fonctionnement

jc/md/lp-01/05Essai ligne série COM1 : corrigé46 Conclusion Sur un exemple simple, nous avons appris à utiliser des fonctions proposées par Windows CE pour modifier les caractéristiques de fonctionnement dun périphérique –Caractéristiques physiques du port –Caractéristiques des événements associés à la gestion des échanges