summaryrefslogtreecommitdiff
path: root/micropeak/MicroData.java
diff options
context:
space:
mode:
Diffstat (limited to 'micropeak/MicroData.java')
-rw-r--r--micropeak/MicroData.java77
1 files changed, 11 insertions, 66 deletions
diff --git a/micropeak/MicroData.java b/micropeak/MicroData.java
index 8ccd5fd8..2afd3cd7 100644
--- a/micropeak/MicroData.java
+++ b/micropeak/MicroData.java
@@ -22,7 +22,7 @@ import java.io.*;
import java.util.*;
import org.altusmetrum.AltosLib.*;
-abstract class MicroIterator implements Iterator<Double> {
+class MicroIterator implements Iterator<MicroDataPoint> {
int i;
MicroData data;
@@ -30,6 +30,10 @@ abstract class MicroIterator implements Iterator<Double> {
return i < data.pressures.length;
}
+ public MicroDataPoint next() {
+ return new MicroDataPoint(data, i++);
+ }
+
public MicroIterator (MicroData data) {
this.data = data;
i = 0;
@@ -39,66 +43,15 @@ abstract class MicroIterator implements Iterator<Double> {
}
}
-class MicroHeightIterator extends MicroIterator {
- public Double next() {
- return data.height(i++);
- }
-
- public MicroHeightIterator(MicroData data) {
- super(data);
- }
-}
-
-class MicroHeightIterable implements Iterable<Double> {
- MicroData data;
-
- public Iterator<Double> iterator() {
- return new MicroHeightIterator(data);
- }
-
- public MicroHeightIterable(MicroData data) {
- this.data = data;
- }
-}
-
-class MicroSpeedIterator extends MicroIterator {
- public Double next() {
- return data.speed(i++);
- }
- public MicroSpeedIterator(MicroData data) {
- super(data);
- }
-}
-
-class MicroSpeedIterable implements Iterable<Double> {
- MicroData data;
-
- public Iterator<Double> iterator() {
- return new MicroSpeedIterator(data);
- }
-
- public MicroSpeedIterable(MicroData data) {
- this.data = data;
- }
-}
+class MicroIterable implements Iterable<MicroDataPoint> {
-class MicroAccelIterator extends MicroIterator {
- public Double next() {
- return data.acceleration(i++);
- }
- public MicroAccelIterator(MicroData data) {
- super(data);
- }
-}
-
-class MicroAccelIterable implements Iterable<Double> {
MicroData data;
- public Iterator<Double> iterator() {
- return new MicroAccelIterator(data);
+ public Iterator<MicroDataPoint> iterator() {
+ return new MicroIterator(data);
}
- public MicroAccelIterable(MicroData data) {
+ public MicroIterable(MicroData data) {
this.data = data;
}
}
@@ -225,16 +178,8 @@ public class MicroData {
return AltosConvert.pressure_to_altitude(pressures[i]);
}
- public Iterable<Double> heights() {
- return new MicroHeightIterable(this);
- }
-
- public Iterable<Double> speeds() {
- return new MicroSpeedIterable(this);
- }
-
- public Iterable<Double> accels() {
- return new MicroAccelIterable(this);
+ public Iterable<MicroDataPoint> points() {
+ return new MicroIterable(this);
}
int fact(int n) {