ngc 1.4.0
 
Loading...
Searching...
No Matches
ngcdcsNGSDBIAS.hpp
Go to the documentation of this file.
1
7#ifndef ngcdcsNGSDBIAS_H
8#define ngcdcsNGSDBIAS_H
9
10
11#ifndef __cplusplus
12#error This is a C++ include file and cannot be used from plain C
13#endif
14
16
20#define ngcdcsNGSDBIAS_ERR_PROTECTION 0x1
21
26{
27public:
29 ngcdcsNGSDBIAS(const ngcb_route_t &r, int nb, double extRef = 0.0);
30
32 ngcdcsNGSDBIAS(ngcbIFC *ifc, const ngcb_route_t &r, int nb,
33 double extRef = 0.0);
34
36 virtual ~ngcdcsNGSDBIAS();
37
39 double VRef();
40
42 void ClkMap(ngcdcs_clk_t *cv);
43
45 void DcMap(ngcdcs_dc_t *dv);
46
48 int VStatus(int *s);
49
51 void DefaultSetup(const char *keyWord = NULL);
52
54 int Volt2Reg(double *volt, int chan, double corr = 1.0);
55
57 double Reg2Volt(int reg, int chan, double corr = 1.0);
58
60 int DacReg(int value, int chan);
61
63 int Monitor(int num, int clkChan) {
64 USE(num); USE(clkChan);
65 return (Success());
66 }
67
69 int OffsetClk(double volt) {
70 USE(volt);
71 return (Success());
72 }
73
75 int OffsetDC(double volt) {
76 USE(volt);
77 return (Success());
78 }
79
81 int PreampOffset(double volt) {
82 USE(volt);
83 return (Success());
84 }
85
87 int VideoOffset(double * volt) {
88 USE(volt);
89 return (Success());
90 }
91
93 int DiodeBias(double volt) {
94 USE(volt);
95 return (Success());
96 }
97
99 double OffsetClk() {return (0.0);}
100
102 double OffsetDC() {return (0.0);}
103
105 int TelIntern(int sel = -1) {USE(sel); return (Success());}
106
108 int TelChan(int num, double *volt) {
109 if ((num < 0) || (num >= numDc))
110 {
111 sprintf(ErrMsg(), "bias channel number out of range");
112 return (ngcbMOD_ERR);
113 }
114 *volt = dc[num].volt;
115 dcTel[num] = *volt;
116 return (Success());
117 }
118
120 int TelDC(int num, double *volt) {
121 if ((num < 0) || (num >= numDc))
122 {
123 sprintf(ErrMsg(), "bias channel number out of range");
124 return (ngcbMOD_ERR);
125 }
126 else
127 {
128 *volt = dc[num].volt;
129 dcTel[num] = *volt;
130 Volt2Reg(volt, num, 0.0);
131 }
132 return (Success());
133 }
134
136 int TelClk(int num, int l, double *volt) {
137 if ((num < 0) || (num >= numClk))
138 {
139 sprintf(ErrMsg(), "clock channel number out of range");
140 return (ngcbMOD_ERR);
141 }
142 *volt = clk[num].level[l].volt;
143 clkTel[num].volt[l] = *volt;
144 return (Success());
145 }
146
148 int TelClk(int num, ngcdcs_clkv_t *cv) {
149 int j;
150 for (j=0;j<ngcdcsCLDC_DCLK;j++)
151 {
152 double volt;
153 if (TelClk(num, j, &volt) != Success())
154 {
155 return (ngcbMOD_ERR);
156 }
157 else
158 {
159 cv->volt[j] = volt;
160 }
161 }
162 return (Success());
163 }
164
166 int Zero() {return (Success());}
167
169 int Calibrate(int noSetup=0) {
170 USE(noSetup);
171 return (Success());
172 }
173
176
178 int Calibrated() {return (1);}
179
180protected:
181
182private:
184 double vRef_;
185
187 void Init_(double extRef);
188
190 double dcSave_[ngcbCLDC_MAX_DC];
191};
192
193#endif
Definition ngcbIFC.hpp:754
virtual int Success()
Return success.
Definition ngcbOBJ.cpp:67
virtual char * ErrMsg()
Error message.
Definition ngcbOBJ.cpp:65
int numDc
Number of bias voltages.
Definition ngcdcsCLDC.hpp:167
ngcdcs_clkv_t * clkTel
Saved clock voltages telemetry values.
Definition ngcdcsCLDC.hpp:170
double * dcTel
Saved bias voltages telemetry values.
Definition ngcdcsCLDC.hpp:173
int numClk
Number of clock voltages.
Definition ngcdcsCLDC.hpp:161
ngcdcs_dc_t * dc
Bias voltages.
Definition ngcdcsCLDC.hpp:164
ngcdcs_clk_t * clk
Clock voltages.
Definition ngcdcsCLDC.hpp:158
ngcdcsCLDC(const ngcb_route_t &r, int nc, int nb)
Constructor with route, number of clocks and number of biases.
Definition ngcdcsCLDC.cpp:28
int PreampOffset(double volt)
Preamplifier offset dummy function.
Definition ngcdcsNGSDBIAS.hpp:81
int Calibrated()
Check if calibration has been done.
Definition ngcdcsNGSDBIAS.hpp:178
void ClearCalibration()
Clear calibration.
Definition ngcdcsNGSDBIAS.hpp:175
int TelClk(int num, ngcdcs_clkv_t *cv)
Telemetry for clock (dummy, all levels)
Definition ngcdcsNGSDBIAS.hpp:148
int TelChan(int num, double *volt)
Telemetry for channel.
Definition ngcdcsNGSDBIAS.hpp:108
ngcdcsNGSDBIAS(const ngcb_route_t &r, int nb, double extRef=0.0)
Constructor with route, number of biases and external reference.
Definition ngcdcsNGSDBIAS.cpp:29
virtual ~ngcdcsNGSDBIAS()
Destructor.
Definition ngcdcsNGSDBIAS.cpp:46
int Volt2Reg(double *volt, int chan, double corr=1.0)
Convert voltage to register value.
Definition ngcdcsNGSDBIAS.cpp:330
double OffsetDC()
Return offset for DC-biases.
Definition ngcdcsNGSDBIAS.hpp:102
int Zero()
Set all voltages to zero.
Definition ngcdcsNGSDBIAS.hpp:166
int VStatus(int *s)
Get voltage HW-status.
Definition ngcdcsNGSDBIAS.cpp:87
int DiodeBias(double volt)
Diode bias dummy function.
Definition ngcdcsNGSDBIAS.hpp:93
void ClkMap(ngcdcs_clk_t *cv)
Clock channel mapping.
Definition ngcdcsNGSDBIAS.cpp:200
void DefaultSetup(const char *keyWord=NULL)
Default setup.
Definition ngcdcsNGSDBIAS.cpp:224
int VideoOffset(double *volt)
Video offset dummy function.
Definition ngcdcsNGSDBIAS.hpp:87
int TelIntern(int sel=-1)
Update internal telemetry.
Definition ngcdcsNGSDBIAS.hpp:105
void DcMap(ngcdcs_dc_t *dv)
Bias channel mapping.
Definition ngcdcsNGSDBIAS.cpp:167
int Calibrate(int noSetup=0)
Calibrate.
Definition ngcdcsNGSDBIAS.hpp:169
int TelClk(int num, int l, double *volt)
Telemetry for clock level (dummy)
Definition ngcdcsNGSDBIAS.hpp:136
double Reg2Volt(int reg, int chan, double corr=1.0)
Convert register value to voltage.
Definition ngcdcsNGSDBIAS.cpp:343
int Monitor(int num, int clkChan)
Clock-monitor dummy function.
Definition ngcdcsNGSDBIAS.hpp:63
int OffsetClk(double volt)
Clock offset dummy function.
Definition ngcdcsNGSDBIAS.hpp:69
int DacReg(int value, int chan)
Map value on DAC register channel.
Definition ngcdcsNGSDBIAS.cpp:350
double VRef()
Return actual reference voltage.
Definition ngcdcsNGSDBIAS.cpp:85
double OffsetClk()
Return offset for clocks.
Definition ngcdcsNGSDBIAS.hpp:99
int TelDC(int num, double *volt)
Telemetry for DC-bias (dummy)
Definition ngcdcsNGSDBIAS.hpp:120
int OffsetDC(double volt)
Bias offset dummy function.
Definition ngcdcsNGSDBIAS.hpp:75
#define ngcbCLDC_MAX_DC
Definition ngcbAddr.h:333
#define ngcbMOD_ERR
Definition ngcbOBJ.hpp:22
#define USE(x)
Definition ngcb.h:28
#define ngcdcsCLDC_DCLK
Definition ngcdcsCLDC.hpp:38
Definition ngcbIFC.hpp:72
Definition ngcdcsCLDC.hpp:103
Definition ngcdcsCLDC.hpp:114
double volt[ngcdcsCLDC_DCLK]
Definition ngcdcsCLDC.hpp:115
Definition ngcdcsCLDC.hpp:63