[[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;
};
}
[[PREPROC_HEADER_GUARD_END]]