From cd55709cc0bc01c2150570fc0823b7d3a0e14095 Mon Sep 17 00:00:00 2001 From: David Madl Date: Sun, 14 Jun 2026 16:21:48 +0200 Subject: [PATCH] feat: add ts to StepDetector --- pasada-lib/include/step_detector.h | 11 ++++++++--- pasada-lib/step_detector.cpp | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/pasada-lib/include/step_detector.h b/pasada-lib/include/step_detector.h index d27c23e..8c8123e 100644 --- a/pasada-lib/include/step_detector.h +++ b/pasada-lib/include/step_detector.h @@ -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 */ @@ -55,8 +55,13 @@ protected: public: StepDetector(double fps, StepListener *listener, bool debug = false); + /** + * Push accelerometer values. + * @param ts timestamp in ns + * @param values acceleration values for x,y,z + */ void filter(double ts, std::vector values); - void filter_a(double s1); + void filter_a(double t, double s1); std::vector getBufSsd(); std::vector getBufSqi(); std::vector getBufOut(); diff --git a/pasada-lib/step_detector.cpp b/pasada-lib/step_detector.cpp index dd4480a..5e823c4 100644 --- a/pasada-lib/step_detector.cpp +++ b/pasada-lib/step_detector.cpp @@ -65,11 +65,11 @@ void StepDetector::filter(double ts, std::vector 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); } }