X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=micropeak%2FMicroSerial.java;h=43dfd18bd35f4cd1c898e96bf3e0d353aa23aca1;hp=8546276ed9dcc7c79e66cc2241f53d6ab5b46237;hb=dcf533d5befffa4c9c872f3c3d21d11ffeb61307;hpb=f7a56152808c7838c1886884bb77de2705ab076c diff --git a/micropeak/MicroSerial.java b/micropeak/MicroSerial.java index 8546276e..43dfd18b 100644 --- a/micropeak/MicroSerial.java +++ b/micropeak/MicroSerial.java @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,17 +17,26 @@ */ package org.altusmetrum.micropeak; + import java.util.*; import java.io.*; import libaltosJNI.*; +import org.altusmetrum.altosuilib_11.*; public class MicroSerial extends InputStream { SWIGTYPE_p_altos_file file; + private MicroSerialLog log; 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); + if (log != null) + log.log_char(c); return c; } @@ -37,12 +47,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)); } }