summaryrefslogtreecommitdiff
path: root/altoslib
diff options
context:
space:
mode:
Diffstat (limited to 'altoslib')
-rw-r--r--altoslib/AltosIdleMonitor.java19
-rw-r--r--altoslib/AltosLink.java3
2 files changed, 22 insertions, 0 deletions
diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java
index 6b20b3f1..f2f75bbb 100644
--- a/altoslib/AltosIdleMonitor.java
+++ b/altoslib/AltosIdleMonitor.java
@@ -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 (;;) {
diff --git a/altoslib/AltosLink.java b/altoslib/AltosLink.java
index 2b5909aa..9eb25ce0 100644
--- a/altoslib/AltosLink.java
+++ b/altoslib/AltosLink.java
@@ -249,6 +249,7 @@ public abstract class AltosLink implements Runnable {
public boolean monitor_mode = false;
public int telemetry = AltosLib.ao_telemetry_standard;
public double frequency;
+ public String callsign;
AltosConfigData config_data;
private int telemetry_len() {
@@ -330,6 +331,7 @@ public abstract class AltosLink implements Runnable {
}
public void set_callsign(String callsign) {
+ this.callsign = callsign;
printf ("c c %s\n", callsign);
flush_output();
}
@@ -363,5 +365,6 @@ public abstract class AltosLink implements Runnable {
}
public AltosLink() {
+ callsign = "";
}
}