thouslite_controller/thouslite_controller.h Source File

[[PREPROC_HEADER_GUARD_BEGIN]]
 
#include <HC_API.h>
#include <controllers_utils.h>
 
namespace ControlAPI {
    const std::string Thouslite_NALPCODE = "THOUS";
 
    const std::string ThousliteRecipeDescriptions[14] = {
        "White          (Broad spectrum)",
        "Orange         (585nm)",
        "Lt Orange      (Broad spectrum)",
        "Blue-Green     (480nm)",
        "Red            (660nm)",
        "Green-Blue     (505nm)",
        "Green          (520nm)",
        "Blue           (445nm)",
        "Lt Violet      (420nm)",
        "Red            (635nm)",
        "Yellow-Grn     (545nm)",
        "Dk Violet      (405nm)",
        "Red            (670nm)",
        "Red/IR         (700/850nm)"
    };
 
    class HC_API ThousliteCommand_SetLighting : public DeviceCommandPackage {
    public:
        HC_CLASS_DEVICECOMMANDPACKAGE_META(ThousliteCommand_SetLighting)
 
        virtual ~ThousliteCommand_SetLighting() = default;
 
        virtual void cloneFrom(DeviceCommandPackage* other) override;
#ifdef HC_API_FEATURE_NETWORKING
        virtual void syncFromNetwork(CommandStatus* command) override;
#endif
        unsigned int recipe[14];
    };
    
    class ThousliteDeviceInfo;
    class ThousliteController_Internals;
 
    class HC_API ThousliteDeviceInfo : public DeviceInfo {
    public:
        HC_CLASS_META(ThousliteDeviceInfo)
        HC_SWIG_SHAREDPTR(ThousliteDeviceInfo)
        HC_CLASS_DEVICEINFO_META(ThousliteDeviceInfo, CommandStatus)
 
        friend class ThousliteController;
        friend class ThousliteComHandler;
        friend class ThousliteController;
 
        virtual ~ThousliteDeviceInfo() = default;
 
 
        unsigned char cubeId[4] = {0x0, 0x0, 0x0, 0x0};
    protected:
 
#ifdef HC_API_MACRO_EXCLUDE_DOCS
        bool powerState = false;
 
#endif
    };
 
    class HC_API ThousliteController : public HardwareDeviceController {
    public:
        HC_CLASS_META(ThousliteController)
        HC_SWIG_SHAREDPTR(ThousliteController)
 
        friend class ThousliteDeviceInfo;
 
        virtual ~ThousliteController() = default;
#ifdef HC_API_MACRO_EXCLUDE_DOCS
        virtual bool init() override;
        virtual bool issueCommand(CommandStatus* command) override;
#endif
        int baudrate = 115200;
 
        int apiMajorVersion = 1;
 
    private:
        virtual void disconnect(bool expected = false) override;
        int comPortNumber = -1;
 
 
        std::shared_ptr<ThousliteController_Internals> internals;
    };
 
 
 
 
 
}// namespace ControlAPI
 
 
[[PREPROC_HEADER_GUARD_END]]