X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosui%2FAltosGraphDataPoint.java;h=a771db53c47cfc1abc71074159b3b840af4f2d94;hb=39fbc4cb1d4c92522c90aa5e36fd62a4827d8306;hp=b2782459d28a16e33b65b760f57c1fe0c694803f;hpb=8e5f3b922100f9de54b9650df14749e81b1a6562;p=fw%2Faltos diff --git a/altosui/AltosGraphDataPoint.java b/altosui/AltosGraphDataPoint.java index b2782459..a771db53 100644 --- a/altosui/AltosGraphDataPoint.java +++ b/altosui/AltosGraphDataPoint.java @@ -18,7 +18,7 @@ package altosui; import org.altusmetrum.altosuilib_1.*; -import org.altusmetrum.altoslib_2.*; +import org.altusmetrum.altoslib_3.*; public class AltosGraphDataPoint implements AltosUIDataPoint { @@ -50,6 +50,11 @@ 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 static final int data_ignitor_fired_0 = data_ignitor_0 + data_ignitor_num; + public static final int data_ignitor_fired_max = data_ignitor_fired_0 + data_ignitor_num - 1; public double x() throws AltosUIDataMissing { double time = state.time_since_boost(); @@ -87,7 +92,7 @@ public class AltosGraphDataPoint implements AltosUIDataPoint { break; case data_gps_height: y = state.gps_height; - break; + break; case data_gps_nsat_solution: if (state.gps != null) y = state.gps.nsat; @@ -109,7 +114,7 @@ public class AltosGraphDataPoint implements AltosUIDataPoint { case data_pressure: y = state.pressure(); break; - + case data_accel_x: case data_accel_y: case data_accel_z: @@ -161,6 +166,21 @@ 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]; + } else if (data_ignitor_fired_0 <= index && index <= data_ignitor_fired_max) { + int ignitor = index - data_ignitor_fired_0; + if (state.ignitor_voltage != null && ignitor < state.ignitor_voltage.length) { + if ((state.pyro_fired & (1 << ignitor)) != 0) + y = 1; + else + y = 0; + } + } + break; } if (y == AltosLib.MISSING) throw new AltosUIDataMissing(index); @@ -173,17 +193,30 @@ public class AltosGraphDataPoint implements AltosUIDataPoint { if (s < Altos.ao_flight_boost || s > Altos.ao_flight_landed) return -1; return s; + } else if (data_ignitor_fired_0 <= index && index <= data_ignitor_fired_max) { + int ignitor = index - data_ignitor_fired_0; + if (state.ignitor_voltage != null && ignitor < state.ignitor_voltage.length) { + if (state.ignitor_voltage != null && ignitor < state.ignitor_voltage.length) { + if ((state.pyro_fired & (1 << ignitor)) != 0) + return 1; + } + } } return 0; } public String id_name(int index) { - if (index == data_state) + if (index == data_state) { return state.state_name(); + } else if (data_ignitor_fired_0 <= index && index <= data_ignitor_fired_max) { + int ignitor = index - data_ignitor_fired_0; + if (state.ignitor_voltage != null && ignitor < state.ignitor_voltage.length) + return AltosIgnitor.ignitor_name(ignitor); + } return ""; } public AltosGraphDataPoint (AltosState state) { this.state = state; } -} \ No newline at end of file +}