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
|
unsigned char calc_LRC(const char * commande){
int n;
unsigned char som;
const char * deb;
for(deb = commande, som=0; sscanf(deb, "%2x",&n)==1 ; deb += 2)
som += n ;
//printf("dans la fonction\n");
//printf("%s\n",0x100-som);
return -som;
}
void send_port(char * commande,int fd){
/*constructeur de commande*/
int n;
int i;
char head[] = ":";
char tail[] = "\r\n";
char result[80];
unsigned char LRC = calc_LRC(commande);
char test;
test = toupper(LRC);
printf("valeur de c is %s\n",test);
// printf("%x",0x100-LRC);
sprintf(result,"%s""%s""%x""%s",head,commande,LRC,tail);
printf("%s\n",result);
n = write(fd,result,strlen(result));
if (n==-1)
printf("écriture échoué : %d \n",errno);
else
printf("écriture réussi !\n %d octets écrit sur le port\n",n);
//return 0;
} |
Partager