LowLightSensor_controller/LowLightSensor_controller.h Source File

[[PREPROC_HEADER_GUARD_BEGIN]]
 
#include "HC_API.h"
#include "controllers_utils.h"
 
 
namespace ControlAPI {
 
 
    const std::string LowLightSensor_NALPCODE = "LLSN";
 
    struct HC_API LowLightSensor_DataInfo {
        float fLx;              // illuminationE(lx)
    };
 
 
 
 
    class HC_API LowLightSensorCommand_Update : public DeviceCommandPackage {
    public:
        HC_CLASS_DEVICECOMMANDPACKAGE_META(LowLightSensorCommand_Update)
 
        virtual ~LowLightSensorCommand_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
 
 
    };
 
    class HC_API LowLightSensorUpdateStateInfo : public CommandStateInfo {
    public:
        HC_CLASS_META(LowLightSensorUpdateStateInfo)
        HC_SWIG_SHAREDPTR(LowLightSensorUpdateStateInfo)
 
        float lx = 0.0f; // illumination in lux
#ifdef HC_API_FEATURE_NETWORKING
        void cacheOnNetwork(CommandStatus* command) override;
#endif
    };
 
    class LowLightSensorDeviceInfo;
   
 
 
 
 
    class HC_API LowLightSensorCommandStatus : public CommandStatus {
    public:
        HC_CLASS_META(LowLightSensorCommandStatus)
        HC_SWIG_SHAREDPTR(LowLightSensorCommandStatus)
 
        virtual ~LowLightSensorCommandStatus() = default;
 
        LowLightSensorUpdateStateInfo* stateInfo();
    };
 
    class HC_API LowLightSensorDeviceInfo : public DeviceInfo {
        public:
            HC_CLASS_META(LowLightSensorDeviceInfo)
            HC_SWIG_SHAREDPTR(LowLightSensorDeviceInfo)
            HC_CLASS_DEVICEINFO_META(LowLightSensorDeviceInfo, LowLightSensorCommandStatus)
 
            friend class LowLightSensorController;
            friend class LowLightSensorComHandler;
 
            virtual ~LowLightSensorDeviceInfo() = default;
 
 
        protected:
 
    };
 
    class LowLightSensorComHandler;
    class HC_API LowLightSensorController : public HardwareDeviceController {
    public:
        HC_CLASS_META(LowLightSensorController)
        HC_SWIG_SHAREDPTR(LowLightSensorController)
 
        virtual ~LowLightSensorController() = default;
 
#ifdef HC_API_MACRO_EXCLUDE_DOCS
        virtual bool init() override;
 
        virtual bool issueCommand(CommandStatus* command) override;
        
 
        std::shared_ptr<LowLightSensorComHandler> hopoComs;
#endif
    };
 
}
 
[[PREPROC_HEADER_GUARD_END]]