java: Bump java library versions for next release
[fw/altos] / altosdroid / src / org / altusmetrum / AltosDroid / AltosBluetooth.java
index dffa9ffb8c31c3612a907d27ef1e32a894425cf1..a599698faaeb3f37604e23591957e9ab559f675f 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Copyright © 2011 Keith Packard <keithp@keithp.com>
- * Copyright © 2012 Mike Beattie <mike@ethernal.org>
+ * Copyright Â© 2011 Keith Packard <keithp@keithp.com>
+ * Copyright Â© 2012 Mike Beattie <mike@ethernal.org>
  *
  * 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
@@ -31,7 +31,7 @@ import android.os.Handler;
 //import android.os.Message;
 import android.util.Log;
 
-import org.altusmetrum.AltosLib.*;
+import org.altusmetrum.altoslib_5.*;
 
 public class AltosBluetooth extends AltosLink {
 
@@ -143,7 +143,7 @@ public class AltosBluetooth extends AltosLink {
                }
        }
 
-       private void connection_failed() {
+       private void connection_lost() {
                if (D) Log.e(TAG, "Connection lost during I/O");
                handler.obtainMessage(TelemetryService.MSG_DISCONNECTED).sendToTarget();
        }
@@ -156,20 +156,34 @@ public class AltosBluetooth extends AltosLink {
                        output.write(bytes);
                        if (D) Log.d(TAG, "print(): Wrote bytes: '" + data.replace('\n', '\\') + "'");
                } catch (IOException e) {
-                       connection_failed();
+                       connection_lost();
                } catch (InterruptedException e) {
-                       connection_failed();
+                       connection_lost();
                }
        }
 
+       public void putchar(byte c) {
+               byte[] bytes = { c };
+               if (D) Log.d(TAG, "print(): begin");
+               try {
+                       wait_connected();
+                       output.write(bytes);
+                       if (D) Log.d(TAG, "print(): Wrote byte: '" + c + "'");
+               } catch (IOException e) {
+                       connection_lost();
+               } catch (InterruptedException e) {
+                       connection_lost();
+               }
+       }               
+
        public int getchar() {
                try {
                        wait_connected();
                        return input.read();
                } catch (IOException e) {
-                       connection_failed();
+                       connection_lost();
                } catch (java.lang.InterruptedException e) {
-                       connection_failed();
+                       connection_lost();
                }
                return AltosLink.ERROR;
        }
@@ -207,6 +221,13 @@ public class AltosBluetooth extends AltosLink {
        }
 
 
+       // We override this method so that we can add some debugging. Not 100% elegant, but more useful
+       // than debugging one char at a time above in getchar()!
+       public void add_reply(AltosLine line) throws InterruptedException {
+               if (D) Log.d(TAG, String.format("Got REPLY: %s", line.line));
+               super.add_reply(line);
+       }
+
        //public void flush_output() { super.flush_output(); }
 
        // Stubs of required methods when extending AltosLink