7void insert_value_queue(
const int value, std::deque<int>& queue,
const unsigned int max_queue_size) {
8 queue.push_front(value);
10 if (queue.size() > max_queue_size) {
23 const double sum = std::accumulate(queue.begin(), queue.end(), 0);
24 avg =
static_cast<int>(sum / queue.size());
29bool check_sequence(
const uint8_t* data,
const std::array<uint8_t, 3>& expected) {
30 return (data[1] == expected[0] && data[2] == expected[1] && data[3] == expected[2]);
44 data.
input = roundf(rr_rpm * 100);
51 std::copy(std::begin(data.
output), std::end(data.
output), rr_rpm_byte);
64void debounce(
const bool new_value,
bool& stored_value,
unsigned int& counter,
65 const unsigned int counter_limit) {
66 if (new_value == stored_value) {
70 if (counter >= counter_limit) {
71 stored_value = new_value;
77void debounce(
const bool new_value,
bool& stored_value,
unsigned int& counter) {
78 debounce(new_value, stored_value, counter, 50);
void rpm_2_byte(const float rr_rpm, char *rr_rpm_byte)
void insert_value_queue(const int value, std::deque< int > &queue, const unsigned int max_queue_size)
void debounce(const bool new_value, bool &stored_value, unsigned int &counter, const unsigned int counter_limit)
debounce function to avoid sporadic changes (and repeating the code everywhere)
bool check_sequence(const uint8_t *data, const std::array< uint8_t, 3 > &expected)
int average_queue(const std::deque< int > &queue)