компилю g++ -o rs232 rs232.cpp
Код:
sleep(1);
/* fd_set rfds;
struct timeval tv;
int retval;
FD_ZERO(&rfds);
FD_SET(fd, &rfds);
tv.tv_sec = 1;
tv.tv_usec = 0;
retval = select(fd, &rfds, NULL, NULL, &tv);
if (retval){*/
int srb;
ioctl(fd, FIONREAD, &srb);
readRS=new BYTE[srb];
int rb=read(fd,readRS,srb);
if (rb>=0){
printf("read: %i\n",rb);
for(int i=0;i<rb;i++){
printf("0x%02X ",readRS[i]);
}
printf("\n");
}else{
printf("ERROR: %u\n", errno);
perror("not read: ");
}
/* }
else{
printf("TimeOut\n");
}*/
close(fd);
return 0;
а так работает, только физически отвечает вторая машина, а не прибор, который может не успеть сгенерить ответное сообщение или быть совсем выключен