projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosuilib: Track open frames, exit when none remain
[fw/altos]
/
altoslib
/
AltosLink.java
diff --git
a/altoslib/AltosLink.java
b/altoslib/AltosLink.java
index c0031cadbf059ce3ea38c6e102901dac1be79e9d..327666743396ef0ce21b9ef97f7180c6d718cadd 100644
(file)
--- a/
altoslib/AltosLink.java
+++ b/
altoslib/AltosLink.java
@@
-15,7
+15,7
@@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_
5
;
+package org.altusmetrum.altoslib_
11
;
import java.io.*;
import java.util.concurrent.*;
import java.io.*;
import java.util.concurrent.*;
@@
-86,10
+86,17
@@
public abstract class AltosLink implements Runnable {
public boolean reply_abort;
public int in_reply;
public boolean reply_abort;
public int in_reply;
+ boolean cancel_enable = true;
+
+ public void set_cancel_enable(boolean e) {
+ cancel_enable = e;
+ }
boolean reply_timeout_shown = false;
private boolean check_reply_timeout() {
boolean reply_timeout_shown = false;
private boolean check_reply_timeout() {
+ if (!cancel_enable)
+ return false;
if (!reply_timeout_shown)
reply_timeout_shown = show_reply_timeout();
return reply_abort;
if (!reply_timeout_shown)
reply_timeout_shown = show_reply_timeout();
return reply_abort;
@@
-163,8
+170,8
@@
public abstract class AltosLink implements Runnable {
boolean can_cancel = can_cancel_reply();
String reply = null;
boolean can_cancel = can_cancel_reply();
String reply = null;
-
if (!can_cancel && remote)
-
System.out.printf("Uh-oh, reading remote serial device from swing thread\n");
+
//
if (!can_cancel && remote)
+
//
System.out.printf("Uh-oh, reading remote serial device from swing thread\n");
if (remote && can_cancel) {
timeout = 500;
if (remote && can_cancel) {
timeout = 500;
@@
-354,7
+361,7
@@
public abstract class AltosLink implements Runnable {
if (frequency == 0)
return;
if (has_frequency)
if (frequency == 0)
return;
if (has_frequency)
- set_radio_freq((int) Math.floor (frequency * 1000));
+ set_radio_freq((int) Math.floor (frequency * 1000
+ 0.5
));
else if (has_setting)
set_radio_setting(AltosConvert.radio_frequency_to_setting(frequency, cal));
else
else if (has_setting)
set_radio_setting(AltosConvert.radio_frequency_to_setting(frequency, cal));
else
@@
-386,7
+393,7
@@
public abstract class AltosLink implements Runnable {
flush_output();
}
flush_output();
}
- public void set_monitor(boolean monitor) {
+ public
synchronized
void set_monitor(boolean monitor) {
monitor_mode = monitor;
if (monitor)
printf("m %x\n", telemetry_len());
monitor_mode = monitor;
if (monitor)
printf("m %x\n", telemetry_len());
@@
-395,6
+402,10
@@
public abstract class AltosLink implements Runnable {
flush_output();
}
flush_output();
}
+ public synchronized boolean get_monitor() {
+ return monitor_mode;
+ }
+
private void set_channel(int channel) {
if (monitor_mode)
printf("m 0\nc r %d\nm %x\n",
private void set_channel(int channel) {
if (monitor_mode)
printf("m 0\nc r %d\nm %x\n",
@@
-427,8
+438,10
@@
public abstract class AltosLink implements Runnable {
public void set_callsign(String callsign) {
this.callsign = callsign;
public void set_callsign(String callsign) {
this.callsign = callsign;
- printf ("c c %s\n", callsign);
- flush_output();
+ if (callsign != null) {
+ printf ("c c %s\n", callsign);
+ flush_output();
+ }
}
public boolean is_loader() throws InterruptedException {
}
public boolean is_loader() throws InterruptedException {
@@
-467,7
+480,7
@@
public abstract class AltosLink implements Runnable {
if (telemetry_rate < 0)
telemetry_rate = AltosPreferences.telemetry_rate(serial);
set_telemetry_rate(telemetry_rate);
if (telemetry_rate < 0)
telemetry_rate = AltosPreferences.telemetry_rate(serial);
set_telemetry_rate(telemetry_rate);
- if (callsign.equals(""))
+ if (callsign
== null || callsign
.equals(""))
callsign = AltosPreferences.callsign();
set_callsign(callsign);
printf("p\nE 0\n");
callsign = AltosPreferences.callsign();
set_callsign(callsign);
printf("p\nE 0\n");
@@
-526,21
+539,29
@@
public abstract class AltosLink implements Runnable {
if (config_data.has_monitor_battery()) {
try {
if (config_data.has_monitor_battery()) {
try {
- String[] items = adc();
- for (int i = 0; i < items.length;) {
- if (items[i].equals("batt")) {
- monitor_batt = Integer.parseInt(items[i+1]);
- i += 2;
- continue;
+ String[] items = adc();
+ for (int i = 0; i < items.length;) {
+ if (items[i].equals("batt")) {
+ monitor_batt = Integer.parseInt(items[i+1]);
+ i += 2;
+ continue;
+ }
+ i++;
}
}
- i++;
- }
} catch (TimeoutException te) {
}
}
if (monitor_batt == AltosLib.MISSING)
return AltosLib.MISSING;
} catch (TimeoutException te) {
}
}
if (monitor_batt == AltosLib.MISSING)
return AltosLib.MISSING;
- return AltosConvert.cc_battery_to_voltage(monitor_batt);
+
+ double volts = AltosLib.MISSING;
+ if (config_data.product.startsWith("TeleBT-v3")) {
+ volts = AltosConvert.tele_bt_3_battery(monitor_batt);
+ } else {
+ volts = AltosConvert.cc_battery_to_voltage(monitor_batt);
+ }
+
+ return volts;
}
public AltosLink() {
}
public AltosLink() {