ngc 1.4.0
 
Loading...
Searching...
No Matches
ngcdcsCTRL.hpp
Go to the documentation of this file.
1
7#ifndef ngcdcsCTRL_H
8#define ngcdcsCTRL_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/ngcbOBJ.hpp>
16#include <ngc/core/ngcbNET.hpp>
28#include <ngc/core/ngcdcsAO.hpp>
38
39/*
40 * Module array limits
41 */
42#define ngcdcsCTRL_MAX_CLDC 24 //< Maximum number of CLDC modules
43#define ngcdcsCTRL_MAX_SEQ 24 //< Maximum number of sequencer modules
44#define ngcdcsCTRL_MAX_ADCMOD 24 //< Maximum number of ADC modules
45#define ngcdcsCTRL_MAX_SHUTTER 24 //< Maximum number of shutter modules
46#define ngcdcsCTRL_MAX_PREAMP 24 //< Maximum number of preamplifier modules
47#define ngcdcsCTRL_MAX_NGC2 8 //< Maximum number of NGC2 basic modules
48#define ngcdcsCTRL_MAX_AO 4 //< Maximum number of AO cameras
49#define ngcdcsCTRL_MAX_LISA 4 //< Maximum number of LISA cameras
50#define ngcdcsCTRL_MAX_NGSD 4 //< Maximum number of NGSD cameras
51#define ngcdcsCTRL_MAX_TEC 4 //< Maximum number of TEC modules
52#define ngcdcsCTRL_MAX_SVS 4 //< Maximum number of SVS modules
53#define ngcdcsCTRL_MAX_SCA 4 //< Maximum number of Sidecar ASIC modules
54#define ngcdcsCTRL_MAX_MOD 4 //< Maximum number of additional modules
55#define ngcdcsCTRL_MAX_DEV 8 //< Maximum number of subsystem devices
56#define ngcdcsCTRL_MAX_REG 16 //< Maximum number of generic registers
57
61#define ngcdcsCTRL_MAX_BOARD 24
62
66class ngcdcsCTRL: public ngcbOBJ
67{
68public:
70 ngcdcsCTRL();
71
73 virtual ~ngcdcsCTRL();
74
77
79 int numDev;
80
83
86
89
92
95
98
101
104
107
110
113
116
119
122
125
128
131
134
137
140
143
146
149
152
155
158
160 int Sim(int level);
161
163 int AttachMod(ngcbMOD *mod);
164
166 void UpdateLogging();
167
169 int Initialize();
170
172 int Abort();
173
175 int Reset();
176
178 int ResetDev();
179
181 int Standby();
182
184 int Enable1();
185
187 int Enable2(int check = 1);
188
190 int Enable(int check = 1);
191
193 int Off();
194
196 void Shutdown();
197
199 ngcbNET *Network(int idx);
200
202 int NetworkEnable();
203
205 int Refresh(int id = 0);
206
208 int ReadAddr(ngcbIFC *dv, ngcb_route_t route, int addr, int *buffer,
209 int size);
210
212 int WriteAddr(ngcbIFC *dv, ngcb_route_t route, int addr, const int *buffer,
213 int size);
214
216 int RPC(ngcbIFC *dv, int module, int target, int req, void *payload,
217 unsigned int size, unsigned int *status = NULL);
218
220 int ReadBuffer(int idx, const char *s, int *buffer, int *size);
221
223 int WriteBuffer(int idx, const char *s);
224
226 int WriteBuffer(ngcbIFC *dv, const int *buffer, int size);
227
229 int IOR(int idx, int addr, int *value);
230
232 int IOW(int idx, int addr, int value);
233
235 int PCR(int idx, int addr, int *value);
236
238 int PCW(int idx, int addr, int value);
239
240protected:
241
242private:
244 void Init_();
245
247 void SoftReset_();
248
250 void SoftReset_(int devIdx);
251
253 int BoardType_(ngcbMOD *mod, int p, int r, int f);
254
256 int ConfigureBoardTypes_();
257
259 int sim_;
260
262 ngcbNET *network_[ngcdcsCTRL_MAX_DEV];
263
266
268 int numMod_;
269};
270
271#endif
Definition ngcbIFC.hpp:754
Definition ngcbMOD.hpp:24
Definition ngcbNET.hpp:156
ngcbOBJ()
Constructor.
Definition ngcbOBJ.cpp:34
Definition ngcdcsADC.hpp:54
Definition ngcdcsAO.hpp:311
Definition ngcdcsCLDC.hpp:594
int WriteAddr(ngcbIFC *dv, ngcb_route_t route, int addr, const int *buffer, int size)
Write to address.
Definition ngcdcsCTRL.cpp:2146
int Refresh(int id=0)
Refresh internal telemetry.
Definition ngcdcsCTRL.cpp:2013
int numAdcMod
Number of ADC modules.
Definition ngcdcsCTRL.hpp:100
int IOW(int idx, int addr, int value)
Write to device local address.
Definition ngcdcsCTRL.cpp:2496
ngcdcsCLDC * cldc[ngcdcsCTRL_MAX_CLDC]
CLDC modules.
Definition ngcdcsCTRL.hpp:85
ngcbIFC * dev[ngcdcsCTRL_MAX_DEV]
Interface deviceS.
Definition ngcdcsCTRL.hpp:76
int numSvsMod
Number of SVS modules.
Definition ngcdcsCTRL.hpp:151
ngcdcsPREAMP * preamp[ngcdcsCTRL_MAX_PREAMP]
Preamplifier modules.
Definition ngcdcsCTRL.hpp:118
ngcdcsCTRL()
Constructor.
Definition ngcdcsCTRL.cpp:341
ngcdcsNGSD * ngsd[ngcdcsCTRL_MAX_NGSD]
NGSD cameras.
Definition ngcdcsCTRL.hpp:136
int ReadAddr(ngcbIFC *dv, ngcb_route_t route, int addr, int *buffer, int size)
Read from address.
Definition ngcdcsCTRL.cpp:2115
int NetworkEnable()
Enable all connected networks.
Definition ngcdcsCTRL.cpp:2086
int numCldcMod
Number of CLDC modules.
Definition ngcdcsCTRL.hpp:88
int Enable(int check=1)
Switch to operational state (step 1 and step 2)
Definition ngcdcsCTRL.cpp:1378
int IOR(int idx, int addr, int *value)
Read from device local address.
Definition ngcdcsCTRL.cpp:2475
ngcdcsLISA * lisa[ngcdcsCTRL_MAX_LISA]
LISA cameras.
Definition ngcdcsCTRL.hpp:130
int numLisaMod
Number of LISA cameras.
Definition ngcdcsCTRL.hpp:133
void UpdateLogging()
Update verbose level of all modules.
Definition ngcdcsCTRL.cpp:2561
int numScaMod
Number of ASIC moduled.
Definition ngcdcsCTRL.hpp:157
int numPreampMod
Number of preamplifier modules.
Definition ngcdcsCTRL.hpp:121
ngcbNET * Network(int idx)
Return pointer to network structure.
Definition ngcdcsCTRL.cpp:2074
int Standby()
Disable all control moduels and put interface devices to standby state.
Definition ngcdcsCTRL.cpp:1327
int PCR(int idx, int addr, int *value)
Read from PCI configuration space address.
Definition ngcdcsCTRL.cpp:2518
void Shutdown()
Shutdown all controller modules.
Definition ngcdcsCTRL.cpp:358
ngcdcsAO * ao[ngcdcsCTRL_MAX_AO]
AO cameras.
Definition ngcdcsCTRL.hpp:124
int adcMap[ngcdcsCTRL_MAX_ADCMOD]
ADC module mapping.
Definition ngcdcsCTRL.hpp:103
int numNgc2Mod
Number of NGC2 basic modules.
Definition ngcdcsCTRL.hpp:109
virtual ~ngcdcsCTRL()
Destructor.
Definition ngcdcsCTRL.cpp:346
ngcdcsSHUTTER * shutter[ngcdcsCTRL_MAX_SHUTTER]
Shutter modules.
Definition ngcdcsCTRL.hpp:112
int Sim(int level)
Set simulation level.
Definition ngcdcsCTRL.cpp:965
int Abort()
Stop/disable all modules.
Definition ngcdcsCTRL.cpp:987
int Off()
Switch off.
Definition ngcdcsCTRL.cpp:1276
ngcdcsTEC * tec[ngcdcsCTRL_MAX_TEC]
TEC modules.
Definition ngcdcsCTRL.hpp:142
int numSeqMod
Number of sequencer modules.
Definition ngcdcsCTRL.hpp:94
ngcdcsSVS * svs[ngcdcsCTRL_MAX_SVS]
SVS modules.
Definition ngcdcsCTRL.hpp:148
int ResetDev()
Reset interface devices.
Definition ngcdcsCTRL.cpp:1816
ngcdcsNGC2 * ngc2[ngcdcsCTRL_MAX_NGC2]
NGC2 basic modules.
Definition ngcdcsCTRL.hpp:106
int RPC(ngcbIFC *dv, int module, int target, int req, void *payload, unsigned int size, unsigned int *status=NULL)
Execute RPC.
Definition ngcdcsCTRL.cpp:2177
int ioError
I/O-error flag.
Definition ngcdcsCTRL.hpp:82
int WriteBuffer(int idx, const char *s)
Write buffer (string input)
Definition ngcdcsCTRL.cpp:2287
int ReadBuffer(int idx, const char *s, int *buffer, int *size)
Read buffer (string input, output to 128 word buffer)
Definition ngcdcsCTRL.cpp:2200
ngcdcsADC * adc[ngcdcsCTRL_MAX_ADCMOD]
ADC modules.
Definition ngcdcsCTRL.hpp:97
ngcdcsSCA * sca[ngcdcsCTRL_MAX_SCA]
Sidecar ASIC modules.
Definition ngcdcsCTRL.hpp:154
int numNgsdMod
Number of NGSD cameras.
Definition ngcdcsCTRL.hpp:139
int numShutterMod
Number of shutter modules.
Definition ngcdcsCTRL.hpp:115
int Enable1()
Switch to operational state (step 1, device network)
Definition ngcdcsCTRL.cpp:1397
int PCW(int idx, int addr, int value)
Write to PCI configuration space address.
Definition ngcdcsCTRL.cpp:2539
int Reset()
Overall reset.
Definition ngcdcsCTRL.cpp:1855
int AttachMod(ngcbMOD *mod)
Attach add-on module to global handling.
Definition ngcdcsCTRL.cpp:545
int numTecMod
Number of TEC modules.
Definition ngcdcsCTRL.hpp:145
ngcdcsSEQ * seq[ngcdcsCTRL_MAX_SEQ]
Sequencer modules.
Definition ngcdcsCTRL.hpp:91
int Initialize()
Internal intialization after configuring.
Definition ngcdcsCTRL.cpp:597
int Enable2(int check=1)
Switch to operational state (step 2, control modules)
Definition ngcdcsCTRL.cpp:1541
int numAoMod
Number of AO cameras.
Definition ngcdcsCTRL.hpp:127
int numDev
Number of interface devices.
Definition ngcdcsCTRL.hpp:79
Definition ngcdcsLISA.hpp:34
Definition ngcdcsNGC2.hpp:39
Definition ngcdcsNGSD.hpp:36
Definition ngcdcsPREAMP.hpp:62
Definition ngcdcsSCA.hpp:182
Definition ngcdcsSEQ.hpp:574
Definition ngcdcsSHUTTER.hpp:35
Definition ngcdcsSVS.hpp:157
Definition ngcdcsTEC.hpp:136
#define ngcdcsCTRL_MAX_PREAMP
Definition ngcdcsCTRL.hpp:46
#define ngcdcsCTRL_MAX_CLDC
Definition ngcdcsCTRL.hpp:42
#define ngcdcsCTRL_MAX_SEQ
Definition ngcdcsCTRL.hpp:43
#define ngcdcsCTRL_MAX_MOD
Definition ngcdcsCTRL.hpp:54
#define ngcdcsCTRL_MAX_SCA
Definition ngcdcsCTRL.hpp:53
#define ngcdcsCTRL_MAX_ADCMOD
Definition ngcdcsCTRL.hpp:44
#define ngcdcsCTRL_MAX_TEC
Definition ngcdcsCTRL.hpp:51
#define ngcdcsCTRL_MAX_NGSD
Definition ngcdcsCTRL.hpp:50
#define ngcdcsCTRL_MAX_DEV
Definition ngcdcsCTRL.hpp:55
#define ngcdcsCTRL_MAX_NGC2
Definition ngcdcsCTRL.hpp:47
#define ngcdcsCTRL_MAX_SVS
Definition ngcdcsCTRL.hpp:52
#define ngcdcsCTRL_MAX_SHUTTER
Definition ngcdcsCTRL.hpp:45
#define ngcdcsCTRL_MAX_AO
Definition ngcdcsCTRL.hpp:48
#define ngcdcsCTRL_MAX_LISA
Definition ngcdcsCTRL.hpp:49
Definition ngcbIFC.hpp:72