altosuilib/micropeak: Add state markers to micropeak graph
[fw/altos] / micropeak / MicroDataPoint.java
index c58708e6aa73676332a44a9565811811d96dd247..61faf794e1edb10a51339726f3716a7a46230563 100644 (file)
 
 package org.altusmetrum.micropeak;
 
-public class MicroDataPoint {
-       public double   time;
-       public double   pressure;
-       public double   height;
-       public double   speed;
-       public double   accel;
-
-       public MicroDataPoint (double pressure, double height, double speed, double accel, double time) {
+import org.altusmetrum.altosuilib_1.*;
+
+public class MicroDataPoint implements AltosUIDataPoint {
+       public double           time;
+       public double           pressure;
+       public double           height;
+       public double           speed;
+       public double           accel;
+       public MicroStats       stats;
+
+       public static final int data_height = 0;
+       public static final int data_speed = 1;
+       public static final int data_accel = 2;
+       public static final int data_state = 3;
+
+       public double x() {
+               return time;
+       }
+
+       public double y(int index) {
+               switch (index) {
+               case data_height:
+                       return height;
+               case data_speed:
+                       return speed;
+               case data_accel:
+                       return accel;
+               default:
+                       return 0;
+               }
+       }
+
+       public int id(int index) {
+               if (index == data_state) {
+                       return stats.state(time);
+               }
+               return 0;
+       }
+
+       public String id_name(int index) {
+               if (index == data_state)
+                       return stats.state_name(time);
+               return "";
+       }
+
+       public MicroDataPoint (double pressure, double height, double speed, double accel, double time, MicroStats stats) {
                this.pressure = pressure;
                this.height = height;
                this.speed = speed;
                this.accel = accel;
                this.time = time;
+               this.stats = stats;
        }
 
        public MicroDataPoint(MicroData data, int i) {
@@ -37,6 +76,7 @@ public class MicroDataPoint {
                     data.height(i),
                     data.speed(i),
                     data.acceleration(i),
-                    data.time(i));
+                    data.time(i),
+                    data.stats);
        }
 }
\ No newline at end of file