24 #include "AxisPositionMonitor.hpp"
29 #include <ccut/utils.hpp>
33 using namespace units;
35 static const std::map<AxisPositionMonitor::State, std::string> s_stateToStr{
36 {AxisPositionMonitor::State::DISABLED,
"disabled"},
37 {AxisPositionMonitor::State::ENABLED,
"enabled"},
38 {AxisPositionMonitor::State::UNKNOWN,
"unknown"},
39 {AxisPositionMonitor::State::TRIGGERED,
"triggered"}};
40 static const std::map<std::string, AxisPositionMonitor::State> s_stateFromStr{
41 ccut::flip(s_stateToStr)};
42 static const std::set<AxisPositionMonitor::State> s_stateKeys{
43 ccut::keys(s_stateToStr)};
46 const std::string &address,
47 const std::shared_ptr<Axis> &axis,
48 const std::shared_ptr<PositionSensor> &position) :
56 return DeviceBase::DeviceType::AXIS_POSITION_MONITOR;
65 const std::string &
to_string(AxisPositionMonitor::State state)
67 decltype(s_stateToStr)::const_iterator it = s_stateToStr.find(state);
68 return (it != s_stateToStr.cend()) ?
70 s_stateToStr.at(AxisPositionMonitor::State::UNKNOWN);
74 AxisPositionMonitor::State
from_string(
const std::string &str)
76 decltype(s_stateFromStr)::const_iterator it = s_stateFromStr.find(str);
77 return (it != s_stateFromStr.cend()) ? it->second :
78 AxisPositionMonitor::State::UNKNOWN;
DeviceType type() const override
Get device type.
AxisPositionMonitor(const std::string &address, const std::shared_ptr< Axis > &axis, const std::shared_ptr< PositionSensor > &position)
Construct a new AxisPositionMonitor Device.
AxisPositionMonitor::State from_string(const std::string &str)
convert string to state
const std::set< AxisPositionMonitor::State > & getEnumValues()
Get devices types list (to be iterated)
const std::string & to_string(Axis::State state)
convert State to string
DeviceType
List of possible device types supported.
main motion-lib namespace