altoslib: Use symbols in AltosRomconfig instead of fixed offsets
[fw/altos] / micropeak / MicroSerial.java
index 8546276ed9dcc7c79e66cc2241f53d6ab5b46237..376223f16098a38e8fe262a5f40161b7aba3e5f2 100644 (file)
  */
 
 package org.altusmetrum.micropeak;
+
 import java.util.*;
 import java.io.*;
 import libaltosJNI.*;
+import org.altusmetrum.altosuilib_1.*;
 
 public class MicroSerial extends InputStream {
        SWIGTYPE_p_altos_file   file;
 
        public int read() {
                int     c = libaltos.altos_getchar(file, 0);
-               if (MicroPreferences.serial_debug)
+               if (Thread.interrupted())
+                       return -1;
+               if (c == -1)
+                       return -1;
+               if (AltosUIPreferences.serial_debug)
                        System.out.printf("%c", c);
                return c;
        }
@@ -37,12 +43,12 @@ public class MicroSerial extends InputStream {
                }
        }
 
-       public MicroSerial(MicroUSB usb) throws FileNotFoundException {
-               file = usb.open();
+       public MicroSerial(AltosDevice device) throws FileNotFoundException {
+               file = device.open();
                if (file == null) {
-                       final String message = usb.getErrorString();
+                       final String message = device.getErrorString();
                        throw new FileNotFoundException(String.format("%s (%s)",
-                                                                     usb.toShortString(),
+                                                                     device.toShortString(),
                                                                      message));
                }
        }