return -1; /* failed to get a response */
}
- ser_printf(fd, "vQ\r");
+ ser_block(fd);
- while(ser_getline_block(fd, buf, sizeof buf) && buf[0] != 'v');
+ ser_printf(fd, "vQ\r");
+ do {
+ ser_getline(fd, buf, sizeof buf);
+ } while(buf[0] != 'v');
- printf("DBG: \"%s\"\n", buf);
if(buf[0] != 'v' || !strstr(buf, "MAGELLAN")) {
fprintf(stderr, "unknown device: \"%s\"\n", buf + 1);
ser_close(fd);
return -1;
}
+
+ ser_nonblock(fd);
return fd;
}