diff --git a/ECTrainer2/BitalMonitor.cpp b/ECTrainer2/BitalMonitor.cpp index aa2e0a0..f536e0b 100644 --- a/ECTrainer2/BitalMonitor.cpp +++ b/ECTrainer2/BitalMonitor.cpp @@ -47,7 +47,7 @@ if (RR > 0) { _rrInterval.Put(RR); } - //std::cout << "Read:" << RR << std::endl; + std::cout << "Read:" << RR << std::endl; } sp = pt + 1; } diff --git a/ECTrainer2/BitalMonitor.h b/ECTrainer2/BitalMonitor.h index 02dec1c..2fe5620 100644 --- a/ECTrainer2/BitalMonitor.h +++ b/ECTrainer2/BitalMonitor.h @@ -16,5 +16,5 @@ bool Init(); bool MainLoop(); int GetRR() { return _rrInterval.Get(); } - int GetHB() { return _rrInterval.Get() ? 60000 / _rrInterval.Get() : 0; } + int GetHB() { return _rrInterval.Get() < 1 ? 0 : 60000 / _rrInterval.Get(); } }; diff --git a/ECTrainer2/RingBuffer.h b/ECTrainer2/RingBuffer.h index 81c0e1f..15f1ca0 100644 --- a/ECTrainer2/RingBuffer.h +++ b/ECTrainer2/RingBuffer.h @@ -17,7 +17,7 @@ RingBuffer(int size); ~RingBuffer(); void Put(T value); - T Get(); + T Get(int past = 0); bool IsNew() { return _update; }; }; @@ -54,8 +54,8 @@ } template -T RingBuffer::Get() { - int read = _read; +T RingBuffer::Get(int past) { + int read = (_read + _size - past) % _size; _mtxData[read].lock(); T value = _data[read]; _mtxData[read].unlock();