#include <cstdlib>
#include <iostream>
#include<stdio.h>
#include<windows.h>
using namespace std;
char * lireBuffer(HANDLE handleCom);
int main(int argc, char *argv[])
{
int i;
i=0;
char * mot;
while(true)
{
mot = lireBuffer();
printf("%s\n",mot);
i++;
if(i==100)break;
}
system("PAUSE");
return EXIT_SUCCESS;
}
// Permet de lire les octets dans le buffer du port série
char * lireBuffer(HANDLE handleCom)
{
if(handleCom == NULL)
return NULL;
// Pour connaitre le nombre d'octets dans le buffer d'entrée
COMSTAT stat;
DWORD errors;
ClearCommError(handleCom,&errors,&stat);
int nbCarALire = stat.cbInQue;
if(nbCarALire==0)
// si le buffer est vide
return NULL;
char * leBuffer = new char[nbCarALire+1];
memset(leBuffer,'\0',nbCarALire+1);
// On effectue la lecture si il y a des caractères présents
unsigned long nbCarLus = 0;
if(ReadFile(handleCom,leBuffer,nbCarALire,&nbCarLus,NULL)==0)
{ // Echec
delete leBuffer;
return NULL;
}
printf("%c\n",leBuffer);
return leBuffer; // le buffer a été lu
}// lireBuffer
je n'arrive tjs pas a visualiser sur la console les bites transmis
je devrai peut-etre indiquer l'adresse de mon port serie , le nbre de byte de la trame a lire et la parité mais je ne sais pas faire.
peut tu encore m'aider....
merci.