led_lightbox_controller/led_lightbox_controller.h Source File

[[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:
    };
 
 
}// namespace ControlAPI
 
 
[[PREPROC_HEADER_GUARD_END]]