iraclus
Messages postés7Date d'inscriptionjeudi 20 avril 2006StatutMembreDernière intervention 1 juin 2006
-
18 mai 2006 à 14:08
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 2007
-
1 juin 2006 à 16:59
bonjour a tous j'ai un soussi pour capturer un flux via rs232 afin de l'analiser et d'utiliser les bytes capturer pour les mettres dans un programme de traitement.
je ne connais pas les fonctions qui permettent de lire directement le flux.
dmk04
Messages postés206Date d'inscriptionsamedi 29 octobre 2005StatutMembreDernière intervention 7 mars 2012 31 mai 2006 à 11:19
Salut,
// Permet de lire les octets dans le buffer du port série
char * lireBuffer(HANDLE handleCom, int * telCodeErreur)
{
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;
}
return leBuffer; // le buffer a été lu
}// lireBuffer
voilà, voilà,
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
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.