dropped in the dos stuff
[smouse] / src / dev_smag.c
index 40f5046..3433b13 100644 (file)
@@ -76,24 +76,20 @@ 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_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;
 }
 
@@ -193,6 +189,7 @@ static int proc_packets(void)
                                        ++count;
                                }
                                st >>= 1;
+                               delta >>= 1;
                        }
                        break;
                }