La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Jc/md/lp-01/05Essai ligne série COM1 : présentation1 Essai ligne série CEPC Application écho sur COM1 Présentation."— Transcription de la présentation:

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

2 jc/md/lp-01/05Essai ligne série COM1 : présentation2 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

3 jc/md/lp-01/05Essai ligne série COM1 : présentation3 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.

4 jc/md/lp-01/05Essai ligne série COM1 : présentation4 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

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

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

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

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

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

10 jc/md/lp-01/05Essai ligne série COM1 : présentation10 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

11 jc/md/lp-01/05Essai ligne série COM1 : présentation11 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

12 jc/md/lp-01/05Essai ligne série COM1 : présentation12 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

13 jc/md/lp-01/05Essai ligne série COM1 : présentation13 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

14 jc/md/lp-01/05Essai ligne série COM1 : présentation14 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

15 jc/md/lp-01/05Essai ligne série COM1 : présentation15 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;

16 jc/md/lp-01/05Essai ligne série COM1 : présentation16 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

17 jc/md/lp-01/05Essai ligne série COM1 : présentation17 É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

18 jc/md/lp-01/05Essai ligne série COM1 : présentation18 É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.

19 jc/md/lp-01/05Essai ligne série COM1 : présentation19 É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

20 jc/md/lp-01/05Essai ligne série COM1 : présentation20 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.

21 jc/md/lp-01/05Essai ligne série COM1 : présentation21 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

22 jc/md/lp-01/05Essai ligne série COM1 : présentation22 É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

23 jc/md/lp-01/05Essai ligne série COM1 : présentation23 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. …

24 jc/md/lp-01/05Essai ligne série COM1 : présentation24 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

25 jc/md/lp-01/05Essai ligne série COM1 : présentation25 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. …

26 jc/md/lp-01/05Essai ligne série COM1 : présentation26 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

27 jc/md/lp-01/05Essai ligne série COM1 : présentation27 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

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

29 jc/md/lp-01/05Essai ligne série COM1 : présentation29 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;

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

31 jc/md/lp-01/05Essai ligne série COM1 : présentation31 Programme à réaliser Application qui utilise le port série COM1 Le programme est très simple, il doit : –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

32 jc/md/lp-01/05Essai ligne série COM1 : présentation32 COM1.cpp (1) #include "stdafx.h" int main(int argc,char *argv[],char *envp[]) { // TODO: Déclarations et réservations // TODO: Ouverture du port série // TODO: Lecture des paramètres du port

33 jc/md/lp-01/05Essai ligne série COM1 : présentation33 COM1.cpp (2) // TODO: Modifications des paramètres du port // TODO: Écriture des nouveaux paramètres du port // TODO: Lecture des paramètres de time-out // TODO: Modification des paramètres de time-out // TODO: Écriture des nouveaux paramètres de time-out

34 jc/md/lp-01/05Essai ligne série COM1 : présentation34 COM1.cpp (3) // TODO: Spécification de l'événement attendu while(byte!=0x1B) // TODO: Boucle lecture et écho { // TODO: Attente de l'événement // TODO: Réarmement de l'événement // TODO: Lecture du caractère // TODO: Envoi de lécho }// Fin while

35 jc/md/lp-01/05Essai ligne série COM1 : présentation35 COM1.cpp (4) // TODO: Fermeture du handle }//Fin main

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


Télécharger ppt "Jc/md/lp-01/05Essai ligne série COM1 : présentation1 Essai ligne série CEPC Application écho sur COM1 Présentation."

Présentations similaires


Annonces Google