altosui: Mark TeleMega additional pyro ignitor fired points in graphs
authorKeith Packard <keithp@keithp.com>
Thu, 1 May 2014 05:10:29 +0000 (22:10 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 1 May 2014 05:10:29 +0000 (22:10 -0700)
Add markers to indicate when each additional pyro channel fires

Signed-off-by: Keith Packard <keithp@keithp.com>
altosui/AltosGraph.java
altosui/AltosGraphDataPoint.java

index f14956762bd8752a165752eb2ff42ca9f447e09e..564bed86855818c1ffa6b2a37e78e652cb998693 100644 (file)
@@ -397,6 +397,8 @@ public class AltosGraph extends AltosUIGraph {
                                          main_voltage_color,
                                          false,
                                          voltage_axis);
                                          main_voltage_color,
                                          false,
                                          voltage_axis);
+                       for (int i = 0; i < stats.num_ignitor; i++)
+                               addMarker(AltosIgnitor.ignitor_name(i), AltosGraphDataPoint.data_ignitor_fired_0 + i, state_color);
                }
 
                setDataSet(dataSet);
                }
 
                setDataSet(dataSet);
index 1c11616637c356ac1f67168bbc101f3a51d0db79..a771db53c47cfc1abc71074159b3b840af4f2d94 100644 (file)
@@ -53,6 +53,8 @@ public class AltosGraphDataPoint implements AltosUIDataPoint {
        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_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();
 
        public double x() throws AltosUIDataMissing {
                double  time = state.time_since_boost();
@@ -169,6 +171,14 @@ public class AltosGraphDataPoint implements AltosUIDataPoint {
                                int ignitor = index - data_ignitor_0;
                                if (state.ignitor_voltage != null && ignitor < state.ignitor_voltage.length)
                                        y = state.ignitor_voltage[ignitor];
                                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;
                }
                        }
                        break;
                }
@@ -183,13 +193,26 @@ public class AltosGraphDataPoint implements AltosUIDataPoint {
                        if (s < Altos.ao_flight_boost || s > Altos.ao_flight_landed)
                                return -1;
                        return s;
                        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) {
                }
                return 0;
        }
 
        public String id_name(int index) {
-               if (index == data_state)
+               if (index == data_state) {
                        return state.state_name();
                        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 "";
        }
 
                return "";
        }