From 7a4d7110debb88f4e906fee7c46f2badd561809d Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 19 Sep 2010 02:50:43 -0700 Subject: altosui: Use recorded ground acceleration when reading eeprom files The flight software records 1000 accelerometer samples and records that in the flight log. Use that value instead of using the very few samples recorded in the eeprom before boost is detected. This generates far more accurate accerometer data in the .csv files. Signed-off-by: Keith Packard --- ao-tools/altosui/AltosEepromReader.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ao-tools/altosui/AltosEepromReader.java b/ao-tools/altosui/AltosEepromReader.java index 4cc8536a..03e73812 100644 --- a/ao-tools/altosui/AltosEepromReader.java +++ b/ao-tools/altosui/AltosEepromReader.java @@ -95,7 +95,6 @@ public class AltosEepromReader extends AltosReader { boolean last_reported; double ground_pres; - double ground_accel; int n_pad_samples; @@ -140,9 +139,6 @@ public class AltosEepromReader extends AltosReader { ground_pres += state.pres; state.ground_pres = (int) (ground_pres / n_pad_samples); state.flight_pres = state.ground_pres; - ground_accel += state.accel; - state.ground_accel = (int) (ground_accel / n_pad_samples); - state.flight_accel = state.ground_accel; } else { state.flight_pres = (state.flight_pres * 15 + state.pres) / 16; state.flight_accel = (state.flight_accel * 15 + state.accel) / 16; @@ -345,6 +341,7 @@ public class AltosEepromReader extends AltosReader { tick = record.tick; if (record.cmd == Altos.AO_LOG_FLIGHT) { state.ground_accel = record.a; + state.flight_accel = record.a; state.flight = record.b; boost_tick = tick; seen |= seen_flight; -- cgit v1.2.3 From 1260589976c1a95848b298497fd251c4ee7d3f93 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 19 Sep 2010 02:52:29 -0700 Subject: altosui: Write raw sensor data to .csv files For data export, provide the raw sensor samples instead of the filtered values. Signed-off-by: Keith Packard --- ao-tools/altosui/AltosCSV.java | 6 +++--- ao-tools/altosui/AltosRecord.java | 22 +++++++++++++++++----- ao-tools/altosui/AltosState.java | 2 +- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/ao-tools/altosui/AltosCSV.java b/ao-tools/altosui/AltosCSV.java index 07fa371f..f7b3c03c 100644 --- a/ao-tools/altosui/AltosCSV.java +++ b/ao-tools/altosui/AltosCSV.java @@ -111,9 +111,9 @@ public class AltosCSV { void write_basic(AltosRecord record) { out.printf("%8.2f,%10.2f,%8.2f,%8.2f,%8.2f,%8.2f,%5.1f,%5.2f,%5.2f,%5.2f", record.acceleration(), - record.pressure(), - record.altitude(), - record.height(), + record.raw_pressure(), + record.raw_altitude(), + record.raw_height(), record.accel_speed(), state.baro_speed, record.temperature(), diff --git a/ao-tools/altosui/AltosRecord.java b/ao-tools/altosui/AltosRecord.java index b670ee37..18c6079d 100644 --- a/ao-tools/altosui/AltosRecord.java +++ b/ao-tools/altosui/AltosRecord.java @@ -73,7 +73,11 @@ public class AltosRecord { return ((count / 16.0) / 2047.0 + 0.095) / 0.009 * 1000.0; } - public double pressure() { + public double raw_pressure() { + return barometer_to_pressure(pres); + } + + public double filtered_pressure() { return barometer_to_pressure(flight_pres); } @@ -81,16 +85,24 @@ public class AltosRecord { return barometer_to_pressure(ground_pres); } - public double altitude() { - return AltosConvert.pressure_to_altitude(pressure()); + public double filtered_altitude() { + return AltosConvert.pressure_to_altitude(filtered_pressure()); + } + + public double raw_altitude() { + return AltosConvert.pressure_to_altitude(raw_pressure()); } public double ground_altitude() { return AltosConvert.pressure_to_altitude(ground_pressure()); } - public double height() { - return altitude() - ground_altitude(); + public double filtered_height() { + return filtered_altitude() - ground_altitude(); + } + + public double raw_height() { + return raw_altitude() - ground_altitude(); } public double battery_voltage() { diff --git a/ao-tools/altosui/AltosState.java b/ao-tools/altosui/AltosState.java index 3ef00f35..90e73f5e 100644 --- a/ao-tools/altosui/AltosState.java +++ b/ao-tools/altosui/AltosState.java @@ -80,7 +80,7 @@ public class AltosState { data = cur; ground_altitude = data.ground_altitude(); - height = data.altitude() - ground_altitude; + height = data.filtered_altitude() - ground_altitude; report_time = System.currentTimeMillis(); -- cgit v1.2.3