[[PREPROC_HEADER_GUARD_BEGIN]]
#include <HC_API.h>
#include <controllers_utils.h>
namespace ControlAPI {
const std::string SpectralSensor_NALPCODE = "HPCS";
struct HC_API SpectralSensor_SpecDataInfo {
char iType[10];
uint16_t iVer;
char Mark[24];
float fLx;
float fEfc;
float cct;
float duv;
float x, y;
float u, v;
float u2, v2;
float Ra;
float Ri[15];
float fSP;
float DominantWave;
float Purity;
float HlafWidth;
float PeakWave;
float CentreWave;
float CentroidWave;
float fRraito;
float fGraito;
float fBraito;
float IntegTime0;
float VPeak;
float VDark;
float VDarkDAC;
char TestDate[11];
char TestTime[9];
float Spect1nmData[671];
float StartTestWave;
float EndTestWave;
int StartTestWaveIdx;
int EndTestWaveIdx;
};
class HC_API SpectralSensorCommand_Update : public DeviceCommandPackage {
public:
HC_CLASS_DEVICECOMMANDPACKAGE_META(SpectralSensorCommand_Update)
virtual ~SpectralSensorCommand_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
int integralTime_US = 1000000;
};
class HC_API SpectralSensorUpdateStateInfo : public CommandStateInfo {
public:
HC_CLASS_META(SpectralSensorUpdateStateInfo)
HC_SWIG_SHAREDPTR(SpectralSensorUpdateStateInfo)
std::string iType;
int iVer;
std::string Mark;
float fLx;
float fEfc;
float cct;
float duv;
float x, y;
float u, v;
float u2, v2;
float Ra;
std::vector<float> Ri;
float fSP;
float DominantWave;
float Purity;
float HlafWidth;
float PeakWave;
float CentreWave;
float CentroidWave;
float fRraito;
float fGraito;
float fBraito;
float IntegTime0;
float VPeak;
float VDark;
float VDarkDAC;
std::string TestDate;
std::string TestTime;
std::vector<float> Spect1nmData;
float StartTestWave;
float EndTestWave;
int StartTestWaveIdx;
int EndTestWaveIdx;
#ifdef HC_API_FEATURE_NETWORKING
virtual void cacheOnNetwork(CommandStatus* command) override;
#endif
};
class SpectralSensorDeviceInfo;
class HC_API SpectralSensorCommandStatus : public CommandStatus {
public:
HC_CLASS_META(SpectralSensorCommandStatus)
HC_SWIG_SHAREDPTR(SpectralSensorCommandStatus)
virtual ~SpectralSensorCommandStatus() = default;
SpectralSensorUpdateStateInfo* stateInfo();
};
class HC_API SpectralSensorDeviceInfo : public DeviceInfo {
public:
HC_CLASS_META(SpectralSensorDeviceInfo)
HC_SWIG_SHAREDPTR(SpectralSensorDeviceInfo)
HC_CLASS_DEVICEINFO_META(SpectralSensorDeviceInfo, SpectralSensorCommandStatus)
friend class SpectralSensorController;
friend class SpectralSensorComHandler;
virtual ~SpectralSensorDeviceInfo() = default;
protected:
};
class SpectralSensorComHandler;
class HC_API SpectralSensorController : public HardwareDeviceController {
public:
HC_CLASS_META(SpectralSensorController)
HC_SWIG_SHAREDPTR(SpectralSensorController)
virtual ~SpectralSensorController() = default;
#ifdef HC_API_MACRO_EXCLUDE_DOCS
virtual bool init() override;
virtual bool issueCommand(CommandStatus* command) override;
std::shared_ptr<SpectralSensorComHandler> hopoComs;
#endif
};
}
[[PREPROC_HEADER_GUARD_END]]