import java.io.*;
import java.util.concurrent.*;
import java.util.*;
+import java.text.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
}
if (debug)
System.out.printf("\t\t\t\t\t%s\n", line);
- if (line.startsWith("VERSION") || line.startsWith("CRC")) {
+ if (line.startsWith("TELEM") || line.startsWith("VERSION") || line.startsWith("CRC")) {
for (int e = 0; e < monitors.size(); e++) {
LinkedBlockingQueue<AltosLine> q = monitors.get(e);
q.put(new AltosLine (line));
--in_reply;
return line.line;
}
+ System.out.printf("no line remote %b can_cancel %b\n", remote, can_cancel);
if (!remote || !can_cancel || check_timeout()) {
--in_reply;
return null;
}
}
+ public String get_reply_no_dialog(int timeout) throws InterruptedException, TimeoutException {
+ flush_output();
+ AltosLine line = reply_queue.poll(timeout, TimeUnit.MILLISECONDS);
+ if (line != null)
+ return line.line;
+ return null;
+ }
+
public void add_monitor(LinkedBlockingQueue<AltosLine> q) {
set_monitor(true);
monitors.add(q);
set_callsign(AltosPreferences.callsign());
}
+ private int telemetry_len() {
+ return Altos.telemetry_len(telemetry);
+ }
+
public void set_channel(int in_channel) {
channel = in_channel;
if (altos != null) {
if (monitor_mode)
- printf("m 0\nc r %d\nm %d\n", channel, telemetry);
+ printf("m 0\nc r %d\nm %x\n",
+ channel, telemetry_len());
else
printf("c r %d\n", channel);
flush_output();
telemetry = in_telemetry;
if (altos != null) {
if (monitor_mode)
- printf("m 0\nm %d\n", telemetry);
+ printf("m 0\nm %x\n", telemetry_len());
flush_output();
}
}
monitor_mode = monitor;
if (altos != null) {
if (monitor)
- printf("m %d\n", telemetry);
+ printf("m %x\n", telemetry_len());
else
printf("m 0\n");
flush_output();
line = "";
monitor_mode = false;
frame = null;
- telemetry = Altos.ao_telemetry_full;
+ telemetry = Altos.ao_telemetry_standard;
monitors = new LinkedList<LinkedBlockingQueue<AltosLine>> ();
reply_queue = new LinkedBlockingQueue<AltosLine> ();
open();