Merge branch 'master' into altosdroid
[fw/altos] / altoslib / AltosIdleMonitor.java
index 0a80ca6b83270e69e1bc3b58b309f9d3046b56dd..f2f75bbb60f80dc21cf388a70459e7c239c76b37 100644 (file)
@@ -15,7 +15,7 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altoslib;
+package org.altusmetrum.altoslib_1;
 
 import java.io.*;
 import java.util.concurrent.*;
@@ -27,6 +27,7 @@ public class AltosIdleMonitor extends Thread {
        AltosState              state;
        boolean                 remote;
        double                  frequency;
+       String                  callsign;
        AltosState              previous_state;
        AltosConfigData         config_data;
        AltosGPS                gps;
@@ -87,6 +88,7 @@ public class AltosIdleMonitor extends Thread {
                try {
                        if (remote) {
                                link.set_radio_frequency(frequency);
+                               link.set_callsign(callsign);
                                link.start_remote();
                        } else
                                link.flush_input();
@@ -126,12 +128,29 @@ public class AltosIdleMonitor extends Thread {
 
        public void set_frequency(double in_frequency) {
                frequency = in_frequency;
+               link.abort_reply();
+       }
+
+       public void set_callsign(String in_callsign) {
+               callsign = in_callsign;
+               link.abort_reply();
        }
 
        public void post_state() {
                listener.update(state);
        }
 
+       public void abort() {
+               if (isAlive()) {
+                       interrupt();
+                       link.abort_reply();
+                       try {
+                               join();
+                       } catch (InterruptedException ie) {
+                       }
+               }
+       }
+
        public void run() {
                try {
                        for (;;) {