Bonjour,
Non, non....
Il est difficile d'envoyer des commande en manuel à partir de cutecom car
une trame PC--µC comporte un entier 8 bits (la commande) et un flottant 32 bits (la valeur).
Si l'entier est facile à convertir en hexa, c'est bien plus dur pour le flottant car c'est la maniere
dont l'OS et le C stockent une variable flottante (mantisse, exposant)
Ci dessous les 1+4 octets en hex envoyés et la fonction correspondante
01 00 00 c8 43 envoi_cmde(fd,SET_VA_max,400) ;
03 00 00 00 00 envoi_cmde(fd,SET_VG1_max,0) ;
0c 00 00 a0 c0 envoi_cmde(fd,SET_VG1_min,-5) ;
02 00 00 96 43 envoi_cmde(fd,SET_VG2_max,300) ;
0b 00 00 00 00 envoi_cmde(fd,SET_VG2_min,0) ;
04 00 00 e0 40 envoi_cmde(fd,SET_VFIL_max,7) ;
0d 00 00 a0 40 envoi_cmde(fd,SET_VFIL_min,5) ;
05 00 00 60 40 envoi_cmde(fd,SET_IA_max,3.5) ;
07 6f 12 83 3a envoi_cmde(fd,SET_IG1_max,0.001) ;
06 6f 12 83 3a envoi_cmde(fd,SET_IG2_max,0.001) ;
08 cd cc 4c 3f envoi_cmde(fd,SET_PWA_max,0.

;
09 6f 12 83 3a envoi_cmde(fd,SET_PWG2_max,0.001) ;
0a 6f 12 83 3a envoi_cmde(fd,SET_PWG1_max,0.001) ;
11 9a 99 c9 40 envoi_cmde(fd,SET_VFIL,6.3) ;
Pour avoir une sortie ecran des octets envoyés, modifier la routine comme suit:
//-----------------------------------------------------------------------
//envoi d'une commande
//-----------------------------------------------------------------------
int envoi_cmde(int fd,int cmde,float v)
{
unsigned char rec;
//pour avoir une copie des octets envoyés
{
unsigned char *addr;
addr=(unsigned char*)&v;
printf("\ncommande %d valeur %f\n",cmde,v) ;
printf("codage de la commande (en hex) %x\n",cmde) ;
printf("codage de la valeur (en hex) %x %x %x %x\n",*addr,*(addr+1),*(addr+2),*(addr+3)) ;
getchar() ;
}
//printf("envoi de la commande %d\n",cmde) ;
//envoi du numero de commande
rs232_tx_8(fd,cmde) ;
//envoi du float associe
rs232_tx_32(fd,v) ;
//recup du code retour
rs232_rx_8(fd,&rec) ;
//printf("code retour %d\n",rec) ;
return rec;
}