SpectralSensor_controller/SpectralSensor_controller.h Source File

[[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];         // type
        uint16_t iVer;          // version 1.00.00
        char Mark[24];          // description
        float fLx;              // illuminationE(lx)
        float fEfc;             // candle lightE(fc)
        float cct;              // CCT(K)
        float duv;              // Blackbody deviation Duv
        float x, y;             // coordinate x,y
        float u, v;             // coordinate u,v
        float u2, v2;           // coordinate u',v' float fSDCM; // Color tolerance SDCM
        float Ra;               // CRI Ra
        float Ri[15];           // R1-R15
        //float F;                // irradiance Ee(W/m2)
        float fSP;              // S/P
        float DominantWave;     // Dominant wa(nm)
        float Purity;           // (%)
        float HlafWidth;        // (nm)
        float PeakWave;         // (nm)
        float CentreWave;       // (nm)
        float CentroidWave;     // (nm)
        float fRraito;          // (%)
        float fGraito;          // (%)
        float fBraito;          // (%)
        //float X, Y, Z;          // X,Y,Z
        float IntegTime0;       // us
        float VPeak;            //
        float VDark;            //
        float VDarkDAC;         
        char TestDate[11]; // 2016-10-11
        char TestTime[9];       // 12:15:01
        float Spect1nmData[671];// 380-1050nm
        float StartTestWave;    //nm
        float EndTestWave;      //nm
        int StartTestWaveIdx; //idx into Spect1nmData
        int EndTestWaveIdx;   //idx into Spect1nmData
    };
 
 
 
 
    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; // version 1.00.00
        std::string Mark;// description
        float fLx;     // illuminationE(lx)
        float fEfc;    // candle lightE(fc)
        float cct;     // CCT(K)
        float duv;     // Blackbody deviation Duv
        float x, y;    // coordinate x,y
        float u, v;    // coordinate u,v
        float u2, v2;  // coordinate u',v' float fSDCM; // Color tolerance SDCM
        float Ra;      // CRI Ra
        std::vector<float> Ri;  // R1-R15
        //float F;                // irradiance Ee(W/m2)
        float fSP;         // S/P
        float DominantWave;// Dominant wa(nm)
        float Purity;      // (%)
        float HlafWidth;   // (nm)
        float PeakWave;    // (nm)
        float CentreWave;  // (nm)
        float CentroidWave;// (nm)
        float fRraito;     // (%)
        float fGraito;     // (%)
        float fBraito;     // (%)
        //float X, Y, Z;          // X,Y,Z
        float IntegTime0;// us
        float VPeak;     //
        float VDark;     //
        float VDarkDAC;
        std::string TestDate;      // 2016-10-11
        std::string TestTime;       // 12:15:01
        std::vector<float> Spect1nmData;// 380-1050nm
        float StartTestWave;    //nm
        float EndTestWave;      //nm
        int StartTestWaveIdx;   //idx into Spect1nmData
        int EndTestWaveIdx;     //idx into Spect1nmData
#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]]