projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosui: Prevent voice altitude data from queueing up
[fw/altos]
/
ao-tools
/
altosui
/
AltosState.java
diff --git
a/ao-tools/altosui/AltosState.java
b/ao-tools/altosui/AltosState.java
index c13dfe68451adb303530d1619474568486c267f7..3ef00f35d7d87375cf4967553f5e28c3bdd6edd6 100644
(file)
--- a/
ao-tools/altosui/AltosState.java
+++ b/
ao-tools/altosui/AltosState.java
@@
-64,6
+64,8
@@
public class AltosState {
boolean gps_ready;
AltosGreatCircle from_pad;
boolean gps_ready;
AltosGreatCircle from_pad;
+ double elevation; /* from pad */
+ double range; /* total distance */
double gps_height;
double gps_height;
@@
-124,7
+126,7
@@
public class AltosState {
}
if (state == Altos.ao_flight_pad) {
}
if (state == Altos.ao_flight_pad) {
- if (data.gps != null && data.gps.locked
&& data.gps.nsat >= 4
) {
+ if (data.gps != null && data.gps.locked) {
npad++;
if (npad > 1) {
/* filter pad position */
npad++;
if (npad > 1) {
/* filter pad position */
@@
-161,11
+163,18
@@
public class AltosState {
if (data.gps != null) {
if (gps == null || !gps.locked || data.gps.locked)
gps = data.gps;
if (data.gps != null) {
if (gps == null || !gps.locked || data.gps.locked)
gps = data.gps;
- if (npad > 0 && gps.locked)
+ if (npad > 0 && gps.locked)
{
from_pad = new AltosGreatCircle(pad_lat, pad_lon, gps.lat, gps.lon);
from_pad = new AltosGreatCircle(pad_lat, pad_lon, gps.lat, gps.lon);
+ }
}
}
+ elevation = 0;
+ range = -1;
if (npad > 0) {
gps_height = gps.alt - pad_alt;
if (npad > 0) {
gps_height = gps.alt - pad_alt;
+ if (from_pad != null) {
+ elevation = Math.atan2(height, from_pad.distance) * 180 / Math.PI;
+ range = Math.sqrt(height * height + from_pad.distance * from_pad.distance);
+ }
} else {
gps_height = 0;
}
} else {
gps_height = 0;
}