[[PREPROC_HEADER_GUARD_BEGIN]]
#include <HC_API.h>
#include <controllers_utils.h>
namespace ControlAPI {
enum IsoLightPuck_LEDPatterns
{
IsoLightPuck_LEDPatterns_Continuous_Red = 16,
IsoLightPuck_LEDPatterns_Continuous_Yellow,
IsoLightPuck_LEDPatterns_Continuous_Green,
IsoLightPuck_LEDPatterns_Continuous_Blue,
IsoLightPuck_LEDPatterns_Continuous_Magenta,
IsoLightPuck_LEDPatterns_Flashing_Red,
IsoLightPuck_LEDPatterns_Flashing_Yellow,
IsoLightPuck_LEDPatterns_Flashing_Green,
IsoLightPuck_LEDPatterns_Flashing_Blue,
IsoLightPuck_LEDPatterns_Flashing_Magenta,
IsoLightPuck_LEDPatterns_Spin_Red,
IsoLightPuck_LEDPatterns_Spin_Yellow,
IsoLightPuck_LEDPatterns_Spin_Green,
IsoLightPuck_LEDPatterns_Spin_Blue,
IsoLightPuck_LEDPatterns_Spin_Magenta,
IsoLightPuck_LEDPatterns_RainbowCycle
};
class HC_API IsolightPuckCommand_Update : public DeviceCommandPackage {
public:
HC_CLASS_DEVICECOMMANDPACKAGE_META(IsolightPuckCommand_Update)
virtual ~IsolightPuckCommand_Update() = default;
#ifdef HC_API_MACRO_EXCLUDE_DOCS
virtual std::shared_ptr<CommandStateInfo> createCommandStateInfo() override;
virtual std::shared_ptr<CommandStatus> createCommandStatus() override;
#ifdef HC_API_FEATURE_NETWORKING
virtual void syncFromNetwork(CommandStatus* command) override;
#endif
#endif
IsoLightPuck_LEDPatterns ledPattern = IsoLightPuck_LEDPatterns_Continuous_Green;
};
class HC_API IsolightPuckUpdateStateInfo : public CommandStateInfo {
public:
HC_CLASS_META(IsolightPuckUpdateStateInfo)
HC_SWIG_SHAREDPTR(IsolightPuckUpdateStateInfo)
float sensor_GRXYZ_X = 0.0f;
float sensor_GRXYZ_Y = 0.0f;
float sensor_GRXYZ_Z = 0.0f;
float sensor_x_normalized = 0.0f;
float sensor_y_normalized = 0.0f;
float sensor_z_normalized = 0.0f;
float sensor_u_prime = 0.0f;
float sensor_v_prime = 0.0f;
float sensor_cct = 0.0f;
float sensor_lightlevel = 0.0f;
#ifdef HC_API_FEATURE_NETWORKING
virtual void cacheOnNetwork(CommandStatus* command) override;
#endif
};
class HC_API IsolightPuckCommandStatus : public CommandStatus {
public:
HC_CLASS_META(IsolightPuckCommandStatus)
HC_SWIG_SHAREDPTR(IsolightPuckCommandStatus)
virtual ~IsolightPuckCommandStatus() = default;
IsolightPuckUpdateStateInfo* stateInfo();
};
class IsolightPuckComHandler;
class HC_API IsolightPuckDeviceInfo : public DeviceInfo {
public:
HC_CLASS_META(IsolightPuckDeviceInfo)
HC_SWIG_SHAREDPTR(IsolightPuckDeviceInfo)
HC_CLASS_DEVICEINFO_META(IsolightPuckDeviceInfo, IsolightPuckCommandStatus)
friend class IsolightPuckController;
friend class IsolightPuckComHandler;
virtual ~IsolightPuckDeviceInfo() = default;
std::string port;
float updateRateMS = 20;
protected:
#ifdef HC_API_MACRO_EXCLUDE_DOCS
std::shared_ptr<IsolightPuckComHandler> puckComs;
#endif
};
class HC_API IsolightPuckController : public HardwareDeviceController {
public:
HC_CLASS_META(IsolightPuckController)
HC_SWIG_SHAREDPTR(IsolightPuckController)
virtual ~IsolightPuckController() = default;
#ifdef HC_API_MACRO_EXCLUDE_DOCS
virtual bool init() override;
virtual bool issueCommand(CommandStatus* command) override;
#endif
};
}
[[PREPROC_HEADER_GUARD_END]]