Merge C:/Users/david/Documents/src/lockstep/app/src/main/cpp/libpasada
This commit is contained in:
@@ -12,8 +12,8 @@
|
||||
|
||||
class StepListener {
|
||||
public:
|
||||
virtual ~StepListener() {}
|
||||
virtual void playBeat() = 0;
|
||||
virtual ~StepListener() = default;
|
||||
virtual void playBeat(double t) = 0;
|
||||
};
|
||||
|
||||
/** mean-filter the gravity vector, then take acceleration downwards */
|
||||
@@ -60,10 +60,14 @@ public:
|
||||
* @param debug collect debug buffers (used in unit tests)
|
||||
*/
|
||||
StepDetector(double fps, StepListener *listener, bool debug = false);
|
||||
/** filter using raw accel samples (unevenly spaced and 3-dimensional) */
|
||||
/**
|
||||
* Push raw accelerometer values (unevenly sampled and 3-dimensional).
|
||||
* @param ts timestamp in ns
|
||||
* @param values acceleration values for x,y,z
|
||||
*/
|
||||
void filter(double ts, std::vector<float> values);
|
||||
/** filter using scalar accel samples in \vec{e_g} direction */
|
||||
void filter_a(double s1);
|
||||
void filter_a(double t, double s1);
|
||||
std::vector<double> getBufSsd();
|
||||
std::vector<double> getBufSqi();
|
||||
std::vector<double> getBufOut();
|
||||
@@ -75,4 +79,4 @@ public:
|
||||
double primeFilters(double fps, std::vector<double> sig);
|
||||
};
|
||||
|
||||
#endif //PASADASUPERPROJECT_STEP_DETECTOR_H
|
||||
#endif //PASADASUPERPROJECT_STEP_DETECTOR_H
|
||||
|
||||
@@ -65,11 +65,11 @@ void StepDetector::filter(double ts, std::vector<float> values) {
|
||||
// gravity filtering
|
||||
double a = f_grav.filter(samp);
|
||||
// pass on accel sample
|
||||
filter_a(a);
|
||||
filter_a(ts, a);
|
||||
}
|
||||
}
|
||||
|
||||
void StepDetector::filter_a(double s2) {
|
||||
void StepDetector::filter_a(double ts, double s2) {
|
||||
auto s3 = f_ssf.filter(s2);
|
||||
auto s4 = f_ssd.filter(s3);
|
||||
auto q5 = f_sqi.filter(s2, s3, s4);
|
||||
@@ -80,7 +80,7 @@ void StepDetector::filter_a(double s2) {
|
||||
}
|
||||
// is step, step quality is OK, and we have a listener?
|
||||
if(s4 > 0.0 && q5 > 0.0 && listener != nullptr) {
|
||||
listener->playBeat();
|
||||
listener->playBeat(ts / 1e9);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user