25 #ifndef MGRBLSIM_HPP__
26 #define MGRBLSIM_HPP__
32 #include "GrblSim.hpp"
33 #include "MGrblDeviceBase.hpp"
34 #include "MGrblParser.hpp"
47 explicit MGrblSim(
size_t instances = defaultInstancesCount);
51 void write(
const std::string &data)
override;
52 bool wait(
const std::chrono::milliseconds &timeout)
override;
55 bool takeLine(std::string &out)
override;
57 static constexpr
size_t defaultInstancesCount = 8;
58 static constexpr
size_t axisCount = 8;
61 std::vector<std::unique_ptr<grbl::GrblSim>> m_instances;
64 size_t getTxInstance(
const std::string &line);
65 void processCtrl(
const std::string &line);
66 void ctrlWrite(
const std::string &line);
base class for multi-grbl devices
void read() override
fill LineBuffer with incoming bytes
void write(const std::string &data) override
raw write some bytes
bool takeLine(std::string &out) override
consume line from buffer
void wake() override
wake thread waiting for input
bool wait(const std::chrono::milliseconds &timeout) override
wait for input