23 lines
573 B
C++
23 lines
573 B
C++
#pragma once
|
|
#include <array>
|
|
#include <string>
|
|
namespace cms {
|
|
struct CanSnapshot {
|
|
std::array<int,4> positions{{-1,-1,-1,-1}}; // LF, RF, LR, RR
|
|
double age_ms{-1};
|
|
bool valid{false};
|
|
std::string source{"hardware"},side{"left"};
|
|
};
|
|
class CanInput {
|
|
public:
|
|
explicit CanInput(bool enabled);
|
|
~CanInput();
|
|
CanInput(CanInput const&)=delete;
|
|
CanInput& operator=(CanInput const&)=delete;
|
|
CanSnapshot snapshot(std::string const& side,double timeoutMs) const;
|
|
private:
|
|
bool opened_{};
|
|
};
|
|
std::string activeDoor(CanSnapshot const& state);
|
|
}
|