From 5fb246fb50e262aa81ef7eb430be9782cfcf8848 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 29 Apr 2014 19:04:30 -0700 Subject: [PATCH] altosui: Add extra ignitors to graphable objects List all of the available extra ignitors as possible things to graph. Signed-off-by: Keith Packard --- altosui/AltosFlightStats.java | 3 +++ altosui/AltosGraph.java | 11 ++++++++++- altosui/AltosGraphDataPoint.java | 12 +++++++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/altosui/AltosFlightStats.java b/altosui/AltosFlightStats.java index 0be49c2f..d02a518d 100644 --- a/altosui/AltosFlightStats.java +++ b/altosui/AltosFlightStats.java @@ -42,6 +42,7 @@ public class AltosFlightStats { boolean has_imu; boolean has_mag; boolean has_orient; + int num_ignitor; double landed_time(AltosStateIterable states) { AltosState state = null; @@ -171,6 +172,8 @@ public class AltosFlightStats { has_mag = true; if (state.orient() != AltosLib.MISSING) has_orient = true; + if (state.ignitor_voltage != null && state.ignitor_voltage.length > num_ignitor) + num_ignitor = state.ignitor_voltage.length; } for (int s = Altos.ao_flight_startup; s <= Altos.ao_flight_landed; s++) { if (state_count[s] > 0) { diff --git a/altosui/AltosGraph.java b/altosui/AltosGraph.java index 42334e31..f1495676 100644 --- a/altosui/AltosGraph.java +++ b/altosui/AltosGraph.java @@ -389,7 +389,16 @@ public class AltosGraph extends AltosUIGraph { orient_color, false, orient_axis); + if (stats.num_ignitor > 0) { + for (int i = 0; i < stats.num_ignitor; i++) + addSeries(AltosIgnitor.ignitor_name(i), + AltosGraphDataPoint.data_ignitor_0 + i, + voltage_units, + main_voltage_color, + false, + voltage_axis); + } setDataSet(dataSet); } -} \ No newline at end of file +} diff --git a/altosui/AltosGraphDataPoint.java b/altosui/AltosGraphDataPoint.java index e672d1bf..1c116166 100644 --- a/altosui/AltosGraphDataPoint.java +++ b/altosui/AltosGraphDataPoint.java @@ -50,6 +50,9 @@ public class AltosGraphDataPoint implements AltosUIDataPoint { public static final int data_mag_y = 23; public static final int data_mag_z = 24; public static final int data_orient = 25; + public static final int data_ignitor_0 = 26; + public static final int data_ignitor_num = 32; + public static final int data_ignitor_max = data_ignitor_0 + data_ignitor_num - 1; public double x() throws AltosUIDataMissing { double time = state.time_since_boost(); @@ -161,6 +164,13 @@ public class AltosGraphDataPoint implements AltosUIDataPoint { case data_orient: y = state.orient(); break; + default: + if (data_ignitor_0 <= index && index <= data_ignitor_max) { + int ignitor = index - data_ignitor_0; + if (state.ignitor_voltage != null && ignitor < state.ignitor_voltage.length) + y = state.ignitor_voltage[ignitor]; + } + break; } if (y == AltosLib.MISSING) throw new AltosUIDataMissing(index); @@ -186,4 +196,4 @@ public class AltosGraphDataPoint implements AltosUIDataPoint { public AltosGraphDataPoint (AltosState state) { this.state = state; } -} \ No newline at end of file +} -- 2.30.2