update ChangeLog for 1.9.18 release
[fw/altos] / micropeak / MicroSerial.java
index 15ef858244bcfa5cc3efee138d56caf008115bdc..c688242874837c2c60c9093191e3d847e920867a 100644 (file)
@@ -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.*;
+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)",