This repository has been archived on 2025-06-01. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
compLIB/server_v2/include/Encoders.hpp
Konstantin Lampalzer 6a1ac72912 Change RPM to M/S
2022-05-26 18:55:57 +02:00

35 lines
795 B
C++

#ifndef COMPLIB_SERVER_ENCODERS_HPP
#define COMPLIB_SERVER_ENCODERS_HPP
#include <array>
#include <cstdint>
#include "include/Cache.hpp"
#include "include/Robot.hpp"
class Encoders {
public:
static Encoders &getInstance() {
static Encoders instance;
return instance;
}
Encoders(Encoders const &) = delete;
void operator=(Encoders const &) = delete;
std::array<int32_t, ROBOT_MOTOR_COUNT> get_positions();
std::array<double, ROBOT_MOTOR_COUNT> get_velocities_ms();
private:
Encoders() = default;
Cache position_cache{ROBOT_ENCODER_RATE_HZ};
Cache velocity_cache{ROBOT_ENCODER_RATE_HZ};
std::array<int32_t, ROBOT_MOTOR_COUNT> cached_positions = {0};
std::array<double, ROBOT_MOTOR_COUNT> cached_velocities_ms = {0};
};
#endif //COMPLIB_SERVER_ENCODERS_HPP