projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'mjb/master'
[fw/altos]
/
altosui
/
AltosSerial.java
diff --git
a/altosui/AltosSerial.java
b/altosui/AltosSerial.java
index c4e9c69720339e0d0a4b474f87319986fc4dd33b..6cee1609e1db5ba6815bc0a6fd7e7195e16861f1 100644
(file)
--- a/
altosui/AltosSerial.java
+++ b/
altosui/AltosSerial.java
@@
-41,7
+41,7
@@
import libaltosJNI.*;
* threads.
*/
* threads.
*/
-public class AltosSerial extends AltosLink
implements Runnable
{
+public class AltosSerial extends AltosLink {
static java.util.List<String> devices_opened = Collections.synchronizedList(new LinkedList<String>());
static java.util.List<String> devices_opened = Collections.synchronizedList(new LinkedList<String>());
@@
-54,13
+54,19
@@
public class AltosSerial extends AltosLink implements Runnable {
Frame frame;
public int getchar() {
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) {
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
+161,11
@@
public class AltosSerial extends AltosLink implements Runnable {
private void putc(char c) {
if (altos != null)
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) {
}
public void print(String data) {