ngc 1.5.0
 
Loading...
Searching...
No Matches
ngcdcsPREAMP.hpp
Go to the documentation of this file.
1
8#ifndef ngcdcsPREAMP_H
9#define ngcdcsPREAMP_H
10
11
12#ifndef __cplusplus
13#error This is a C++ include file and cannot be used from plain C
14#endif
15
16#include <ngc/core/ngcbAddr.h>
17#include <ngc/core/ngcbMOD.hpp>
18
19/*
20 * I2C-bus addresses
21 */
22#define ngcdcsPREAMP_ADDR_GAIN1 0x20 //< gain register 1
23#define ngcdcsPREAMP_ADDR_BW1 0x21 //< bandwidth register 1
24#define ngcdcsPREAMP_ADDR_SA1 0x22 //< short/attn register 1
25#define ngcdcsPREAMP_ADDR_VREF1 0x10 //< reference voltage register 1
26#define ngcdcsPREAMP_ADDR_GAIN2 0x24 //< gain register 2
27#define ngcdcsPREAMP_ADDR_BW2 0x25 //< bandwidth register 2
28#define ngcdcsPREAMP_ADDR_SA2 0x26 //< short/attn register 2
29#define ngcdcsPREAMP_ADDR_VREF2 0x2c //< reference voltage register 2
30
34#define ngcdcsPREAMP_MAX_CHAN 8
35
39#define ngcdcsPREAMP_VREF_CMD 0x0
40
44#define ngcdcsPREAMP_I2C_FLAGS 0x0040
45
46
51 int addr; //< I2C-bus address
52 int value; //< register mirror value
53 int preset; //< preset flag
54
56 ngcdcs_i2c_t() {addr = 0x0; value = 0x0; preset = 0;}
57};
58
62class ngcdcsPREAMP: public ngcbMOD
63{
64public:
66 explicit ngcdcsPREAMP(const ngcb_route_t &r);
67
69 ngcdcsPREAMP(ngcbIFC *ifc, const ngcb_route_t &r);
70
72 virtual ~ngcdcsPREAMP();
73
76
79
82
85
87 int monitor;
88
91
93 int numChan;
94
96 double version;
97
100
101 // I2C-bus flags
102 int busCmd;
103
106
108 virtual void Reset();
109
111 virtual int Enable(int check = 1);
112
114 virtual int Disable();
115
117 virtual int Selftest();
118
120 virtual int Invert(int flag);
121
123 virtual int Gain(int idx, int value);
124
126 virtual int Bandwidth(int idx, int value);
127
129 virtual int ShortInput(int idx, int value);
130
132 virtual int Attn(int idx, int value);
133
135 virtual int Monitor(int chan);
136
138 virtual int Vref(int idx, double volt);
139
141 virtual int SetupKey(const char *key, const int *idx, const char *value,
142 int *status = NULL);
143
145 virtual int StatusKey(const char *key, const int *idx, char *value,
146 int *status = NULL);
147
148protected:
149
150private:
152 void Init_();
153
155 ngcdcs_i2c_t gainReg_[2];
156
158 ngcdcs_i2c_t bwReg_[2];
159
161 ngcdcs_i2c_t saReg_[2];
162
164 int Volt2Reg_(double);
165
167 int ctrlReg_;
168
170 int vrefPreset_[ngcdcsPREAMP_MAX_CHAN];
171};
172
173#endif
Definition ngcbIFC.hpp:760
ngcbMOD(const ngcbMOD &other)
Copy constructor.
Definition ngcbMOD.cpp:43
int numChan
Number of channels in use.
Definition ngcdcsPREAMP.hpp:93
virtual int Vref(int idx, double volt)
Set reference voltage.
Definition ngcdcsPREAMP.cpp:533
virtual ~ngcdcsPREAMP()
Destructor.
Definition ngcdcsPREAMP.cpp:44
ngcdcsPREAMP(const ngcb_route_t &r)
Constructor with route.
Definition ngcdcsPREAMP.cpp:29
virtual int Disable()
Call-back at transition to not operational state.
Definition ngcdcsPREAMP.cpp:228
int bw[ngcdcsPREAMP_MAX_CHAN]
Bandwidth.
Definition ngcdcsPREAMP.hpp:78
double vref[ngcdcsPREAMP_MAX_CHAN]
Reference voltage.
Definition ngcdcsPREAMP.hpp:90
virtual int Enable(int check=1)
Call-back at transition to operational state.
Definition ngcdcsPREAMP.cpp:107
int shortIn[ngcdcsPREAMP_MAX_CHAN]
Short input.
Definition ngcdcsPREAMP.hpp:81
virtual int ShortInput(int idx, int value)
Set short input.
Definition ngcdcsPREAMP.cpp:369
int vrefCmd
Reference voltage DAC command.
Definition ngcdcsPREAMP.hpp:99
virtual int Attn(int idx, int value)
Set attenuation.
Definition ngcdcsPREAMP.cpp:432
virtual int Gain(int idx, int value)
Set gain.
Definition ngcdcsPREAMP.cpp:267
virtual int Selftest()
Execute selftest.
Definition ngcdcsPREAMP.cpp:233
virtual int SetupKey(const char *key, const int *idx, const char *value, int *status=NULL)
Setup.
Definition ngcdcsPreampSetup.cpp:26
int gain[ngcdcsPREAMP_MAX_CHAN]
Gain.
Definition ngcdcsPREAMP.hpp:75
virtual void Reset()
Align software state after reset.
Definition ngcdcsPREAMP.cpp:96
int invertSignal
Invert signals.
Definition ngcdcsPREAMP.hpp:105
double version
Preamplifier version.
Definition ngcdcsPREAMP.hpp:96
virtual int Bandwidth(int idx, int value)
Set bandwidth.
Definition ngcdcsPREAMP.cpp:313
int monitor
Monitor channel.
Definition ngcdcsPREAMP.hpp:87
virtual int StatusKey(const char *key, const int *idx, char *value, int *status=NULL)
Status.
Definition ngcdcsPreampStatus.cpp:26
virtual int Invert(int flag)
Invert signals.
Definition ngcdcsPREAMP.cpp:241
virtual int Monitor(int chan)
Set monitor.
Definition ngcdcsPREAMP.cpp:483
int attn[ngcdcsPREAMP_MAX_CHAN]
Attenuation.
Definition ngcdcsPREAMP.hpp:84
int busCmd
Definition ngcdcsPREAMP.hpp:102
#define ngcdcsPREAMP_MAX_CHAN
Definition ngcdcsPREAMP.hpp:34
Definition ngcbIFC.hpp:78
Definition ngcdcsPREAMP.hpp:50
int preset
Definition ngcdcsPREAMP.hpp:53
ngcdcs_i2c_t()
Constructor.
Definition ngcdcsPREAMP.hpp:56
int value
Definition ngcdcsPREAMP.hpp:52
int addr
Definition ngcdcsPREAMP.hpp:51