[[PREPROC_HEADER_GUARD_BEGIN]]
#include <HC_API.h>
#include <controllers_utils.h>
namespace ControlAPI {
const std::string LedLightBox_NALPCODE = "LTBOX";
class HC_API LedLightBoxCommand_Lighting : public DeviceCommandPackage {
public:
HC_CLASS_DEVICECOMMANDPACKAGE_META(LedLightBoxCommand_Lighting)
virtual ~LedLightBoxCommand_Lighting() = default;
virtual void cloneFrom(DeviceCommandPackage* other) override;
#ifdef HC_API_FEATURE_NETWORKING
virtual void syncFromNetwork(CommandStatus* command) override;
#endif
float dimmerIntensityPercent = 0.0f;
float colorTemperaturePerc = 0.0f;
bool highLowSetting = false;
float flickerFrequencyHz = 60.0f;
float flickerDutyCyclePercent = 0.5f;
};
class HC_API LedLightPanelCommand_SetLighting : public LedLightBoxCommand_Lighting {
public:
HC_CLASS_DEVICECOMMANDPACKAGE_META(LedLightPanelCommand_SetLighting)
virtual ~LedLightPanelCommand_SetLighting() = default;
};
class HC_API LedLightBoxDeviceInfo : public DeviceInfo {
public:
HC_CLASS_META(LedLightBoxDeviceInfo)
HC_SWIG_SHAREDPTR(LedLightBoxDeviceInfo)
friend class LedLightBoxControllerBase;
friend class LedLightBoxComHandler;
virtual ~LedLightBoxDeviceInfo() = default;
int maxDimmerIntegerHigh = 1000;
int maxDimmerIntegerLow = 1000;
bool highLowCapable = false;
bool mixedCapable = false;
bool isPanel = false;
protected:
#ifdef HC_API_MACRO_EXCLUDE_DOCS
#endif
};
class HC_API LedLightBoxDevice_Standard_LED_Box_Single_Info : public LedLightBoxDeviceInfo {
public:
HC_CLASS_META(LedLightBoxDevice_Standard_LED_Box_Single_Info)
HC_SWIG_SHAREDPTR(LedLightBoxDevice_Standard_LED_Box_Single_Info)
HC_CLASS_DEVICEINFO_META(LedLightBoxDevice_Standard_LED_Box_Single_Info, CommandStatus)
friend class LedLightBoxControllerBase;
virtual ~LedLightBoxDevice_Standard_LED_Box_Single_Info() = default;
LedLightBoxDevice_Standard_LED_Box_Single_Info();
static std::string friendlyName();
protected:
};
class HC_API LedLightBoxDevice_Standard_LED_Box_Mixed_Info : public LedLightBoxDeviceInfo {
public:
HC_CLASS_META(LedLightBoxDevice_Standard_LED_Box_Mixed_Info)
HC_SWIG_SHAREDPTR(LedLightBoxDevice_Standard_LED_Box_Mixed_Info)
HC_CLASS_DEVICEINFO_META(LedLightBoxDevice_Standard_LED_Box_Mixed_Info, CommandStatus)
friend class LedLightBoxControllerBase;
virtual ~LedLightBoxDevice_Standard_LED_Box_Mixed_Info() = default;
LedLightBoxDevice_Standard_LED_Box_Mixed_Info();
static std::string friendlyName();
protected:
};
class HC_API LedLightBoxDevice_High_LUX_LED_Box_Single_Info : public LedLightBoxDeviceInfo {
public:
HC_CLASS_META(LedLightBoxDevice_High_LUX_LED_Box_Single_Info)
HC_SWIG_SHAREDPTR(LedLightBoxDevice_High_LUX_LED_Box_Single_Info)
HC_CLASS_DEVICEINFO_META(LedLightBoxDevice_High_LUX_LED_Box_Single_Info, CommandStatus)
friend class LedLightBoxControllerBase;
virtual ~LedLightBoxDevice_High_LUX_LED_Box_Single_Info() = default;
LedLightBoxDevice_High_LUX_LED_Box_Single_Info();
static std::string friendlyName();
};
class HC_API LedLightBoxDevice_High_LUX_LED_Box_Mixed_Info : public LedLightBoxDeviceInfo {
public:
HC_CLASS_META(LedLightBoxDevice_High_LUX_LED_Box_Mixed_Info)
HC_SWIG_SHAREDPTR(LedLightBoxDevice_High_LUX_LED_Box_Mixed_Info)
HC_CLASS_DEVICEINFO_META(LedLightBoxDevice_High_LUX_LED_Box_Mixed_Info, CommandStatus)
friend class LedLightBoxControllerBase;
virtual ~LedLightBoxDevice_High_LUX_LED_Box_Mixed_Info() = default;
LedLightBoxDevice_High_LUX_LED_Box_Mixed_Info();
static std::string friendlyName();
};
class HC_API LedLightBoxDevice_Ultra_High_Illumination_Flickering_Info : public LedLightBoxDeviceInfo {
public:
HC_CLASS_META(LedLightBoxDevice_Ultra_High_Illumination_Flickering_Info)
HC_SWIG_SHAREDPTR(LedLightBoxDevice_Ultra_High_Illumination_Flickering_Info)
HC_CLASS_DEVICEINFO_META(LedLightBoxDevice_Ultra_High_Illumination_Flickering_Info, CommandStatus)
friend class LedLightBoxControllerBase;
virtual ~LedLightBoxDevice_Ultra_High_Illumination_Flickering_Info() = default;
LedLightBoxDevice_Ultra_High_Illumination_Flickering_Info();
static std::string friendlyName();
};
class LedLightBoxComHandler;
class HC_API LedLightBoxControllerBase : public HardwareDeviceController {
public:
HC_CLASS_META(LedLightBoxControllerBase)
HC_SWIG_SHAREDPTR(LedLightBoxControllerBase)
LedLightBoxControllerBase() = default;
virtual ~LedLightBoxControllerBase() = default;
#ifdef HC_API_MACRO_EXCLUDE_DOCS
virtual bool init() override;
virtual bool deInit() override;
virtual void disconnect(bool expected = false) override;
virtual bool issueCommand(CommandStatus* command) override;
std::shared_ptr<LedLightBoxComHandler> lightBoxComs;
int baudRate = 38400;
#endif
};
class HC_API LedLightBoxController : public LedLightBoxControllerBase {
public:
HC_CLASS_META(LedLightBoxController)
HC_SWIG_SHAREDPTR(LedLightBoxController)
LedLightBoxController();
virtual ~LedLightBoxController() = default;
#ifdef HC_API_MACRO_EXCLUDE_DOCS
virtual bool init() override;
virtual bool deInit() override;
virtual void disconnect(bool expected = false) override;
virtual bool issueCommand(CommandStatus* command) override;
std::shared_ptr<LedLightBoxComHandler> lightBoxComs;
#endif
};
class HC_API LedLightPanel_Single_Info : public LedLightBoxDeviceInfo {
public:
HC_CLASS_META(LedLightPanel_Single_Info)
HC_SWIG_SHAREDPTR(LedLightPanel_Single_Info)
HC_CLASS_DEVICEINFO_META(LedLightPanel_Single_Info, CommandStatus)
friend class LedLightBoxControllerBase;
virtual ~LedLightPanel_Single_Info() = default;
LedLightPanel_Single_Info();
static std::string friendlyName();
protected:
};
}
[[PREPROC_HEADER_GUARD_END]]