Detecter un caractere sur le port série
Bonjour à tous.
J'ai actuellement quelques problemes avec mon port série, il me fait des siennes. On s'entend mal en ce moment :P
Mon but est de faire un hyperterminal-like
Donc j'envoie des données sur un port série, des qu'un caractere est detecté avec kbhit() on envoie. Maintenant j'aimerais lire le caractere de l'autre coté en "live" si je puis dire.
Voila un bout de mon code concernant mon problème.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| /* boucle tant que l'on ne quitte pas */
do
{
/* menu */
printf("\r\n");
printf("1 : Envoyer des donnees.\r\n");
printf("2 : Recevoir des donnees.\r\n");
printf("3 : Quitter.\r\n");
printf("Choix : ");
scanf("%d", &nChoice);
/* enoyer des données */
if(nChoice == 1)
{
printf("\r\n");
printf("Donnees a envoyer :\r\n");
fflush(stdin);
//gets(buffer);
//printf("\r\n");
//printf("Envoi des donnees...\r\n");
sprintf(NomPort,"COM1",NoPort);
hCom=CreateFile(NomPort,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING ,0,NULL);
scanf("%c",&octet);
while(kbhit())
{
buffer=getch();
WriteCOM(buffer, strlen(buffer), &nBytesWritten)
}
//printf("%d octet(s) envoye(s).\r\n", nBytesWritten);
//else
//printf("Erreur lors de l'envoi.\r\n");
}
/* recevoir des données */
if(nChoice == 2)
{
printf("\r\n");
printf("Reception de donnees...\r\n");
if(ReadCOM(buffer, sizeof(buffer)-1, &nBytesRead))
{
buffer[nBytesRead] = '\0';
printf("%d octet(s) recu(s) :\r\n%s\r\n", nBytesRead, buffer);
}
else
printf("Erreur lors de la réception.\r\n");
}
}while(nChoice != 3); |