24 #ifndef GRBLAXIS_HPP__
25 #define GRBLAXIS_HPP__
29 #include "device/Axis.hpp"
39 typedef std::shared_ptr<GrblAxis> Shared;
41 GrblAxis(
const std::string &
uid,
const std::shared_ptr<GrblPlatform> &grbl);
47 std::future<void>
stop()
const override;
49 std::future<void>
pause()
const override;
51 std::future<void>
resume()
const override;
53 std::future<units::value_t>
getPosition(units::unit_t unit)
const override;
61 const std::chrono::milliseconds &timeout = std::chrono::seconds{
64 std::future<State>
getState()
const override;
66 std::future<std::set<std::string>>
listConfig()
const override;
68 std::future<std::string>
getConfig(
const std::string &name)
const override;
70 std::future<void>
setConfig(
const std::string &name,
71 const std::string &value)
const override;
74 units::unit_t unit)
const override;
79 std::weak_ptr<GrblPlatform> m_grbl;
DeviceId uid() const
Get the address of device.
std::future< State > getState() const override
Get the current axis state.
bool canConvert(const units::Value &value, units::unit_t unit) const override
Check if unit conversion is possible in a manner specific to this device.
std::future< void > resume() const override
Resume paused motion.
std::future< void > pause() const override
Pause ongoing motion, prevent queued motions from running.
std::future< void > setConfig(const std::string &name, const std::string &value) const override
set device configuration value
std::future< void > takeReference(const std::chrono::milliseconds &timeout=std::chrono::seconds{ 120}) const override
Start a homing sequence.
std::future< std::set< std::string > > listConfig() const override
list device configuration options
std::future< units::value_t > getPosition(units::unit_t unit) const override
Get current position of this axis.
units::value_t lastPosition(units::unit_t unit) const override
Get last known position of the axis.
std::future< void > setActualPosition(const units::Value &position) const override
Set current axis position.
std::future< void > stop() const override
Stop any ongoing motion, flush the motion-queue.
std::future< std::string > getConfig(const std::string &name) const override
get device configuration value
bool convert(units::Value &value, units::unit_t unit) const override
Convert value in a manner specific to this device.
std::future< void > moveBy(const units::Value &distance) const override
Move this axis by given distance.
std::future< void > moveTo(const units::Value &position) const override
Move this axis to given position.
main motion-lib namespace