X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=micropeak%2FMicroSerial.java;h=f5108c22dee8e5a9a53903b288754d06e426d502;hp=afe5553285bdcf11e8da9263f54c5bd9c571f59c;hb=5872bd10df14b47de0e541bff16d9220af0558aa;hpb=bf8e1b6eecb2bae12ffdbd730bd6ec12ccdaf23a diff --git a/micropeak/MicroSerial.java b/micropeak/MicroSerial.java index afe55532..f5108c22 100644 --- a/micropeak/MicroSerial.java +++ b/micropeak/MicroSerial.java @@ -16,15 +16,27 @@ */ package org.altusmetrum.micropeak; + import java.util.*; import java.io.*; import libaltosJNI.*; +import org.altusmetrum.altosuilib_3.*; public class MicroSerial extends InputStream { SWIGTYPE_p_altos_file file; + private MicroSerialLog log; public int read() { - return libaltos.altos_getchar(file, 0); + 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; } public void close() { @@ -34,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)); } }