J'ai à réaliser un programme permettant de communiquer avec une machine depuis un PC.
voici ce que j'ai fait :
void Envoyer(char *message)
{
DCB car_com;
HANDLE hcom;
int status;
unsigned long tmp=strlen(message);
char m_cPort[5]="COM1";
hcom=CreateFile(m_cPort,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(hcom==INVALID_HANDLE_VALUE)
{
printf("Erreur d'ouverture du port.\n"); }
else
{
//configuration du protocole de communication
GetCommState(hcom,&car_com);
car_com.BaudRate=CBR_4800; //Fréquence de communication : 4800
car_com.ByteSize=8; //nb de bit de données : 8
car_com.StopBits=ONESTOPBIT; //1 bit de stop
car_com.Parity=NOPARITY; //pas de parité
SetCommState(hcom,&car_com);
FlushFileBuffers(hcom);
status=WriteFile(hcom,message,tmp,&tmp,NULL);
if (status==1) printf("Transmission terminee. La transmission s\'est deroulee sans probleme.\n");
else printf("Erreur lors de la transmission.\n");
CloseHandle(hcom);
}
}
Avant meme de le teset, je souhaiterais savoir s'il est correct.
J'ai trouvé beaucoup de codes sources pour la communication par RS232, mais le taille de mon code comparé à ceux que j'ai pu trouver me laisse perplexe sur la validité du mien ^^ Donc, d'après vous, ca doit marcher ou bien c'est completement faux ?