X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=micropeak%2FMicroSerial.java;h=f5108c22dee8e5a9a53903b288754d06e426d502;hp=a1a77a1d5b3b5516f877108f4eea886737a9733d;hb=5872bd10df14b47de0e541bff16d9220af0558aa;hpb=65b512c890a3ccf487655b79305ab1cfcf49259c diff --git a/micropeak/MicroSerial.java b/micropeak/MicroSerial.java index a1a77a1d..f5108c22 100644 --- a/micropeak/MicroSerial.java +++ b/micropeak/MicroSerial.java @@ -20,15 +20,22 @@ package org.altusmetrum.micropeak; import java.util.*; import java.io.*; import libaltosJNI.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altosuilib_3.*; public class MicroSerial extends InputStream { SWIGTYPE_p_altos_file file; + private MicroSerialLog log; public int read() { int c = libaltos.altos_getchar(file, 0); + if (Thread.interrupted()) + return -1; + if (c == -1) + return -1; if (AltosUIPreferences.serial_debug) System.out.printf("%c", c); + if (log != null) + log.log_char(c); return c; } @@ -39,12 +46,17 @@ public class MicroSerial extends InputStream { } } - public MicroSerial(MicroUSB usb) throws FileNotFoundException { - file = usb.open(); + public void set_log(MicroSerialLog log) { + this.log = log; + } + + public MicroSerial(AltosDevice device) throws FileNotFoundException { + file = device.open(); + log = null; 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)); } }