Add version numbers to java libraries
[fw/altos] / altoslib / AltosLink.java
index d59e73ba6eca2a690da98f0d46e9db7e6c870919..2b5909aa26b377cd86b5c3ae309e506709ff37d5 100644 (file)
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.AltosLib;
+package org.altusmetrum.altoslib_1;
 
-import java.lang.*;
 import java.io.*;
 import java.util.concurrent.*;
 import java.util.*;
-import java.text.*;
 
-public abstract class AltosLink {
+public abstract class AltosLink implements Runnable {
 
        public final static int ERROR = -1;
        public final static int TIMEOUT = -2;
@@ -101,15 +99,23 @@ public abstract class AltosLink {
                try {
                        for (;;) {
                                c = getchar();
-                               if (Thread.interrupted())
+                               if (Thread.interrupted()) {
+                                       if (debug)
+                                               System.out.printf("INTERRUPTED\n");
                                        break;
+                               }
                                if (c == ERROR) {
+                                       if (debug)
+                                               System.out.printf("ERROR\n");
                                        add_telem (new AltosLine());
                                        add_reply (new AltosLine());
                                        break;
                                }
-                               if (c == TIMEOUT)
+                               if (c == TIMEOUT) {
+                                       if (debug)
+                                               System.out.printf("TIMEOUT\n");
                                        continue;
+                               }
                                if (c == '\r')
                                        continue;
                                synchronized(this) {
@@ -180,6 +186,14 @@ public abstract class AltosLink {
                reply_queue.put (line);
        }
 
+       public void abort_reply() {
+               try {
+                       add_telem (new AltosLine());
+                       add_reply (new AltosLine());
+               } catch (InterruptedException e) {
+               }
+       }
+
        public void add_string(String line) throws InterruptedException {
                if (line.startsWith("TELEM") || line.startsWith("VERSION") || line.startsWith("CRC")) {
                        add_telem(new AltosLine(line));
@@ -270,8 +284,8 @@ public abstract class AltosLink {
                frequency = in_frequency;
                config_data();
                set_radio_frequency(frequency,
-                                   config_data.radio_frequency != 0,
-                                   config_data.radio_setting != 0,
+                                   config_data.radio_frequency > 0,
+                                   config_data.radio_setting > 0,
                                    config_data.radio_calibration);
        }
 
@@ -325,10 +339,10 @@ public abstract class AltosLink {
        public String name;
 
        public void start_remote() throws TimeoutException, InterruptedException {
-               if (debug)
-                       System.out.printf("start remote %7.3f\n", frequency);
                if (frequency == 0.0)
                        frequency = AltosPreferences.frequency(serial);
+               if (debug)
+                       System.out.printf("start remote %7.3f\n", frequency);
                set_radio_frequency(frequency);
                set_callsign(AltosPreferences.callsign());
                printf("p\nE 0\n");