projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosdroid: improve build system dependencies
[fw/altos]
/
altoslib
/
AltosState.java
diff --git
a/altoslib/AltosState.java
b/altoslib/AltosState.java
index dba9bff8084d5db712ea733e537cac6d9005bbe8..6d55b833b83a5bf1a8878d10d6e45b539a71b088 100644
(file)
--- a/
altoslib/AltosState.java
+++ b/
altoslib/AltosState.java
@@
-29,8
+29,8
@@
public class AltosState implements Cloneable {
public int set;
public int set;
- static final double ascent_filter_len = 0.
1
;
- static final double descent_filter_len =
2.0
;
+ static final double ascent_filter_len = 0.
5
;
+ static final double descent_filter_len =
0.5
;
/* derived data */
/* derived data */
@@
-49,7
+49,6
@@
public class AltosState implements Cloneable {
private double max_value;
private double set_time;
private double prev_set_time;
private double max_value;
private double set_time;
private double prev_set_time;
- private double max_rate = 1000.0;
void set(double new_value, double time) {
if (new_value != AltosLib.MISSING) {
void set(double new_value, double time) {
if (new_value != AltosLib.MISSING) {
@@
-125,12
+124,14
@@
public class AltosState implements Cloneable {
double ddt = in.time() - pt;
double ddv = (n - p) / ddt;
double ddt = in.time() - pt;
double ddv = (n - p) / ddt;
+ final double max = 100000;
+
/* 100gs */
/* 100gs */
- if (Math.abs(ddv) >
1000
) {
+ if (Math.abs(ddv) >
max
) {
if (n > p)
if (n > p)
- n = p + ddt *
1000
;
+ n = p + ddt *
max
;
else
else
- n = p - ddt *
1000
;
+ n = p - ddt *
max
;
}
double filter_len;
}
double filter_len;
@@
-269,6
+270,7
@@
public class AltosState implements Cloneable {
public int state;
public int flight;
public int serial;
public int state;
public int flight;
public int serial;
+ public int receiver_serial;
public boolean landed;
public boolean ascent; /* going up? */
public boolean boost; /* under power */
public boolean landed;
public boolean ascent; /* going up? */
public boolean boost; /* under power */
@@
-300,7
+302,8
@@
public class AltosState implements Cloneable {
class AltosGroundPressure extends AltosCValue {
void set_filtered(double p, double time) {
computed.set_filtered(p, time);
class AltosGroundPressure extends AltosCValue {
void set_filtered(double p, double time) {
computed.set_filtered(p, time);
- ground_altitude.set_computed(pressure_to_altitude(computed.value()), time);
+ if (!is_measured())
+ ground_altitude.set_computed(pressure_to_altitude(computed.value()), time);
}
void set_measured(double p, double time) {
}
void set_measured(double p, double time) {
@@
-604,6
+607,7
@@
public class AltosState implements Cloneable {
log_format = AltosLib.MISSING;
serial = AltosLib.MISSING;
log_format = AltosLib.MISSING;
serial = AltosLib.MISSING;
+ receiver_serial = AltosLib.MISSING;
baro = null;
companion = null;
baro = null;
companion = null;
@@
-632,7
+636,9
@@
public class AltosState implements Cloneable {
received_time = old.received_time;
time = old.time;
received_time = old.received_time;
time = old.time;
- time_change = 0;
+ time_change = old.time_change;
+ prev_time = old.time;
+
tick = old.tick;
prev_tick = old.tick;
boost_tick = old.boost_tick;
tick = old.tick;
prev_tick = old.tick;
boost_tick = old.boost_tick;
@@
-653,6
+659,7
@@
public class AltosState implements Cloneable {
set = 0;
set = 0;
+ ground_pressure.copy(old.ground_pressure);
ground_altitude.copy(old.ground_altitude);
altitude.copy(old.altitude);
pressure.copy(old.pressure);
ground_altitude.copy(old.ground_altitude);
altitude.copy(old.altitude);
pressure.copy(old.pressure);
@@
-723,6
+730,7
@@
public class AltosState implements Cloneable {
log_format = old.log_format;
serial = old.serial;
log_format = old.log_format;
serial = old.serial;
+ receiver_serial = old.receiver_serial;
baro = old.baro;
companion = old.companion;
baro = old.baro;
companion = old.companion;
@@
-779,6
+787,7
@@
public class AltosState implements Cloneable {
}
tick = new_tick;
time = tick / 100.0;
}
tick = new_tick;
time = tick / 100.0;
+ time_change = time - prev_time;
}
}
}
}
@@
-827,7
+836,9
@@
public class AltosState implements Cloneable {
if (flight != AltosLib.MISSING && flight != 0) {
if (this.flight != AltosLib.MISSING &&
this.flight != flight) {
if (flight != AltosLib.MISSING && flight != 0) {
if (this.flight != AltosLib.MISSING &&
this.flight != flight) {
+ int bt = boost_tick;
init();
init();
+ boost_tick = bt;
}
this.flight = flight;
}
}
this.flight = flight;
}
@@
-838,12
+849,19
@@
public class AltosState implements Cloneable {
if (serial != AltosLib.MISSING) {
if (this.serial != AltosLib.MISSING &&
this.serial != serial) {
if (serial != AltosLib.MISSING) {
if (this.serial != AltosLib.MISSING &&
this.serial != serial) {
+ int bt = boost_tick;
init();
init();
+ boost_tick = bt;
}
this.serial = serial;
}
}
}
this.serial = serial;
}
}
+ public void set_receiver_serial(int serial) {
+ if (serial != AltosLib.MISSING)
+ receiver_serial = serial;
+ }
+
public int rssi() {
if (rssi == AltosLib.MISSING)
return 0;
public int rssi() {
if (rssi == AltosLib.MISSING)
return 0;
@@
-1003,10
+1021,9
@@
public class AltosState implements Cloneable {
if (tick == AltosLib.MISSING)
return 0.0;
if (tick == AltosLib.MISSING)
return 0.0;
- if (boost_tick != AltosLib.MISSING) {
- return (tick - boost_tick) / 100.0;
- }
- return tick / 100.0;
+ if (boost_tick == AltosLib.MISSING)
+ return tick / 100.0;
+ return (tick - boost_tick) / 100.0;
}
public boolean valid() {
}
public boolean valid() {