24 #include "MockGpio.hpp"
26 #include <ccut/async.hpp>
28 #include "MockPlatform.hpp"
30 using namespace logger;
32 using namespace smc::internal;
33 using namespace smc::units;
35 MockGpio::MockGpio(
const std::string &uid,
36 const std::shared_ptr<MockPlatform> &mock) :
41 std::future<void> MockGpio::setIoState(
const io_port_t &state)
const
43 std::shared_ptr<MockPlatform> mock(m_mock.lock());
45 return ccut::make_future_error(
46 Exception(ErrorCode::Canceled,
"platform stopped (deleted)"));
48 info(MockPlatform::s_loggerCat)
49 <<
"Setting GPIO " <<
uid()
50 <<
" on MockPlatform id: " << mock->getPlatformId() <<
" to state "
52 std::promise<void> setStatePromise;
53 auto setStateFuture = setStatePromise.get_future();
56 mock->setGpioState(
uid(), state);
57 setStatePromise.set_value();
61 setStatePromise.set_exception(std::current_exception());
63 return setStateFuture;
68 std::shared_ptr<MockPlatform> mock(m_mock.lock());
70 return ccut::make_future_error<io_port_t>(
71 Exception(ErrorCode::Canceled,
"platform stopped (deleted)"));
73 info(MockPlatform::s_loggerCat)
74 <<
"Querying GPIO " <<
uid()
75 <<
" on MockPlatform id: " << mock->getPlatformId() <<
" for state";
76 std::promise<io_port_t> statePromise;
77 auto stateFuture = statePromise.get_future();
80 statePromise.set_value(mock->getGpioState(
uid()));
84 statePromise.set_exception(std::current_exception());
DeviceId uid() const
Get the address of device.
Exception thrown by MotionController in case of issues with command.
std::future< units::io_port_t > getIoState() const override
Get current state of this GPIO.
main motion-lib namespace