package org.spin.gaitlib.sensor;
import org.spin.gaitlib.GaitAnalysis;
import java.util.concurrent.TimeUnit;
/**
* Signal reading that includes a set of three values.
*/
public class ThreeAxisSensorReading extends SignalReading {
private final float x, y, z;
/**
* @param timeSinceStart Amount of time elapsed since {@link GaitAnalysis} instance is created,
* in nanoseconds.
* @param absoluteTime Timestamp of the reading, measured in Unix time.
* @param absoluteTimeUnit Unit of Unix time.
*/
public ThreeAxisSensorReading(float signalX, float signalY, float signalZ, long timeSinceStart,
long absoluteTime, TimeUnit absoluteTimeUnit) {
super(timeSinceStart, absoluteTime, absoluteTimeUnit);
this.x = signalX;
this.y = signalY;
this.z = signalZ;
}
public float getX() {
return this.x;
}
public float getY() {
return this.y;
}
public float getZ() {
return this.z;
}
/**
* @return A 5-element array, containing the Unix time in milliseconds, time since
* {@link GaitAnalysis} instance is created in nanoseconds, and the 3 sensor values.
*/
public String[] getStringArray() {
String[] array = new String[4];
array[0] = String.valueOf(TimeUnit.MILLISECONDS.convert(getTimeSinceStart(),
TimeUnit.NANOSECONDS));
array[1] = String.valueOf(x);
array[2] = String.valueOf(y);
array[3] = String.valueOf(z);
return array;
}
/**
* @return "[timeSinceStart], [x], [y], [x]"
*/
@Override
public String toString() {
return String.valueOf(this.getTimeSinceStartInS()) + "," + String.valueOf(this.x) + ","
+ String.valueOf(this.y) + ","
+ String.valueOf(this.z);
}
}