dummy_controller/dummy_controller.h Source File

[[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
 
        //system serial port the loopback is connected to.
        std::string port;
 
    private:
        std::shared_ptr<SerialComHandler> serialCom;
        
 
    };
 
 
 
}// namespace ControlAPI
 
 
[[PREPROC_HEADER_GUARD_END]]