[[PREPROC_HEADER_GUARD_BEGIN]]
#include "HC_API.h"
#include "controllers_utils.h"
namespace ControlAPI {
class HC_API DummyDeviceInfo : public DeviceInfo {
public:
HC_CLASS_META(DummyDeviceInfo)
HC_SWIG_SHAREDPTR(DummyDeviceInfo)
HC_CLASS_DEVICEINFO_META(DummyDeviceInfo, CommandStatus)
friend class DummyController;
virtual ~DummyDeviceInfo() = default;
float updateDelayTime_S = 0.0f;
private:
enum MotionState {
STATE_IDLE = 0,
STATE_MOVING_TO_TARGET_POS
};
MotionState currentState = STATE_IDLE;
float currentPos = 0.0f;
};
class HC_API DummyController : public DeviceController {
public:
HC_CLASS_META(DummyController)
HC_SWIG_SHAREDPTR(DummyController)
virtual ~DummyController() = default;
#ifdef HC_API_MACRO_EXCLUDE_DOCS
virtual bool init() override;
virtual bool issueCommand(CommandStatus* command) override;
#endif
bool BeginMotion(int apiDeviceId);
};
class HC_API CommunicationCommandPackage : public DeviceCommandPackage {
public:
HC_CLASS_DEVICECOMMANDPACKAGE_META(CommunicationCommandPackage)
virtual ~CommunicationCommandPackage() = default;
std::vector<uint8_t> outgoingBuffer;
};
class HC_API LoopBackComDeviceInfo : public DeviceInfo {
public:
HC_CLASS_META(LoopBackComDeviceInfo)
HC_SWIG_SHAREDPTR(LoopBackComDeviceInfo)
HC_CLASS_DEVICEINFO_META(LoopBackComDeviceInfo, CommandStatus)
friend class LoopBackComController;
virtual ~LoopBackComDeviceInfo() = default;
private:
};
class SerialComHandler;
class HC_API LoopBackComController : public DeviceController {
public:
HC_CLASS_META(LoopBackComController)
HC_SWIG_SHAREDPTR(LoopBackComController)
virtual ~LoopBackComController() = default;
#ifdef HC_API_MACRO_EXCLUDE_DOCS
virtual bool init() override;
virtual bool issueCommand(CommandStatus *command) override;
bool beginCommunication(int apiDeviceId);
#endif
std::string port;
private:
std::shared_ptr<SerialComHandler> serialCom;
};
}
[[PREPROC_HEADER_GUARD_END]]