ngc 1.5.0
 
Loading...
Searching...
No Matches
ngcdcsCTRL.hpp
Go to the documentation of this file.
1
8#ifndef ngcdcsCTRL_H
9#define ngcdcsCTRL_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/ngcbOBJ.hpp>
17#include <ngc/core/ngcbNET.hpp>
29#include <ngc/core/ngcdcsAO.hpp>
39
40/*
41 * Module array limits
42 */
43#define ngcdcsCTRL_MAX_CLDC 24 //< Maximum number of CLDC modules
44#define ngcdcsCTRL_MAX_SEQ 64 //< Maximum number of sequencer modules
45#define ngcdcsCTRL_MAX_ADCMOD 24 //< Maximum number of ADC modules
46#define ngcdcsCTRL_MAX_SHUTTER 24 //< Maximum number of shutter modules
47#define ngcdcsCTRL_MAX_PREAMP 24 //< Maximum number of preamplifier modules
48#define ngcdcsCTRL_MAX_NGC2 64 //< Maximum number of NGC2 basic modules
49#define ngcdcsCTRL_MAX_AO 4 //< Maximum number of AO cameras
50#define ngcdcsCTRL_MAX_LISA 4 //< Maximum number of LISA cameras
51#define ngcdcsCTRL_MAX_NGSD 4 //< Maximum number of NGSD cameras
52#define ngcdcsCTRL_MAX_TEC 4 //< Maximum number of TEC modules
53#define ngcdcsCTRL_MAX_GEOSNAP 4 //< Maximum number of GEOSNAP modules
54#define ngcdcsCTRL_MAX_SCA 4 //< Maximum number of Sidecar ASIC modules
55#define ngcdcsCTRL_MAX_MOD 4 //< Maximum number of additional modules
56#define ngcdcsCTRL_MAX_DEV 16 //< Maximum number of subsystem devices
57#define ngcdcsCTRL_MAX_REG 16 //< Maximum number of generic registers
58
62#define ngcdcsCTRL_MAX_BOARD 24
63
67class ngcdcsCTRL: public ngcbOBJ
68{
69public:
71 ngcdcsCTRL();
72
74 virtual ~ngcdcsCTRL();
75
78
80 int numDev;
81
84
87
90
93
96
99
102
105
108
111
114
117
120
123
126
129
132
135
138
141
144
147
150
153
156
159
161 int Sim(int level);
162
164 int AttachMod(ngcbMOD *mod);
165
167 void UpdateLogging();
168
170 int Initialize();
171
173 int Abort();
174
176 int Reset();
177
179 int ResetDev();
180
182 int Standby();
183
185 int Enable1();
186
188 int Enable2(int check = 1);
189
191 int Enable(int check = 1);
192
194 int Off();
195
197 void Shutdown();
198
200 ngcbNET *Network(int idx);
201
203 int NetworkEnable();
204
206 int Refresh(int id = 0);
207
209 int ReadAddr(ngcbIFC *dv, ngcb_route_t route, int addr, int *buffer,
210 int size);
211
213 int WriteAddr(ngcbIFC *dv, ngcb_route_t route, int addr, const int *buffer,
214 int size);
215
217 int RPC(ngcbIFC *dv, int module, int target, int req, void *payload,
218 unsigned int size, unsigned int *status = NULL);
219
221 int ReadBuffer(int idx, const char *s, int *buffer, int *size);
222
224 int WriteBuffer(int idx, const char *s);
225
227 int WriteBuffer(ngcbIFC *dv, const int *buffer, int size);
228
230 int IOR(int idx, int addr, int *value);
231
233 int IOW(int idx, int addr, int value);
234
236 int PCR(int idx, int addr, int *value);
237
239 int PCW(int idx, int addr, int value);
240
241protected:
242
243private:
245 void Init_();
246
248 void SoftReset_();
249
251 void SoftReset_(int devIdx);
252
254 int BoardType_(ngcbMOD *mod, int p, int r, int f);
255
257 int ConfigureBoardTypes_();
258
260 int sim_;
261
263 ngcbNET *network_[ngcdcsCTRL_MAX_DEV];
264
267
269 int numMod_;
270};
271
272#endif
Definition ngcbIFC.hpp:760
Definition ngcbMOD.hpp:25
Definition ngcbNET.hpp:157
ngcbOBJ()
Constructor.
Definition ngcbOBJ.cpp:35
Definition ngcdcsADC.hpp:55
Definition ngcdcsAO.hpp:312
Definition ngcdcsCLDC.hpp:595
int WriteAddr(ngcbIFC *dv, ngcb_route_t route, int addr, const int *buffer, int size)
Write to address.
Definition ngcdcsCTRL.cpp:2147
int Refresh(int id=0)
Refresh internal telemetry.
Definition ngcdcsCTRL.cpp:2014
int numAdcMod
Number of ADC modules.
Definition ngcdcsCTRL.hpp:101
int IOW(int idx, int addr, int value)
Write to device local address.
Definition ngcdcsCTRL.cpp:2497
ngcdcsCLDC * cldc[ngcdcsCTRL_MAX_CLDC]
CLDC modules.
Definition ngcdcsCTRL.hpp:86
ngcbIFC * dev[ngcdcsCTRL_MAX_DEV]
Interface deviceS.
Definition ngcdcsCTRL.hpp:77
ngcdcsPREAMP * preamp[ngcdcsCTRL_MAX_PREAMP]
Preamplifier modules.
Definition ngcdcsCTRL.hpp:119
ngcdcsCTRL()
Constructor.
Definition ngcdcsCTRL.cpp:342
ngcdcsNGSD * ngsd[ngcdcsCTRL_MAX_NGSD]
NGSD cameras.
Definition ngcdcsCTRL.hpp:137
int ReadAddr(ngcbIFC *dv, ngcb_route_t route, int addr, int *buffer, int size)
Read from address.
Definition ngcdcsCTRL.cpp:2116
int NetworkEnable()
Enable all connected networks.
Definition ngcdcsCTRL.cpp:2087
int numCldcMod
Number of CLDC modules.
Definition ngcdcsCTRL.hpp:89
int Enable(int check=1)
Switch to operational state (step 1 and step 2)
Definition ngcdcsCTRL.cpp:1379
int IOR(int idx, int addr, int *value)
Read from device local address.
Definition ngcdcsCTRL.cpp:2476
ngcdcsLISA * lisa[ngcdcsCTRL_MAX_LISA]
LISA cameras.
Definition ngcdcsCTRL.hpp:131
int numLisaMod
Number of LISA cameras.
Definition ngcdcsCTRL.hpp:134
void UpdateLogging()
Update verbose level of all modules.
Definition ngcdcsCTRL.cpp:2562
int numScaMod
Number of ASIC moduled.
Definition ngcdcsCTRL.hpp:158
int numPreampMod
Number of preamplifier modules.
Definition ngcdcsCTRL.hpp:122
ngcbNET * Network(int idx)
Return pointer to network structure.
Definition ngcdcsCTRL.cpp:2075
int Standby()
Disable all control moduels and put interface devices to standby state.
Definition ngcdcsCTRL.cpp:1328
int PCR(int idx, int addr, int *value)
Read from PCI configuration space address.
Definition ngcdcsCTRL.cpp:2519
void Shutdown()
Shutdown all controller modules.
Definition ngcdcsCTRL.cpp:359
ngcdcsAO * ao[ngcdcsCTRL_MAX_AO]
AO cameras.
Definition ngcdcsCTRL.hpp:125
int adcMap[ngcdcsCTRL_MAX_ADCMOD]
ADC module mapping.
Definition ngcdcsCTRL.hpp:104
int numNgc2Mod
Number of NGC2 basic modules.
Definition ngcdcsCTRL.hpp:110
virtual ~ngcdcsCTRL()
Destructor.
Definition ngcdcsCTRL.cpp:347
ngcdcsSHUTTER * shutter[ngcdcsCTRL_MAX_SHUTTER]
Shutter modules.
Definition ngcdcsCTRL.hpp:113
int Sim(int level)
Set simulation level.
Definition ngcdcsCTRL.cpp:966
int Abort()
Stop/disable all modules.
Definition ngcdcsCTRL.cpp:988
int Off()
Switch off.
Definition ngcdcsCTRL.cpp:1277
ngcdcsTEC * tec[ngcdcsCTRL_MAX_TEC]
TEC modules.
Definition ngcdcsCTRL.hpp:143
int numSeqMod
Number of sequencer modules.
Definition ngcdcsCTRL.hpp:95
int ResetDev()
Reset interface devices.
Definition ngcdcsCTRL.cpp:1817
ngcdcsNGC2 * ngc2[ngcdcsCTRL_MAX_NGC2]
NGC2 basic modules.
Definition ngcdcsCTRL.hpp:107
int RPC(ngcbIFC *dv, int module, int target, int req, void *payload, unsigned int size, unsigned int *status=NULL)
Execute RPC.
Definition ngcdcsCTRL.cpp:2178
int ioError
I/O-error flag.
Definition ngcdcsCTRL.hpp:83
int WriteBuffer(int idx, const char *s)
Write buffer (string input)
Definition ngcdcsCTRL.cpp:2288
int ReadBuffer(int idx, const char *s, int *buffer, int *size)
Read buffer (string input, output to 128 word buffer)
Definition ngcdcsCTRL.cpp:2201
ngcdcsADC * adc[ngcdcsCTRL_MAX_ADCMOD]
ADC modules.
Definition ngcdcsCTRL.hpp:98
ngcdcsSCA * sca[ngcdcsCTRL_MAX_SCA]
Sidecar ASIC modules.
Definition ngcdcsCTRL.hpp:155
int numNgsdMod
Number of NGSD cameras.
Definition ngcdcsCTRL.hpp:140
int numShutterMod
Number of shutter modules.
Definition ngcdcsCTRL.hpp:116
int Enable1()
Switch to operational state (step 1, device network)
Definition ngcdcsCTRL.cpp:1398
int PCW(int idx, int addr, int value)
Write to PCI configuration space address.
Definition ngcdcsCTRL.cpp:2540
int Reset()
Overall reset.
Definition ngcdcsCTRL.cpp:1856
int numGeosnapMod
Number of GEOSNAP modules.
Definition ngcdcsCTRL.hpp:152
int AttachMod(ngcbMOD *mod)
Attach add-on module to global handling.
Definition ngcdcsCTRL.cpp:546
int numTecMod
Number of TEC modules.
Definition ngcdcsCTRL.hpp:146
ngcdcsSEQ * seq[ngcdcsCTRL_MAX_SEQ]
Sequencer modules.
Definition ngcdcsCTRL.hpp:92
int Initialize()
Internal intialization after configuring.
Definition ngcdcsCTRL.cpp:598
int Enable2(int check=1)
Switch to operational state (step 2, control modules)
Definition ngcdcsCTRL.cpp:1542
ngcdcsGEOSNAP * geosnap[ngcdcsCTRL_MAX_GEOSNAP]
GEOSNAP modules.
Definition ngcdcsCTRL.hpp:149
int numAoMod
Number of AO cameras.
Definition ngcdcsCTRL.hpp:128
int numDev
Number of interface devices.
Definition ngcdcsCTRL.hpp:80
Definition ngcdcsGEOSNAP.hpp:29
Definition ngcdcsLISA.hpp:35
Definition ngcdcsNGC2.hpp:40
Definition ngcdcsNGSD.hpp:37
Definition ngcdcsPREAMP.hpp:63
Definition ngcdcsSCA.hpp:183
Definition ngcdcsSEQ.hpp:582
Definition ngcdcsSHUTTER.hpp:36
Definition ngcdcsTEC.hpp:137
#define ngcdcsCTRL_MAX_PREAMP
Definition ngcdcsCTRL.hpp:47
#define ngcdcsCTRL_MAX_CLDC
Definition ngcdcsCTRL.hpp:43
#define ngcdcsCTRL_MAX_SEQ
Definition ngcdcsCTRL.hpp:44
#define ngcdcsCTRL_MAX_GEOSNAP
Definition ngcdcsCTRL.hpp:53
#define ngcdcsCTRL_MAX_MOD
Definition ngcdcsCTRL.hpp:55
#define ngcdcsCTRL_MAX_SCA
Definition ngcdcsCTRL.hpp:54
#define ngcdcsCTRL_MAX_ADCMOD
Definition ngcdcsCTRL.hpp:45
#define ngcdcsCTRL_MAX_TEC
Definition ngcdcsCTRL.hpp:52
#define ngcdcsCTRL_MAX_NGSD
Definition ngcdcsCTRL.hpp:51
#define ngcdcsCTRL_MAX_DEV
Definition ngcdcsCTRL.hpp:56
#define ngcdcsCTRL_MAX_NGC2
Definition ngcdcsCTRL.hpp:48
#define ngcdcsCTRL_MAX_SHUTTER
Definition ngcdcsCTRL.hpp:46
#define ngcdcsCTRL_MAX_AO
Definition ngcdcsCTRL.hpp:49
#define ngcdcsCTRL_MAX_LISA
Definition ngcdcsCTRL.hpp:50
Definition ngcbIFC.hpp:78