Switch from GPLv2 to GPLv2+
[fw/altos] / micropeak / MicroDataPoint.java
1 /*
2  * Copyright © 2012 Keith Packard <keithp@keithp.com>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
17  */
18
19 package org.altusmetrum.micropeak;
20
21 import org.altusmetrum.altosuilib_11.*;
22
23 public class MicroDataPoint implements AltosUIDataPoint {
24         public double           time;
25         public double           pressure;
26         public double           height;
27         public double           speed;
28         public double           accel;
29         public MicroStats       stats;
30
31         public static final int data_height = 0;
32         public static final int data_speed = 1;
33         public static final int data_accel = 2;
34         public static final int data_state = 3;
35
36         public double x() {
37                 return time;
38         }
39
40         public double y(int index) {
41                 switch (index) {
42                 case data_height:
43                         return height;
44                 case data_speed:
45                         return speed;
46                 case data_accel:
47                         return accel;
48                 default:
49                         return 0;
50                 }
51         }
52
53         public int id(int index) {
54                 if (index == data_state) {
55                         return stats.state(time);
56                 }
57                 return 0;
58         }
59
60         public String id_name(int index) {
61                 if (index == data_state)
62                         return stats.state_name(time);
63                 return "";
64         }
65
66         public MicroDataPoint (double pressure, double height, double speed, double accel, double time, MicroStats stats) {
67                 this.pressure = pressure;
68                 this.height = height;
69                 this.speed = speed;
70                 this.accel = accel;
71                 this.time = time;
72                 this.stats = stats;
73         }
74
75         public MicroDataPoint(MicroData data, int i) {
76                 this(data.pressure(i),
77                      data.height(i),
78                      data.speed(i),
79                      data.acceleration(i),
80                      data.time(i),
81                      data.stats);
82         }
83 }