/*
* Author: Bryan Stern 2011
* This is wrapper class for the current gait state that is returned by the GaitAnalysis class.
*/
package org.spin.gaitlib.cadence;
import java.util.concurrent.TimeUnit;
/**
* A CadenceState contains cadence, speed, confidence of cadence calculation and the timestamp of
* the cadence state.
*
* @author Mike
*/
public class CadenceState {
private final float cadence;
private final float speed;
private final float cadenceConfidence;
private final long timestamp;
private final long timeSinceStart;
/**
* @param cadence
* @param speed
* @param cadenceConfidence
* @param timestamp current system time in nanoseconds
* @param timeSinceStart time since start, in nanoseconds.
*/
public CadenceState(float cadence, float speed, float cadenceConfidence,
long timestamp, long timeSinceStart) {
this.cadence = cadence;
this.speed = speed;
this.cadenceConfidence = cadenceConfidence;
this.timestamp = timestamp;
this.timeSinceStart = timeSinceStart;
}
/**
* @return unfiltered cadence.
*/
public float getCadence() {
return this.cadence;
}
/**
* @return un-filtered cadence.
*/
public float getStrideLength() {
return this.speed / this.cadence;
}
public float getSpeed() {
return this.speed;
}
public float getCadenceConfidence() {
return this.cadenceConfidence;
}
/**
* @return timestamp in nanoseconds
*/
public long getTimestamp() {
return this.timestamp;
}
/**
* @return time since start, in nanoseconds.
*/
public long getTimeSinceStart() {
return this.timeSinceStart;
}
/**
* @return an array consisted of time since start (in milliseconds), cadence, speed, and cadence
* confidence.
*/
public String[] getStringArray() {
String[] array = new String[4];
array[0] = String.valueOf(TimeUnit.MILLISECONDS.convert(timeSinceStart,
TimeUnit.NANOSECONDS));
array[1] = String.valueOf(cadence);
array[2] = String.valueOf(speed);
array[3] = String.valueOf(cadenceConfidence);
return array;
}
@Override
public String toString() {
Float confidence = Float.valueOf(this.cadenceConfidence);
return String.valueOf(timestamp) + "," + String.valueOf(cadence) + ","
+ String.valueOf(getStrideLength()) + "," + String.valueOf(speed) + ","
+ confidence.toString();
}
}