SpectralSensor_controller/SpectralSensor_controller.h Source File

1 [[PREPROC_HEADER_GUARD_BEGIN]]
2 
3 #include <HC_API.h>
4 #include <controllers_utils.h>
5 
6 
7 namespace ControlAPI {
8 
9 
10  const std::string SpectralSensor_NALPCODE = "HPCS";
11 
16  char iType[10];
17  uint16_t iVer;
18  char Mark[24];
19  float fLx;
20  float fEfc;
21  float cct;
22  float duv;
23  float x, y;
24  float u, v;
25  float u2, v2;
26  float Ra;
27  float Ri[15];
28 
29  float fSP;
30  float DominantWave;
31  float Purity;
32  float HlafWidth;
33  float PeakWave;
34  float CentreWave;
35  float CentroidWave;
36  float fRraito;
37  float fGraito;
38  float fBraito;
39 
40  float IntegTime0;
41  float VPeak;
42  float VDark;
43  float VDarkDAC;
44  char TestDate[11];
45  char TestTime[9];
46  float Spect1nmData[671];
47  float StartTestWave;
48  float EndTestWave;
49  int StartTestWaveIdx;
50  int EndTestWaveIdx;
51  };
52 
53 
54 
55 
60  public:
61  HC_CLASS_DEVICECOMMANDPACKAGE_META(SpectralSensorCommand_Update)
62 
63  virtual ~SpectralSensorCommand_Update() = default;
64 
65 
66 #ifdef HC_API_MACRO_EXCLUDE_DOCS
67  virtual std::shared_ptr<CommandStateInfo> createCommandStateInfo() override;
68  virtual std::shared_ptr<CommandStatus> createCommandStatus() override;
69 #ifdef HC_API_FEATURE_NETWORKING
70  virtual void syncFromNetwork(CommandStatus* command) override;
71 #endif
72 #endif
73 
77  int integralTime_US = 1000000;
78 
79 
80 
81 
82  };
83 
88  public:
89  HC_CLASS_META(SpectralSensorUpdateStateInfo)
90  HC_SWIG_SHAREDPTR(SpectralSensorUpdateStateInfo)
91 
92 
93  std::string iType;
94  int iVer;
95  std::string Mark;
96  float fLx;
97  float fEfc;
98  float cct;
99  float duv;
100  float x, y;
101  float u, v;
102  float u2, v2;
103  float Ra;
104  std::vector<float> Ri;
105 
106  float fSP;
107  float DominantWave;
108  float Purity;
109  float HlafWidth;
110  float PeakWave;
111  float CentreWave;
112  float CentroidWave;
113  float fRraito;
114  float fGraito;
115  float fBraito;
116 
117  float IntegTime0;
118  float VPeak;
119  float VDark;
120  float VDarkDAC;
121  std::string TestDate;
122  std::string TestTime;
123  std::vector<float> Spect1nmData;
124  float StartTestWave;
125  float EndTestWave;
126  int StartTestWaveIdx;
127  int EndTestWaveIdx;
128 #ifdef HC_API_FEATURE_NETWORKING
129  virtual void cacheOnNetwork(CommandStatus* command) override;
130 #endif
131  };
132 
134 
135 
136 
137 
138 
143  public:
144  HC_CLASS_META(SpectralSensorCommandStatus)
145  HC_SWIG_SHAREDPTR(SpectralSensorCommandStatus)
146 
147  virtual ~SpectralSensorCommandStatus() = default;
148 
149  SpectralSensorUpdateStateInfo* stateInfo();
150  };
151 
155  class HC_API SpectralSensorDeviceInfo : public DeviceInfo {
156  public:
157  HC_CLASS_META(SpectralSensorDeviceInfo)
158  HC_SWIG_SHAREDPTR(SpectralSensorDeviceInfo)
159  HC_CLASS_DEVICEINFO_META(SpectralSensorDeviceInfo, SpectralSensorCommandStatus)
160 
161  friend class SpectralSensorController;
162  friend class SpectralSensorComHandler;
163 
164  virtual ~SpectralSensorDeviceInfo() = default;
165 
166 
167  protected:
168 
169  };
170 
171  class SpectralSensorComHandler;
172 
177  public:
178  HC_CLASS_META(SpectralSensorController)
179  HC_SWIG_SHAREDPTR(SpectralSensorController)
180 
181  virtual ~SpectralSensorController() = default;
182 
183 #ifdef HC_API_MACRO_EXCLUDE_DOCS
184  virtual bool init() override;
185 
186  virtual bool issueCommand(CommandStatus* command) override;
187 
188 
189  std::shared_ptr<SpectralSensorComHandler> hopoComs;
190 #endif
191  };
192 
193 }
194 
195 [[PREPROC_HEADER_GUARD_END]]