ngc 1.4.0
 
Loading...
Searching...
No Matches
ngcbSIM.hpp
Go to the documentation of this file.
1
7#ifndef ngcbSIM_H
8#define ngcbSIM_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/ngcb.h>
16#include <ngc/core/ngcbAddr.h>
18
22#define ngcbSIM_UPDATE_STATUS 0x80000000
23
27#define ngcbSIM_LOCAL_SPACE (16 * 1024)
28
32#define ngcbSIM_CFG_SPACE 2048
33
38public:
40 ngcbSVSSIM();
41
43 virtual ~ngcbSVSSIM();
44
46 int Read(int addr, int *buffer, int size, int flags);
47
49 int Write(int addr, const int *buffer, int size, int flags);
50
51protected:
52
53private:
55 int page_;
56
58 int cmd_;
59
61 int supply_[12];
62
64 double rhum_;
65
67 double temp_;
68
70 double pressure_;
71
73 double ptemp_;
74
76 int sens2Active_;
77
79 int sens2Data_[3];
80
82 int sens2Reg_;
83
85 int ReadSens1_(int *r, int size, int flags);
86
88 int ReadSens2_(int *r, int size, int flags);
89
91 int ReadSVS_(int *r, int size, int flags);
92
94 int WriteSens1_(const int *r, int size, int flags);
95
97 int WriteSens2_(const int *r, int size, int flags);
98
100 int WriteSVS_(const int *r, int size, int flags);
101
103 int CRC_(const int *data, size_t size);
104
106 double Rand_(double min, double max);
107};
108
113public:
115 explicit ngcbSCASIM(int id);
116
118 virtual ~ngcbSCASIM();
119
121 void Reset();
122
124 int Read(const int *bufIn, int *bufOut);
125
127 int Write(const int *bufIn, int *bufOut);
128
129protected:
130
131private:
133 void Init_();
134
136 void Set_(int addr, int value);
137
139 char *mem_;
140
142 int memSize_;
143
145 int id_;
146};
147
151class ngcbSIM {
152public:
154 ngcbSIM();
155
157 explicit ngcbSIM(int master);
158
160 virtual ~ngcbSIM();
161
164
167
170
173
175 int Initialized() {return (initialized_);}
176
178 int Status();
179
181 void Timeout(int sconds);
182
184 void Reset();
185
187 void Read(int *buffer, int size);
188
190 int Write(const int *buffer, int size);
191
193 int Execute(int *fifoBuf, const int *buffer, int size, int length = 1);
194
196 void SyncStart(ngcbSIM *orig);
197
199 void SyncTrigger(ngcbSIM *orig);
200
202 void Pause();
203
205 int *Fifo();
206
209
212
215
217 void Verbose(const char *format, ...)
218 __attribute__ ((format(printf, 2, 3)));
219
221 void Log(const char *format, ...)
222 __attribute__ ((format(printf, 2, 3)));
223
224protected:
225
226private:
228 int initialized_;
229
231 int master_;
232
234 void Init_();
235
237 void Reset_();
238
240 int DownLink_(int hdr);
241
243 void Timeout_();
244
246 int WriteAddr_(int addr, const int *buffer, int size);
247
249 int ReadAddr_(int addr, int size);
250
252 int SeqInfinite_();
253
255 void SeqStart_();
256
258 void SeqTrigger_();
259
261 int productCode_;
262
264 int revision_;
265
267 int firmware_;
268
270 int btype_;
271
273 int tmo_;
274
276 int endian_;
277
279 int nUpStream_;
280
282 int *fifoInt_;
283
285 int *fifo_;
286
288 int regIfcStatus_;
289
291 int regStatus_;
292
294 int regId_;
295
297 int regCfg_;
298
300 int serNoSelect_;
301
303 int seqRegCtrl_;
304
306 int seqRegMode_;
307
309 int seqRegStatus_;
310
312 int seqRegMon_;
313
315 int break_;
316
318 int runCtrl_;
319
321 int paused_;
322
324 struct timeval startTime_;
325
327 struct timeval breakTime_;
328
330 double seqRunTime_;
331
333 double seqBreakTime_;
334
336 double seqWaitTime_;
337
339 int numWait_;
340
342 int waitCnt_;
343
345 double seqRunTimeExt_;
346
348 double seqBreakTimeExt_;
349
351 int *shiftRam_;
352
354 int *seqRam_;
355
357 int *patRamLow_;
358
360 int *patRamHigh_;
361
363 int patInitLow_;
364
366 int patInitHigh_;
367
369 int cldcRegBias_;
370
372 int cldcRegCtrl_;
373
375 int cldcRegTelChan_;
376
378 int cldcRegTelData_;
379
381 int cldcRegStatus_;
382
384 int cldcRegMon1_;
385
387 int cldcRegMon2_;
388
390 int cldcOffset1_;
391
393 int cldcOffset2_;
394
396 int cldcBias_[64];
397
399 int adcRegCtrl_;
400
402 int adcRegStatus_;
403
405 int adcRegDelay_;
406
408 int adcRegMon_;
409
411 int adcRegFowlerSize_;
412
414 int adcRegFowlerCnt_;
415
417 int adcRegFowlerMode_;
418
420 int adcRegSubSamp_;
421
423 int *lisaGain_;
424
426 void ShutterUpdate_();
427
429 int shutterRegCtrl_;
430
432 int shutterRegStatus_;
433
435 unsigned int shutterRegExp_;
436
438 int shutterRegEvt1_;
439
441 int shutterRegEvt2_;
442
444 int shutterRegEvt3_;
445
447 int shutterRegEvt4_;
448
450 struct timeval shutterStart_;
451
453 int shutterStatus_;
454
456 int shutterPaused_;
457
459 int rtms_[32];
460
462 int tsu_[16];
463
465 int pa_[32];
466
468 int temperature_;
469
471 int i2cPort_;
472
474 int preampRegCtrl_;
475
477 int aoRegCtrl_;
478
480 int aoRegDelay1_;
481
483 int aoRegDelay2_;
484
486 int aoRegDelay3_;
487
489 int aoRegDelay4_;
490
492 int aoRegDelay5_;
493
495 int aoRegSens3_;
496
498 int aoRegSens4_;
499
501 int aoRegSens5_;
502
504 int aoRegLevelIPhase_;
505
507 int aoRegLevelSPhase_;
508
510 int aoRegPhCtrl_;
511
513 int aoRegDim_;
514
516 int slxRegCmd_;
517
519 int slxRegStatus_;
520
522 int scaRegCmd_;
523
525 int scaRegStatus_;
526
528 int scaRegDelay_;
529
531 int scaRegDataCtrl_;
532
534 int scaRegCfgFifo_[ngcbSCAIO_FIFO_SIZE];
535
537 int scaRegRespFifo_[ngcbSCAIO_FIFO_SIZE];
538
540 int scaCfgFifoPtr_;
541
543 int scaRespFifoPtr_;
544
546 ngcbSCASIM *scasim_;
547
549 ngcbSVSSIM *svssim_;
550};
551
552#endif
Definition ngcbSIM.hpp:112
int Write(const int *bufIn, int *bufOut)
Write to memory.
Definition ngcbSCASIM.cpp:155
void Reset()
Reset.
Definition ngcbSCASIM.cpp:62
int Read(const int *bufIn, int *bufOut)
Read from memory.
Definition ngcbSCASIM.cpp:67
ngcbSCASIM(int id)
Constructor with ASIC-ID.
Definition ngcbSCASIM.cpp:34
virtual ~ngcbSCASIM()
Destructor.
Definition ngcbSCASIM.cpp:43
Definition ngcbSERVICE.hpp:35
Definition ngcbSIM.hpp:151
ngcbSIM * mod0
Pointer to first module.
Definition ngcbSIM.hpp:172
int * Fifo()
Pointer to result storage space (= RX-FIFO)
Definition ngcbSIM.cpp:2518
ngcbSIM()
Constructor for master.
Definition ngcbSIM.cpp:32
int Initialized()
Return initialization flag.
Definition ngcbSIM.hpp:175
void Reset()
Reset front-end.
Definition ngcbSIM.cpp:2288
int Execute(int *fifoBuf, const int *buffer, int size, int length=1)
Execute target operation or cut header and pass through.
Definition ngcbSIM.cpp:2366
void SyncStart(ngcbSIM *orig)
Synchronized start.
Definition ngcbSIM.cpp:2523
void Pause()
Pause sequencers.
Definition ngcbSIM.cpp:2583
ngcbSIM * mod[ngcbNUM_LINK]
Next modules on down-links.
Definition ngcbSIM.hpp:169
int verboseLevel
Verbose level.
Definition ngcbSIM.hpp:211
void Timeout(int sconds)
Set timeout.
Definition ngcbSIM.cpp:2293
int * localSpace
Local space.
Definition ngcbSIM.hpp:166
virtual ~ngcbSIM()
Destructor.
Definition ngcbSIM.cpp:47
int * cfgSpace
Configuration space.
Definition ngcbSIM.hpp:163
int Status()
Communication status.
Definition ngcbSIM.cpp:2283
void Verbose(const char *format,...) __attribute__((format(printf
Verbose output.
Definition ngcbSIM.cpp:2616
void SyncTrigger(ngcbSIM *orig)
Synchronized trigger.
Definition ngcbSIM.cpp:2553
void void Log(const char *format,...) __attribute__((format(printf
Log file output.
Definition ngcbSIM.cpp:2652
int logLevel
Log level.
Definition ngcbSIM.hpp:214
ngcbSERVICE * services
System services.
Definition ngcbSIM.hpp:208
void Read(int *buffer, int size)
Read buffer.
Definition ngcbSIM.cpp:2298
int Write(const int *buffer, int size)
Write buffer.
Definition ngcbSIM.cpp:2307
Definition ngcbSIM.hpp:37
ngcbSVSSIM()
Constructor.
Definition ngcbSVSSIM.cpp:33
int Read(int addr, int *buffer, int size, int flags)
Read.
Definition ngcbSVSSIM.cpp:63
int Write(int addr, const int *buffer, int size, int flags)
Write.
Definition ngcbSVSSIM.cpp:83
virtual ~ngcbSVSSIM()
Destructor.
Definition ngcbSVSSIM.cpp:55
#define ngcbSCAIO_FIFO_SIZE
Definition ngcbAddr.h:581
#define ngcbNUM_LINK
Definition ngcbAddr.h:21