X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=micropeak%2FMicroSerial.java;h=04b58a87dab060e40ae4eaa02f691e5204d1499e;hb=refs%2Fheads%2Fmaster;hp=376223f16098a38e8fe262a5f40161b7aba3e5f2;hpb=bf88c5f829ea5d32043431945e862a9f6c96740a;p=fw%2Faltos diff --git a/micropeak/MicroSerial.java b/micropeak/MicroSerial.java index 376223f1..c6882428 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 @@ -20,12 +21,15 @@ package org.altusmetrum.micropeak; import java.util.*; import java.io.*; import libaltosJNI.*; -import org.altusmetrum.altosuilib_1.*; +import org.altusmetrum.altosuilib_14.*; public class MicroSerial extends InputStream { SWIGTYPE_p_altos_file file; + private MicroSerialLog log; public int read() { + if (file == null) + return -1; int c = libaltos.altos_getchar(file, 0); if (Thread.interrupted()) return -1; @@ -33,9 +37,19 @@ public class MicroSerial extends InputStream { return -1; if (AltosUIPreferences.serial_debug) System.out.printf("%c", c); + if (log != null) + log.log_char(c); return c; } + public void write(char c) { + libaltos.altos_putchar(file, c); + } + + public void flush() { + libaltos.altos_flush(file); + } + public void close() { if (file != null) { libaltos.altos_close(file); @@ -43,8 +57,13 @@ public class MicroSerial extends InputStream { } } + 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 = device.getErrorString(); throw new FileNotFoundException(String.format("%s (%s)",