foo
[smouse] / src / dev_smag.c
index 40f5046..f96ae5d 100644 (file)
@@ -76,21 +76,13 @@ static int opendev(const char *dev)
                return -1;      /* failed to get a response */
        }
 
-       while(ser_getline(fd, buf, sizeof buf)) {
-               printf("magellan open(%s): %s\n", dev, buf);
-       }
-
        ser_printf(fd, "vQ\r");
-       ser_wait(fd, 250);
 
-       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");
+       while(ser_getline_block(fd, buf, sizeof buf) && 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;
        }