projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
doc: Ship telemini outline as pdf file too
[fw/altos]
/
altoslib
/
AltosState.java
diff --git
a/altoslib/AltosState.java
b/altoslib/AltosState.java
index a9bb1e70833392321b01097da560eb6819304f42..134aeb4e34eaa3929a86b6e91cd49076a6b2aa95 100644
(file)
--- a/
altoslib/AltosState.java
+++ b/
altoslib/AltosState.java
@@
-19,7
+19,7
@@
* Track flight state from telemetry or eeprom data stream
*/
* Track flight state from telemetry or eeprom data stream
*/
-package org.altusmetrum.altoslib_
2
;
+package org.altusmetrum.altoslib_
3
;
public class AltosState implements Cloneable {
public class AltosState implements Cloneable {
@@
-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;
@@
-463,6
+464,20
@@
public class AltosState implements Cloneable {
return acceleration.max();
}
return acceleration.max();
}
+ public AltosValue orient;
+
+ public void set_orient(double new_orient) {
+ orient.set(new_orient, time);
+ }
+
+ public double orient() {
+ return orient.value();
+ }
+
+ public double max_orient() {
+ return orient.max();
+ }
+
public AltosValue kalman_height, kalman_speed, kalman_acceleration;
public void set_kalman(double height, double speed, double acceleration) {
public AltosValue kalman_height, kalman_speed, kalman_acceleration;
public void set_kalman(double height, double speed, double acceleration) {
@@
-559,6
+574,7
@@
public class AltosState implements Cloneable {
pressure = new AltosPressure();
speed = new AltosSpeed();
acceleration = new AltosAccel();
pressure = new AltosPressure();
speed = new AltosSpeed();
acceleration = new AltosAccel();
+ orient = new AltosValue();
temperature = AltosLib.MISSING;
battery_voltage = AltosLib.MISSING;
temperature = AltosLib.MISSING;
battery_voltage = AltosLib.MISSING;
@@
-620,6
+636,7
@@
public class AltosState implements Cloneable {
pressure.finish_update();
speed.finish_update();
acceleration.finish_update();
pressure.finish_update();
speed.finish_update();
acceleration.finish_update();
+ orient.finish_update();
kalman_height.finish_update();
kalman_speed.finish_update();
kalman_height.finish_update();
kalman_speed.finish_update();
@@
-664,6
+681,7
@@
public class AltosState implements Cloneable {
pressure.copy(old.pressure);
speed.copy(old.speed);
acceleration.copy(old.acceleration);
pressure.copy(old.pressure);
speed.copy(old.speed);
acceleration.copy(old.acceleration);
+ orient.copy(old.orient);
battery_voltage = old.battery_voltage;
pyro_voltage = old.pyro_voltage;
battery_voltage = old.battery_voltage;
pyro_voltage = old.pyro_voltage;
@@
-835,7
+853,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;
}
@@
-846,7
+866,9
@@
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;
}
@@
-1016,10
+1038,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() {