ngc 1.4.0
 
Loading...
Searching...
No Matches
ngcdcsPREAMP.hpp
Go to the documentation of this file.
1
7#ifndef ngcdcsPREAMP_H
8#define ngcdcsPREAMP_H
9
10
11#ifndef __cplusplus
12#error This is a C++ include file and cannot be used from plain C
13#endif
14
15#include <ngc/core/ngcbAddr.h>
16#include <ngc/core/ngcbMOD.hpp>
17
18/*
19 * I2C-bus addresses
20 */
21#define ngcdcsPREAMP_ADDR_GAIN1 0x20 //< gain register 1
22#define ngcdcsPREAMP_ADDR_BW1 0x21 //< bandwidth register 1
23#define ngcdcsPREAMP_ADDR_SA1 0x22 //< short/attn register 1
24#define ngcdcsPREAMP_ADDR_VREF1 0x10 //< reference voltage register 1
25#define ngcdcsPREAMP_ADDR_GAIN2 0x24 //< gain register 2
26#define ngcdcsPREAMP_ADDR_BW2 0x25 //< bandwidth register 2
27#define ngcdcsPREAMP_ADDR_SA2 0x26 //< short/attn register 2
28#define ngcdcsPREAMP_ADDR_VREF2 0x2c //< reference voltage register 2
29
33#define ngcdcsPREAMP_MAX_CHAN 8
34
38#define ngcdcsPREAMP_VREF_CMD 0x0
39
43#define ngcdcsPREAMP_I2C_FLAGS 0x0040
44
45
50 int addr; //< I2C-bus address
51 int value; //< register mirror value
52 int preset; //< preset flag
53
55 ngcdcs_i2c_t() {addr = 0x0; value = 0x0; preset = 0;}
56};
57
61class ngcdcsPREAMP: public ngcbMOD
62{
63public:
65 explicit ngcdcsPREAMP(const ngcb_route_t &r);
66
68 ngcdcsPREAMP(ngcbIFC *ifc, const ngcb_route_t &r);
69
71 virtual ~ngcdcsPREAMP();
72
75
78
81
84
86 int monitor;
87
90
92 int numChan;
93
95 double version;
96
99
100 // I2C-bus flags
101 int busCmd;
102
105
107 virtual void Reset();
108
110 virtual int Enable(int check = 1);
111
113 virtual int Disable();
114
116 virtual int Selftest();
117
119 virtual int Invert(int flag);
120
122 virtual int Gain(int idx, int value);
123
125 virtual int Bandwidth(int idx, int value);
126
128 virtual int ShortInput(int idx, int value);
129
131 virtual int Attn(int idx, int value);
132
134 virtual int Monitor(int chan);
135
137 virtual int Vref(int idx, double volt);
138
140 virtual int SetupKey(const char *key, const int *idx, const char *value,
141 int *status = NULL);
142
144 virtual int StatusKey(const char *key, const int *idx, char *value,
145 int *status = NULL);
146
147protected:
148
149private:
151 void Init_();
152
154 ngcdcs_i2c_t gainReg_[2];
155
157 ngcdcs_i2c_t bwReg_[2];
158
160 ngcdcs_i2c_t saReg_[2];
161
163 int Volt2Reg_(double);
164
166 int ctrlReg_;
167
169 int vrefPreset_[ngcdcsPREAMP_MAX_CHAN];
170};
171
172#endif
Definition ngcbIFC.hpp:754
ngcbMOD(const ngcbMOD &other)
Copy constructor.
Definition ngcbMOD.cpp:43
int numChan
Number of channels in use.
Definition ngcdcsPREAMP.hpp:92
virtual int Vref(int idx, double volt)
Set reference voltage.
Definition ngcdcsPREAMP.cpp:532
virtual ~ngcdcsPREAMP()
Destructor.
Definition ngcdcsPREAMP.cpp:43
ngcdcsPREAMP(const ngcb_route_t &r)
Constructor with route.
Definition ngcdcsPREAMP.cpp:28
virtual int Disable()
Call-back at transition to not operational state.
Definition ngcdcsPREAMP.cpp:227
int bw[ngcdcsPREAMP_MAX_CHAN]
Bandwidth.
Definition ngcdcsPREAMP.hpp:77
double vref[ngcdcsPREAMP_MAX_CHAN]
Reference voltage.
Definition ngcdcsPREAMP.hpp:89
virtual int Enable(int check=1)
Call-back at transition to operational state.
Definition ngcdcsPREAMP.cpp:106
int shortIn[ngcdcsPREAMP_MAX_CHAN]
Short input.
Definition ngcdcsPREAMP.hpp:80
virtual int ShortInput(int idx, int value)
Set short input.
Definition ngcdcsPREAMP.cpp:368
int vrefCmd
Reference voltage DAC command.
Definition ngcdcsPREAMP.hpp:98
virtual int Attn(int idx, int value)
Set attenuation.
Definition ngcdcsPREAMP.cpp:431
virtual int Gain(int idx, int value)
Set gain.
Definition ngcdcsPREAMP.cpp:266
virtual int Selftest()
Execute selftest.
Definition ngcdcsPREAMP.cpp:232
virtual int SetupKey(const char *key, const int *idx, const char *value, int *status=NULL)
Setup.
Definition ngcdcsPreampSetup.cpp:25
int gain[ngcdcsPREAMP_MAX_CHAN]
Gain.
Definition ngcdcsPREAMP.hpp:74
virtual void Reset()
Align software state after reset.
Definition ngcdcsPREAMP.cpp:95
int invertSignal
Invert signals.
Definition ngcdcsPREAMP.hpp:104
double version
Preamplifier version.
Definition ngcdcsPREAMP.hpp:95
virtual int Bandwidth(int idx, int value)
Set bandwidth.
Definition ngcdcsPREAMP.cpp:312
int monitor
Monitor channel.
Definition ngcdcsPREAMP.hpp:86
virtual int StatusKey(const char *key, const int *idx, char *value, int *status=NULL)
Status.
Definition ngcdcsPreampStatus.cpp:25
virtual int Invert(int flag)
Invert signals.
Definition ngcdcsPREAMP.cpp:240
virtual int Monitor(int chan)
Set monitor.
Definition ngcdcsPREAMP.cpp:482
int attn[ngcdcsPREAMP_MAX_CHAN]
Attenuation.
Definition ngcdcsPREAMP.hpp:83
int busCmd
Definition ngcdcsPREAMP.hpp:101
#define ngcdcsPREAMP_MAX_CHAN
Definition ngcdcsPREAMP.hpp:33
Definition ngcbIFC.hpp:72
Definition ngcdcsPREAMP.hpp:49
int preset
Definition ngcdcsPREAMP.hpp:52
ngcdcs_i2c_t()
Constructor.
Definition ngcdcsPREAMP.hpp:55
int value
Definition ngcdcsPREAMP.hpp:51
int addr
Definition ngcdcsPREAMP.hpp:50