hlcc 2.0.0-beta2+pre1
Loading...
Searching...
No Matches
dataAcquisitionFits.hpp
Go to the documentation of this file.
1
9#ifndef HLCC_TELIF_TELIFSIM_DATAACQUISITIONFITS_HPP
10#define HLCC_TELIF_TELIFSIM_DATAACQUISITIONFITS_HPP
11
12#include <string>
13#include <vector>
14#include <list>
15#include <chrono>
16#include <memory>
17#include <mutex>
18
20#include "telifsim/logger.hpp"
21
22
23namespace hlcc::telifsim {
24
31struct FitsData {
32
37 enum DaqStage {
38 DAQ_STAGE_START, // Parameter acquisition should happen with the Start command
39 DAQ_STAGE_END // Parameter acquisition should happen with the Stop command
40 };
41
45 enum ParamType {
46 P_LOGICAL, // Parameter reports a Logical
47 P_INTEGER, // Parameter reports a Integer
48 P_DOUBLE, // Parameter reports a double
49 P_STRING, // Parameter reports a string
50 };
51
52 std::string m_param_type; // Parameter type to be reported in the FITS Keyword
53 std::string m_param_name; // Parameter name to be reported in the FITS Keyword
54 ParamType m_value_type; // Parameter value type to be reported in the FITS Keywords
55 std::string m_value_format; // Paramener value format
56
57 std::string m_oldb_uri; // Oldb URI to reach the value to be reported
58 DaqStage m_daq_stage; // Stage in which the current acquisition should happen
59};
60
61
75public:
76
81 AQ_NOT_STARTED, // Not yet acquired
82 AQ_SUCCEDDED, // Already acquired succesfully
83 AQ_FAILED // Tried to acquire but failed
84 };
85
90 struct FitsValues {
91 bool m_logical = false;
93 double m_double;
94 std::string m_string;
95 };
96
100 FitsItemGeneric(OldbInterface& moldbif, const FitsData& mfitsdata);
101
115 template<typename T>
116 std::string StringFormat( const std::string& format, T arg );
117
123 bool ClearAcquisition();
124
131 virtual bool DoAcquisition(FitsData::DaqStage daq_stage);
132
139 bool GetJsonString(std::string &str_json);
140
141protected:
147 OldbInterface& GetOldbInterface() { return m_oldb_interface; }
148
154 const FitsData GetFitsData() { return m_fits_data; }
155
161 FitsValues GetFitsValues() { return m_fits_values; }
162
168 void SetFitsValues(const FitsValues& p_fits_values) { m_fits_values = p_fits_values; }
169
175 AcquisitionStage GetAcquisitionStage() { return m_acquisition_stage; }
176
182 void SetAcquisitionStage(AcquisitionStage p_acquisition_stage) { m_acquisition_stage =
183 p_acquisition_stage; }
184
185
186private:
187 OldbInterface& m_oldb_interface; // Oldb interface
188 const FitsData m_fits_data; // The parameter description data
189 FitsValues m_fits_values; // The container for the acquisition values
190 AcquisitionStage m_acquisition_stage; // The current paramenter acquisition stage
191};
192
193
198public:
199 FitsItemRadToDeg(OldbInterface& moldbif, const FitsData& mfitsdata);
200
201 bool DoAcquisition(FitsData::DaqStage daq_stage) override;
202};
203
204
209public:
210 FitsItemTelAlt(OldbInterface& moldbif, const FitsData& mfitsdata);
211
212 bool DoAcquisition(FitsData::DaqStage daq_stage) override;
213};
214
215
220public:
221 FitsItemTelAz(OldbInterface& moldbif, const FitsData& mfitsdata);
222
223 bool DoAcquisition(FitsData::DaqStage daq_stage) override;
224};
225
226
231public:
232 FitsItemTelEpoch(OldbInterface& moldbif, const FitsData& mfitsdata);
233
234 bool DoAcquisition(FitsData::DaqStage daq_stage) override;
235};
236
237
242public:
243 FitsItemTelEpochsystem(OldbInterface& moldbif, const FitsData& mfitsdata);
244
245 bool DoAcquisition(FitsData::DaqStage daq_stage) override;
246};
247
248
253public:
254 FitsItemTelTargRa(OldbInterface& moldbif, const FitsData& mfitsdata);
255
256 bool DoAcquisition(FitsData::DaqStage daq_stage) override;
257};
258
259
264public:
265 FitsItemTelTargDec(OldbInterface& moldbif, const FitsData& mfitsdata);
266
267 bool DoAcquisition(FitsData::DaqStage daq_stage) override;
268};
269
270
277public:
281 explicit FitsKeywords(OldbInterface& moldbif);
282
288 bool ClearAcquisition();
289
297 bool DoAcquisition(FitsData::DaqStage daq_stage);
298
306 bool GetJsonString(std::string &str_json);
307
308private:
309 std::list<std::unique_ptr<FitsItemGeneric>> m_fits_keywords_list;
310
311};
312
313} // namespace hlcc::telifsim
314
315#endif // HLCC_TELIF_TELIFSIM_DATAACQUISITIONFITS_HPP
Definition: dataAcquisitionFits.hpp:74
bool ClearAcquisition()
Definition: dataAcquisitionFits.cpp:79
std::string StringFormat(const std::string &format, T arg)
void SetFitsValues(const FitsValues &p_fits_values)
Definition: dataAcquisitionFits.hpp:168
const FitsData GetFitsData()
Definition: dataAcquisitionFits.hpp:154
AcquisitionStage GetAcquisitionStage()
Definition: dataAcquisitionFits.hpp:175
bool GetJsonString(std::string &str_json)
Definition: dataAcquisitionFits.cpp:148
virtual bool DoAcquisition(FitsData::DaqStage daq_stage)
Definition: dataAcquisitionFits.cpp:92
FitsValues GetFitsValues()
Definition: dataAcquisitionFits.hpp:161
OldbInterface & GetOldbInterface()
Definition: dataAcquisitionFits.hpp:147
AcquisitionStage
Definition: dataAcquisitionFits.hpp:80
@ AQ_SUCCEDDED
Definition: dataAcquisitionFits.hpp:82
@ AQ_NOT_STARTED
Definition: dataAcquisitionFits.hpp:81
@ AQ_FAILED
Definition: dataAcquisitionFits.hpp:83
void SetAcquisitionStage(AcquisitionStage p_acquisition_stage)
Definition: dataAcquisitionFits.hpp:182
Definition: dataAcquisitionFits.hpp:197
bool DoAcquisition(FitsData::DaqStage daq_stage) override
Definition: dataAcquisitionFits.cpp:279
Definition: dataAcquisitionFits.hpp:208
bool DoAcquisition(FitsData::DaqStage daq_stage) override
Definition: dataAcquisitionFits.cpp:307
Definition: dataAcquisitionFits.hpp:219
bool DoAcquisition(FitsData::DaqStage daq_stage) override
Definition: dataAcquisitionFits.cpp:341
Definition: dataAcquisitionFits.hpp:230
bool DoAcquisition(FitsData::DaqStage daq_stage) override
Definition: dataAcquisitionFits.cpp:374
Definition: dataAcquisitionFits.hpp:241
bool DoAcquisition(FitsData::DaqStage daq_stage) override
Definition: dataAcquisitionFits.cpp:412
Definition: dataAcquisitionFits.hpp:263
bool DoAcquisition(FitsData::DaqStage daq_stage) override
Definition: dataAcquisitionFits.cpp:492
Definition: dataAcquisitionFits.hpp:252
bool DoAcquisition(FitsData::DaqStage daq_stage) override
Definition: dataAcquisitionFits.cpp:450
Definition: dataAcquisitionFits.hpp:276
bool GetJsonString(std::string &str_json)
Definition: dataAcquisitionFits.cpp:665
bool ClearAcquisition()
Definition: dataAcquisitionFits.cpp:633
bool DoAcquisition(FitsData::DaqStage daq_stage)
Definition: dataAcquisitionFits.cpp:644
Definition: oldbInterface.hpp:35
Definition: actionMgr.cpp:31
Definition: dataAcquisitionFits.hpp:31
std::string m_param_type
Definition: dataAcquisitionFits.hpp:52
DaqStage
Definition: dataAcquisitionFits.hpp:37
@ DAQ_STAGE_END
Definition: dataAcquisitionFits.hpp:39
@ DAQ_STAGE_START
Definition: dataAcquisitionFits.hpp:38
ParamType
Definition: dataAcquisitionFits.hpp:45
@ P_LOGICAL
Definition: dataAcquisitionFits.hpp:46
@ P_STRING
Definition: dataAcquisitionFits.hpp:49
@ P_INTEGER
Definition: dataAcquisitionFits.hpp:47
@ P_DOUBLE
Definition: dataAcquisitionFits.hpp:48
ParamType m_value_type
Definition: dataAcquisitionFits.hpp:54
std::string m_oldb_uri
Definition: dataAcquisitionFits.hpp:57
std::string m_param_name
Definition: dataAcquisitionFits.hpp:53
std::string m_value_format
Definition: dataAcquisitionFits.hpp:55
DaqStage m_daq_stage
Definition: dataAcquisitionFits.hpp:58
Definition: dataAcquisitionFits.hpp:90
std::string m_string
Definition: dataAcquisitionFits.hpp:94
double m_double
Definition: dataAcquisitionFits.hpp:93
int m_integer
Definition: dataAcquisitionFits.hpp:92
bool m_logical
Definition: dataAcquisitionFits.hpp:91
Default logger name.
OldbInterface class header file.