ZotBins Core
Loading...
Searching...
No Matches
FullnessMetric.hpp
Go to the documentation of this file.
1
8
9#ifndef FULLNESS_HPP
10#define FULLNESS_HPP
11
12#include "IDistance.hpp"
13#include <array>
14#include <cstddef>
15#include <cstdint>
16
17namespace Fullness
18{
24 {
25 public:
32 FullnessMetric(uint32_t binHeight, IDistance &distanceSensor);
33
39 float getFullness();
40
47 bool isValidDistance(uint32_t distance);
48
49 private:
50 static constexpr size_t mDistanceBufferSize = 8;
51
52 float IQM(std::array<int32_t, mDistanceBufferSize> &distanceBuffer);
53
54 void shellSort(std::array<int32_t, mDistanceBufferSize> &arr);
55
60 uint32_t mBinHeight;
61
66 IDistance &mDistanceSensor;
67 };
68}
69#endif
Header file for IDistance class.
FullnessMetric(uint32_t binHeight, IDistance &distanceSensor)
Construct a new FullnessMetric object.
Definition FullnessMetric.cpp:6
float getFullness()
Returns the fullness percentage of the bin.
Definition FullnessMetric.cpp:10
bool isValidDistance(uint32_t distance)
Checks if distance is valid.
Definition FullnessMetric.cpp:27
Interface (abstract) class for mock and real hardware ultrasonic (fullness/distance) sensor....
Definition IDistance.hpp:22