return -1; /* failed to get a response */
}
- while(ser_getline(fd, buf, sizeof buf)) {
- printf("magellan open(%s): %s\n", dev, buf);
- }
+ ser_block(fd);
ser_printf(fd, "vQ\r");
- ser_wait(fd, 250);
+ do {
+ ser_getline(fd, buf, sizeof buf);
+ } while(buf[0] != 'v');
- while(ser_getline(fd, buf, sizeof buf)) {
- if(buf[0] == 'v') {
- break;
- }
- }
- printf("magellan open(%s): got version string: \"%s\"\n", dev, buf + 1);
- if(!strstr(buf, "v Magellan")) {
- fprintf(stderr, "unknown device\n");
+ 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;
}
++count;
}
st >>= 1;
+ delta >>= 1;
}
break;
}