X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosSerial.java;h=78d862d03645ccd7eae99eb1acfd1bbc17d19682;hp=c4e9c69720339e0d0a4b474f87319986fc4dd33b;hb=1ed6b13e87c1cc2d6618b6ba3a293ea6e3b5752e;hpb=52196975c447851f14619213c1de5101d334eebc diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java index c4e9c697..78d862d0 100644 --- a/altosui/AltosSerial.java +++ b/altosui/AltosSerial.java @@ -21,17 +21,12 @@ package altosui; -import java.lang.*; import java.io.*; -import java.util.concurrent.*; import java.util.*; -import java.text.*; import java.awt.*; -import java.awt.event.*; import javax.swing.*; -import javax.swing.filechooser.FileNameExtensionFilter; -import javax.swing.table.*; import org.altusmetrum.AltosLib.*; +import org.altusmetrum.altosuilib.*; import libaltosJNI.*; @@ -41,7 +36,7 @@ import libaltosJNI.*; * threads. */ -public class AltosSerial extends AltosLink implements Runnable { +public class AltosSerial extends AltosLink { static java.util.List devices_opened = Collections.synchronizedList(new LinkedList()); @@ -54,13 +49,19 @@ public class AltosSerial extends AltosLink implements Runnable { Frame frame; public int getchar() { + if (altos == null) + return ERROR; return libaltos.altos_getchar(altos, 0); } public void flush_output() { super.flush_output(); if (altos != null) { - libaltos.altos_flush(altos); + if (libaltos.altos_flush(altos) != 0) { + libaltos.altos_close(altos); + altos = null; + abort_reply(); + } } } @@ -155,7 +156,11 @@ public class AltosSerial extends AltosLink implements Runnable { private void putc(char c) { if (altos != null) - libaltos.altos_putchar(altos, c); + if (libaltos.altos_putchar(altos, c) != 0) { + libaltos.altos_close(altos); + altos = null; + abort_reply(); + } } public void print(String data) {