BmnRoot
Loading...
Searching...
No Matches
TangoData.h
Go to the documentation of this file.
1/****************************************************************************
2 This interface can be used to get hardware detector data
3 from Tango (Slow Control System) database
4****************************************************************************/
5#ifndef TANGODATA_H
6#define TANGODATA_H 1
7
8#include "TDatime.h"
9#include "TObjArray.h"
10#include "TString.h"
11
12#include <vector>
13
15{
16 TString varName; // variable name (e.g. ZDC_X or ZDC_Y)
17 TDatime runTime; // corresponding time
18 int varValue; // value of the parameter
19};
20
28
29class TangoTimeParameter : public TObject
30{
31 public:
32 // parameter time
34 // parameter type
36 // parameter values of one of the corresponding parameter_type
37 std::vector<bool> bool_parameter_value;
38 std::vector<double> double_parameter_value;
39
43 TangoTimeParameter(TDatime par_time, Tango_Parameter_Type par_type);
46
48 virtual ~TangoTimeParameter();
49
51};
52
53class TangoTimeInterval : public TObject
54{
55 public:
56 TDatime start_time;
57 TDatime end_time;
58
61
63 TangoTimeInterval(TDatime start_time_interval, TDatime end_time_interval);
64
66 virtual ~TangoTimeInterval();
67
69};
70
71// class used to get hardware detector data from Tango database and to display results in console or graphs
73{
74 public:
87
96 TangoData(const char* start_date,
97 const char* end_date,
98 const char* system_name,
99 const char* parameter_name,
100 const char* member_name = "",
101 int verbose = 0);
102 // empty destructor
103 virtual ~TangoData();
104
105 TObjArray* GetTangoData() { return arrTangoData; }
106
107 TString GetStartDate() { return strStartDate; }
108 TString GetEndDate() { return strEndDate; }
109 TString GetSystemName() { return strSystemName; }
110 TString GetParameterName() { return strParameterName; }
111 TString GetMemberName() { return strMemberName; }
112 TString GetUserName() { return strUserName; }
113 void SetUserName(TString user_name) { strUserName = user_name; }
114 TString GetFullName();
115
116 // Function displays hardware data obtained from Tango, e.g. ZDC voltage in time interval, in console
118 // Function displays a set of "simple" parameters obtained from Tango, e.g. GEMs high voltages voltage, in console
119 static void PrintTangoArrayConsole(std::vector<TangoData*> vecTangoData);
120 // Function displays hardware vector data obtained from Tango, e.g. ZDC voltage in time interval, graphically as 2D
121 // Surface Graph Parameter: y_axis - label of Y axis
122 void PrintTangoDataSurface(const char* y_axis = "tango parameter");
123 // Function displays hardware vector data obtained from Tango, e.g. ZDC voltage in time interval, graphically as a
124 // set of Line Graphs Parameters: y_axis - label of Y axis, is3D - whether show in 3D view Returns: 0 - in case of
125 // the success, < 0 - if an error occured
126 int PrintTangoDataMultiGraph(const char* y_axis = "parameter", bool is3D = false);
127 // Function displays a set of "simple" parameters obtained from Tango, e.g. GEMs high voltages voltage, graphically
128 // as a set of Line Graphs
129 static int PrintTangoArrayMultiGraph(std::vector<TangoData*> vecTangoData,
130 const char* y_axis = "parameter",
131 bool is3D = false);
132
133 // Function calculates and returns average value for Tango data array (result vector with size > 1 is used in case
134 // of many channels)
135 std::vector<double> GetAverageTangoData();
136
149 bool value = true,
150 std::vector<int>* mapChannel = nullptr);
157 void PrintTangoIntervalConsole(TObjArray* tango_intervals,
158 TString channel_name = "Channel",
159 bool isShowOnlyExists = false);
160
161 private:
162 bool IsOldMySQL = false;
163 TString strSystemName = "", strParameterName = "", strMemberName = "", strUserName = "", strStartDate = "",
164 strEndDate = "";
165 TObjArray* arrTangoData = nullptr;
166 int iVerbose;
167
168 // non-user function GetTangoParameter gets hardware data from the Tango database and write to the arrTangoData
169 // First, name of the target table with required parameter is extracted from the Tango Base Table,
170 // then required data are selected from the target table corresponding the given time interval.
171 // Returns: 0 - in case of the success, < 0 - if an error occured
172 int GetTangoParameter();
173
174 // delete Tango parameter
175 void DeleteTangoParameter();
176
177 ClassDef(TangoData, 2)
178};
179
180#endif
TString GetEndDate()
Definition TangoData.h:108
TString GetSystemName()
Definition TangoData.h:109
TString GetFullName()
std::vector< double > GetAverageTangoData()
static void PrintTangoArrayConsole(std::vector< TangoData * > vecTangoData)
TObjArray * SearchTangoIntervals(enumConditions condition=conditionEqual, bool value=true, std::vector< int > *mapChannel=nullptr)
void PrintTangoDataConsole()
TString GetStartDate()
Definition TangoData.h:107
@ conditionLike
Definition TangoData.h:83
@ conditionGreaterOrEqual
Definition TangoData.h:82
@ conditionNull
Definition TangoData.h:84
@ conditionGreater
Definition TangoData.h:81
@ conditionLess
Definition TangoData.h:77
@ conditionLessOrEqual
Definition TangoData.h:78
@ conditionNotEqual
Definition TangoData.h:80
@ conditionNotNull
Definition TangoData.h:85
@ conditionEqual
Definition TangoData.h:79
virtual ~TangoData()
Definition TangoData.cxx:94
void SetUserName(TString user_name)
Definition TangoData.h:113
void PrintTangoDataSurface(const char *y_axis="tango parameter")
TObjArray * GetTangoData()
Definition TangoData.h:105
static int PrintTangoArrayMultiGraph(std::vector< TangoData * > vecTangoData, const char *y_axis="parameter", bool is3D=false)
int PrintTangoDataMultiGraph(const char *y_axis="parameter", bool is3D=false)
TString GetParameterName()
Definition TangoData.h:110
TString GetMemberName()
Definition TangoData.h:111
TString GetUserName()
Definition TangoData.h:112
void PrintTangoIntervalConsole(TObjArray *tango_intervals, TString channel_name="Channel", bool isShowOnlyExists=false)
TDatime start_time
Definition TangoData.h:56
ClassDef(TangoTimeInterval, 1)
virtual ~TangoTimeInterval()
Definition TangoData.cxx:56
std::vector< bool > bool_parameter_value
Definition TangoData.h:37
Tango_Parameter_Type parameter_type
Definition TangoData.h:35
std::vector< double > double_parameter_value
Definition TangoData.h:38
ClassDef(TangoTimeParameter, 1)
TDatime parameter_time
Definition TangoData.h:33
virtual ~TangoTimeParameter()
Definition TangoData.cxx:46
Tango_Parameter_Type
Definition TangoData.h:22
@ Tango_Bool
Definition TangoData.h:23
@ Tango_Bool_Array
Definition TangoData.h:25
@ Tango_Double
Definition TangoData.h:24
@ Tango_Double_Array
Definition TangoData.h:26
Tango_Parameter_Type
Definition TangoData.h:22
int varValue
Definition TangoData.h:18
TDatime runTime
Definition TangoData.h:17
TString varName
Definition TangoData.h:16