ngc 1.5.0
 
Loading...
Searching...
No Matches
ngcdcsNGSDBIAS.hpp
Go to the documentation of this file.
1
8#ifndef ngcdcsNGSDBIAS_H
9#define ngcdcsNGSDBIAS_H
10
11
12#ifndef __cplusplus
13#error This is a C++ include file and cannot be used from plain C
14#endif
15
17
21#define ngcdcsNGSDBIAS_ERR_PROTECTION 0x1
22
27{
28public:
30 ngcdcsNGSDBIAS(const ngcb_route_t &r, int nb, double extRef = 0.0);
31
33 ngcdcsNGSDBIAS(ngcbIFC *ifc, const ngcb_route_t &r, int nb,
34 double extRef = 0.0);
35
37 virtual ~ngcdcsNGSDBIAS();
38
40 double VRef();
41
43 void ClkMap(ngcdcs_clk_t *cv);
44
46 void DcMap(ngcdcs_dc_t *dv);
47
49 int VStatus(int *s);
50
52 void DefaultSetup(const char *keyWord = NULL);
53
55 int Volt2Reg(double *volt, int chan, double corr = 1.0);
56
58 double Reg2Volt(int reg, int chan, double corr = 1.0);
59
61 int DacReg(int value, int chan);
62
64 int Monitor(int num, int clkChan) {
65 USE(num); USE(clkChan);
66 return (Success());
67 }
68
70 int OffsetClk(double volt) {
71 USE(volt);
72 return (Success());
73 }
74
76 int OffsetDC(double volt) {
77 USE(volt);
78 return (Success());
79 }
80
82 int PreampOffset(double volt) {
83 USE(volt);
84 return (Success());
85 }
86
88 int VideoOffset(double * volt) {
89 USE(volt);
90 return (Success());
91 }
92
94 int DiodeBias(double volt) {
95 USE(volt);
96 return (Success());
97 }
98
100 double OffsetClk() {return (0.0);}
101
103 double OffsetDC() {return (0.0);}
104
106 int TelIntern(int sel = -1) {USE(sel); return (Success());}
107
109 int TelChan(int num, double *volt) {
110 if ((num < 0) || (num >= numDc))
111 {
112 sprintf(ErrMsg(), "bias channel number out of range");
113 return (ngcbMOD_ERR);
114 }
115 *volt = dc[num].volt;
116 dcTel[num] = *volt;
117 return (Success());
118 }
119
121 int TelDC(int num, double *volt) {
122 if ((num < 0) || (num >= numDc))
123 {
124 sprintf(ErrMsg(), "bias channel number out of range");
125 return (ngcbMOD_ERR);
126 }
127 else
128 {
129 *volt = dc[num].volt;
130 dcTel[num] = *volt;
131 Volt2Reg(volt, num, 0.0);
132 }
133 return (Success());
134 }
135
137 int TelClk(int num, int l, double *volt) {
138 if ((num < 0) || (num >= numClk))
139 {
140 sprintf(ErrMsg(), "clock channel number out of range");
141 return (ngcbMOD_ERR);
142 }
143 *volt = clk[num].level[l].volt;
144 clkTel[num].volt[l] = *volt;
145 return (Success());
146 }
147
149 int TelClk(int num, ngcdcs_clkv_t *cv) {
150 int j;
151 for (j=0;j<ngcdcsCLDC_DCLK;j++)
152 {
153 double volt;
154 if (TelClk(num, j, &volt) != Success())
155 {
156 return (ngcbMOD_ERR);
157 }
158 else
159 {
160 cv->volt[j] = volt;
161 }
162 }
163 return (Success());
164 }
165
167 int Zero() {return (Success());}
168
170 int Calibrate(int noSetup=0) {
171 USE(noSetup);
172 return (Success());
173 }
174
177
179 int Calibrated() {return (1);}
180
181protected:
182
183private:
185 double vRef_;
186
188 void Init_(double extRef);
189
191 double dcSave_[ngcbCLDC_MAX_DC];
192};
193
194#endif
Definition ngcbIFC.hpp:760
virtual int Success()
Return success.
Definition ngcbOBJ.cpp:68
virtual char * ErrMsg()
Error message.
Definition ngcbOBJ.cpp:66
int numDc
Number of bias voltages.
Definition ngcdcsCLDC.hpp:168
ngcdcs_clkv_t * clkTel
Saved clock voltages telemetry values.
Definition ngcdcsCLDC.hpp:171
double * dcTel
Saved bias voltages telemetry values.
Definition ngcdcsCLDC.hpp:174
int numClk
Number of clock voltages.
Definition ngcdcsCLDC.hpp:162
ngcdcs_dc_t * dc
Bias voltages.
Definition ngcdcsCLDC.hpp:165
ngcdcs_clk_t * clk
Clock voltages.
Definition ngcdcsCLDC.hpp:159
ngcdcsCLDC(const ngcb_route_t &r, int nc, int nb)
Constructor with route, number of clocks and number of biases.
Definition ngcdcsCLDC.cpp:29
int PreampOffset(double volt)
Preamplifier offset dummy function.
Definition ngcdcsNGSDBIAS.hpp:82
int Calibrated()
Check if calibration has been done.
Definition ngcdcsNGSDBIAS.hpp:179
void ClearCalibration()
Clear calibration.
Definition ngcdcsNGSDBIAS.hpp:176
int TelClk(int num, ngcdcs_clkv_t *cv)
Telemetry for clock (dummy, all levels)
Definition ngcdcsNGSDBIAS.hpp:149
int TelChan(int num, double *volt)
Telemetry for channel.
Definition ngcdcsNGSDBIAS.hpp:109
ngcdcsNGSDBIAS(const ngcb_route_t &r, int nb, double extRef=0.0)
Constructor with route, number of biases and external reference.
Definition ngcdcsNGSDBIAS.cpp:30
virtual ~ngcdcsNGSDBIAS()
Destructor.
Definition ngcdcsNGSDBIAS.cpp:47
int Volt2Reg(double *volt, int chan, double corr=1.0)
Convert voltage to register value.
Definition ngcdcsNGSDBIAS.cpp:331
double OffsetDC()
Return offset for DC-biases.
Definition ngcdcsNGSDBIAS.hpp:103
int Zero()
Set all voltages to zero.
Definition ngcdcsNGSDBIAS.hpp:167
int VStatus(int *s)
Get voltage HW-status.
Definition ngcdcsNGSDBIAS.cpp:88
int DiodeBias(double volt)
Diode bias dummy function.
Definition ngcdcsNGSDBIAS.hpp:94
void ClkMap(ngcdcs_clk_t *cv)
Clock channel mapping.
Definition ngcdcsNGSDBIAS.cpp:201
void DefaultSetup(const char *keyWord=NULL)
Default setup.
Definition ngcdcsNGSDBIAS.cpp:225
int VideoOffset(double *volt)
Video offset dummy function.
Definition ngcdcsNGSDBIAS.hpp:88
int TelIntern(int sel=-1)
Update internal telemetry.
Definition ngcdcsNGSDBIAS.hpp:106
void DcMap(ngcdcs_dc_t *dv)
Bias channel mapping.
Definition ngcdcsNGSDBIAS.cpp:168
int Calibrate(int noSetup=0)
Calibrate.
Definition ngcdcsNGSDBIAS.hpp:170
int TelClk(int num, int l, double *volt)
Telemetry for clock level (dummy)
Definition ngcdcsNGSDBIAS.hpp:137
double Reg2Volt(int reg, int chan, double corr=1.0)
Convert register value to voltage.
Definition ngcdcsNGSDBIAS.cpp:344
int Monitor(int num, int clkChan)
Clock-monitor dummy function.
Definition ngcdcsNGSDBIAS.hpp:64
int OffsetClk(double volt)
Clock offset dummy function.
Definition ngcdcsNGSDBIAS.hpp:70
int DacReg(int value, int chan)
Map value on DAC register channel.
Definition ngcdcsNGSDBIAS.cpp:351
double VRef()
Return actual reference voltage.
Definition ngcdcsNGSDBIAS.cpp:86
double OffsetClk()
Return offset for clocks.
Definition ngcdcsNGSDBIAS.hpp:100
int TelDC(int num, double *volt)
Telemetry for DC-bias (dummy)
Definition ngcdcsNGSDBIAS.hpp:121
int OffsetDC(double volt)
Bias offset dummy function.
Definition ngcdcsNGSDBIAS.hpp:76
#define ngcbCLDC_MAX_DC
Definition ngcbAddr.h:334
#define ngcbMOD_ERR
Definition ngcbOBJ.hpp:23
#define USE(x)
Definition ngcb.h:29
#define ngcdcsCLDC_DCLK
Definition ngcdcsCLDC.hpp:39
Definition ngcbIFC.hpp:78
Definition ngcdcsCLDC.hpp:104
Definition ngcdcsCLDC.hpp:115
double volt[ngcdcsCLDC_DCLK]
Definition ngcdcsCLDC.hpp:116
Definition ngcdcsCLDC.hpp:64