X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosui%2FAltosGraphDataPoint.java;h=a0b0925cfb693cb8bec77d9d493191922fd1c913;hb=2f196323a2829f9537f3b339f19478127ffde623;hp=1c11616637c356ac1f67168bbc101f3a51d0db79;hpb=5fb246fb50e262aa81ef7eb430be9782cfcf8848;p=fw%2Faltos diff --git a/altosui/AltosGraphDataPoint.java b/altosui/AltosGraphDataPoint.java index 1c116166..a0b0925c 100644 --- a/altosui/AltosGraphDataPoint.java +++ b/altosui/AltosGraphDataPoint.java @@ -50,9 +50,14 @@ 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_gps_course = 26; + public static final int data_gps_ground_speed = 27; + public static final int data_gps_climb_rate = 28; + public static final int data_ignitor_0 = 29; 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(); @@ -164,11 +169,37 @@ public class AltosGraphDataPoint implements AltosUIDataPoint { case data_orient: y = state.orient(); break; + case data_gps_course: + if (state.gps != null) + y = state.gps.course; + else + y = AltosLib.MISSING; + break; + case data_gps_ground_speed: + if (state.gps != null) + y = state.gps.ground_speed; + else + y = AltosLib.MISSING; + break; + case data_gps_climb_rate: + if (state.gps != null) + y = state.gps.climb_rate; + else + y = AltosLib.MISSING; + 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; } @@ -180,16 +211,28 @@ public class AltosGraphDataPoint implements AltosUIDataPoint { public int id(int index) { if (index == data_state) { int s = state.state; - if (s < Altos.ao_flight_boost || s > Altos.ao_flight_landed) - return -1; - return s; + if (Altos.ao_flight_boost <= s && s <= Altos.ao_flight_landed) + 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; + return -1; } 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 ""; }