summaryrefslogtreecommitdiff
path: root/ao-tools/altosui/AltosState.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-08-05 13:50:18 -0400
committerKeith Packard <keithp@keithp.com>2010-08-05 13:50:18 -0400
commitd8bf05f7ad55964c9bce0551e58f4ef6c9f721ad (patch)
treefb6683cd1b832be828a82497b57f42e8db082b5d /ao-tools/altosui/AltosState.java
parent85a670b5a904d6750d0f179ae307baeb8fc7cbd2 (diff)
altosui: Split flight record out of telemetry class
This will permit either telemetry or eeprom data to be used to construct the sequence of flight events for reply or data generation. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'ao-tools/altosui/AltosState.java')
-rw-r--r--ao-tools/altosui/AltosState.java38
1 files changed, 18 insertions, 20 deletions
diff --git a/ao-tools/altosui/AltosState.java b/ao-tools/altosui/AltosState.java
index 9aa10a08..fc06f839 100644
--- a/ao-tools/altosui/AltosState.java
+++ b/ao-tools/altosui/AltosState.java
@@ -16,16 +16,16 @@
*/
/*
- * Track flight state from telemetry data stream
+ * Track flight state from telemetry or eeprom data stream
*/
package altosui;
-import altosui.AltosTelemetry;
+import altosui.AltosRecord;
import altosui.AltosGPS;
public class AltosState {
- AltosTelemetry data;
+ AltosRecord data;
/* derived data */
@@ -71,25 +71,23 @@ public class AltosState {
double speak_altitude;
- void init (AltosTelemetry cur, AltosState prev_state) {
+ void init (AltosRecord cur, AltosState prev_state) {
int i;
- AltosTelemetry prev;
- double accel_counts_per_mss;
+ AltosRecord prev;
data = cur;
- ground_altitude = AltosConvert.cc_barometer_to_altitude(data.ground_pres);
- height = AltosConvert.cc_barometer_to_altitude(data.flight_pres) - ground_altitude;
+ ground_altitude = data.ground_altitude();
+ height = data.altitude() - ground_altitude;
report_time = System.currentTimeMillis();
- accel_counts_per_mss = ((data.accel_minus_g - data.accel_plus_g) / 2.0) / 9.80665;
- acceleration = (data.ground_accel - data.flight_accel) / accel_counts_per_mss;
- speed = data.flight_vel / (accel_counts_per_mss * 100.0);
- temperature = AltosConvert.cc_thermometer_to_temperature(data.temp);
- drogue_sense = AltosConvert.cc_ignitor_to_voltage(data.drogue);
- main_sense = AltosConvert.cc_ignitor_to_voltage(data.main);
- battery = AltosConvert.cc_battery_to_voltage(data.batt);
+ acceleration = data.acceleration();
+ speed = data.accel_speed();
+ temperature = data.temperature();
+ drogue_sense = data.drogue_voltage();
+ main_sense = data.main_voltage();
+ battery = data.battery_voltage();
tick = data.tick;
state = data.state();
@@ -125,7 +123,7 @@ public class AltosState {
time_change = 0;
}
- if (state == AltosTelemetry.ao_flight_pad) {
+ if (state == Altos.ao_flight_pad) {
if (data.gps != null && data.gps.gps_locked && data.gps.nsat >= 4) {
npad++;
if (npad > 1) {
@@ -149,8 +147,8 @@ public class AltosState {
gps_ready = gps_waiting == 0;
- ascent = (AltosTelemetry.ao_flight_boost <= state &&
- state <= AltosTelemetry.ao_flight_coast);
+ ascent = (Altos.ao_flight_boost <= state &&
+ state <= Altos.ao_flight_coast);
/* Only look at accelerometer data on the way up */
if (ascent && acceleration > max_acceleration)
@@ -173,11 +171,11 @@ public class AltosState {
}
}
- public AltosState(AltosTelemetry cur) {
+ public AltosState(AltosRecord cur) {
init(cur, null);
}
- public AltosState (AltosTelemetry cur, AltosState prev) {
+ public AltosState (AltosRecord cur, AltosState prev) {
init(cur, prev);
}
}