ngc 1.6.0
 
Loading...
Searching...
No Matches
ngcdcsSRV.hpp
Go to the documentation of this file.
1
8#ifndef ngcdcsSRV_H
9#define ngcdcsSRV_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 <string>
17#include <ngc/core/ngcb.h>
18#include <ngc/core/ngcbShell.h>
19#include <ngc/core/ngcbSIO.hpp>
20#include <ngc/core/ngcbIFC.hpp>
22#include <ngc/core/ngcbCMD.hpp>
23#include <ngc/core/ngcbATTR.hpp>
24#include <ngc/core/ngcbDIC.hpp>
33
34#ifdef VLT_CCS
35
36/*
37 * Server states
38 */
39#include "evhStates.h"
40#define ngcdcsSTATE_OFF evhSTATE_OFF //< OFF-state
41#define ngcdcsSTATE_LOADED evhSTATE_LOADED //< LOADED-state
42#define ngcdcsSTATE_STANDBY evhSTATE_STANDBY //< STANDBY-state
43#define ngcdcsSTATE_ONLINE evhSTATE_ONLINE //< ONLINE-state
44
45/*
46 * Error definitions
47 */
48#include "ngcdcsErrors.h"
49
50#else
51
52/*
53 * Server states
54 */
55#define ngcdcsSTATE_OFF 1 //< OFF-state
56#define ngcdcsSTATE_LOADED 2 //< LOADED-state
57#define ngcdcsSTATE_STANDBY 3 //< STANDBY-state
58#define ngcdcsSTATE_ONLINE 4 //< ONLINE-state
59
60/*
61 * Error definitions
62 */
63#define ngcdcsERR_SYSTEM 1 //< general system error
64#define ngcdcsERR_IO 2 //< i/o-error
65#define ngcdcsERR_INIT 3 //< initialization error
66#define ngcdcsERR_WARNING 4 //< just a warning
67#define ngcdcsERR_FATAL 5 //< fatal error forcing exit
68#define ngcdcsERR_DB_READ 6 //< database read failed
69#define ngcdcsERR_DB_WRITE 7 //< database write failed
70#define ngcdcsERR_DB_INIT 8 //< database initialization failed
71#define ngcdcsERR_ACQ_IO 9 //< acquisition process i/o-error
72#define ngcdcsERR_ACQ_OVERRUN 10 //< run-time error: buffer overrun
73#define ngcdcsERR_ACQ_OVERFLOW 11 //< run-time error: FIFO overflow
74#define ngcdcsERR_ACQ_EXEC 12 //< acquisition process exec failed
75#define ngcdcsERR_EXP_IO 13 //< exposure data chain i/o-error
76#define ngcdcsERR_EXP_FILE 14 //< exposure file i/o-error
77#define ngcdcsERR_EXP_PROC 15 //< exposure post-processing error
78#define ngcdcsERR_ACCESS 16 //< missing access rights
79#define ngcdcsERR_MERGE 17 //< data merging failed
80#define ngcdcsERR_CLDC 18 //< CLDC protection error
81#define ngcdcsERR_AOBIAS 19 //< AOBIAS protection error
82#define ngcdcsERR_NGSDBIAS 20 //< NGSDBIAS protection error
83
84#endif
85
89#define ngcdcsGUI_DEFAULT "ngcgui"
90
91/*
92 * Server sub-states
93 */
94#define ngcdcsSUBSTATE_NONE 0 //< not yet set (unknown)
95#define ngcdcsSUBSTATE_IDLE 1 //< idle
96#define ngcdcsSUBSTATE_BUSY 2 //< busy
97#define ngcdcsSUBSTATE_ACTIVE 6 //< exposure active
98#define ngcdcsSUBSTATE_ERROR 8 //< error
99
100#define ngcdcsSUBSTATE_READY 3 //< ready
101#define ngcdcsSUBSTATE_NOT_READY 4 //< not ready
102#define ngcdcsSUBSTATE_INIT 5 //< initializing
103#define ngcdcsSUBSTATE_RECOVER 7 //< recovering
104#define ngcdcsSUBSTATE_RUNNING 9 //< acquisition running
105
106/*
107 * Server operational modes
108 */
109#define ngcdcsOPMODE_NORMAL 0 //< normal mode (accessing DFE)
110#define ngcdcsOPMODE_HWSIM 1 //< simulation mode (accessing DWS, no DFE)
111#define ngcdcsOPMODE_LCUSIM 2 //< simulation mode (local simulation, no DWS)
112
116#define ngcdcsMERGE_MAX_PROC 4
117
121#define ngcdcsMAX_LOG 50
122
123/*
124 * Log levels
125 */
126#define ngcdcsLOG_INFO 0 //< informal log
127
128/*
129 * Error test cases
130 */
131#define ngcdcsTESTERR_BLOCK 0x800 //< service blocks forever
132
137 int fd; //< File descriptor for reply
138 int id; //< Waiter id
139
141 ngcdcs_wait_t() {fd = -1; id = 0;}
142
144 virtual ~ngcdcs_wait_t() {}
145};
146
151 struct timeval startTime; //< Server start time
152 unsigned int nExpStart; //< Number of exposures started
153 unsigned int nExpCompl; //< Number of exposures completed
154 unsigned int nExpAbort; //< Number of exposures aborted
155 unsigned int nExpFail; //< Number of exposures failed
156 unsigned int nFram; //< Number of processed data frames
157 unsigned int nFile; //< Number of files stored
158
162 nExpStart = 0; nExpCompl = 0; nExpAbort = 0; nExpFail = 0;
163 nFram = 0; nFile = 0;
164 }
165};
166
171{
172public:
173 int id; //< Event id
174 int devices; //< Device list (32-bit list)
175 int status; //< Event status
176
179
181 explicit ngcdcsEVT(int i) {id = i; devices = 0x0; status = ngcbEVT_PENDING;}
182
184 ngcdcsEVT(int i, int d) {id = i; devices = d; status = ngcbEVT_PENDING;}
185
187 virtual ~ngcdcsEVT() {}
188
189protected:
190private:
191};
192
197{
198public:
199 ngcbSERVICE *services; //< System services
200 int verboseLevel; //< Verbose level
201 int logLevel; //< Logging level
202
205 verboseLevel(0),
206 logLevel(0),
207 id_((ngcb_alarm_id)0L) {}
208
210 virtual ~ngcdcsALARM_SYS() {}
211
214 Store(a, ++id_);
215 if (services != NULL)
216 {
217 char logMsg[512];
218 sprintf(logMsg, "ALARM(%s)-%lu: %s (%s)\n", a->Name(), id_,
219 a->Msg(), a->Value(1));
220 if (verboseLevel > 0) services->Logger(ngcbVB_PRINT, logMsg);
221 services->Logger(ngcbVB_LOG, logMsg); // we always log the alarm
222 }
223 return (id_);
224 }
225
228 ngcbALARM *a = Get(id);
229 if (a != NULL)
230 {
231 if ((services != NULL) && ((verboseLevel > 0) || (logLevel > 0)))
232 {
233 char logMsg[64];
234 sprintf(logMsg, "ALARM(%s)-%lu: cancelled\n", a->Name(), id);
235 if (verboseLevel > 0) services->Logger(ngcbVB_PRINT, logMsg);
236 if (logLevel > 0) services->Logger(ngcbVB_LOG, logMsg);
237 }
238 }
239 Remove(id);
240 }
241
244 ngcbALARM *a = Get(id);
245 if (a != NULL)
246 {
247 a->Ack();
248
249 if ((services != NULL) && ((verboseLevel > 0) || (logLevel > 0)))
250 {
251 char logMsg[64];
252 sprintf(logMsg, "ALARM(%s)-%lu: acknowledged\n", a->Name(), id);
253 if (verboseLevel > 0) services->Logger(ngcbVB_PRINT, logMsg);
254 if (logLevel > 0) services->Logger(ngcbVB_LOG, logMsg);
255 }
256 }
257 Remove(id);
258 }
259
260protected:
261private:
263 ngcb_alarm_id id_;
264};
265
269class ngcdcsSRV: public ngcbSIO, public ngcbCMD_SRV, private ngcdcsACQ_SERVICE
270{
271public:
273 ngcdcsSRV();
274
276 explicit ngcdcsSRV(ngcdcsCTRL *controller);
277
279 virtual ~ngcdcsSRV();
280
281
282 /*
283 * System configuration
284 */
285
288
291
293 char thisHost[64];
294
297
300
303
305 int EvtAddWait(int fd, int id);
306
309
311 char configDir[256];
312
314 int CfgPath(char *path, const char *cfgFile);
315
317 int ConfigureSystem(ngcdcs_syscfg_t newCfg, int copy = 1);
318
320 int Check(const ngcdcs_syscfg_t &cfg);
321
323 int SysCfg(const char *cfgFile);
324
326 void SysCfgDefault(const char *cfg);
327
329 int InitSysCfg(const char *cfgFile);
330
332 int StoreCfg(const char *fileName);
333
334
335 /*
336 * System shutdown
337 */
338
340 void Release();
341
343 void Shutdown();
344
346 FILE *watchdog;
347
348
349 /*
350 * System info
351 */
352
354 void Info(char *s);
355
357 void SysInfo(char *s);
358
360 void ModInfo(char *s);
361
363 void BoardInfo(char *s);
364
366 int AdcInfo(int id, char *s);
367
369 int AcqInfo(int id, char *s);
370
372 void RpcTranslate(void *payload, size_t size, int request, int how, char *s);
373
375 void CheckDev(int idx, char *s);
376
378 int GetPat(int id, int num, char *s);
379
381 int GetPrg(int id, int num, char *s);
382
384 int CheckTriggerPeriod(int id, double period);
385
386
387 /*
388 * Detector configuration
389 */
390
393
395 int Check(const ngcdcs_detcfg_t &cfg);
396
398 int DetCfg(const char *cfgFile);
399
400
401 /*
402 * Controller Interface
403 */
404
407
410
412 int RouteComp(ngcbMOD *, ngcbMOD *);
413
416
419
420
421 /*
422 * Acquisition module
423 */
424
427
430
432 int FrameHandler(void *buffer, ngcdcs_finfo_t *finfo, char *erms);
433
435 int FitsMerger(ngcbFITS *hdr, char *erms);
436
438 int Statistics(int id, char *s);
439
441 int AcqProc(int id, const char *procName);
442
444 int Rtd(int idx);
445
447 int FrameGen(int id, const char *name, int flag);
448
450 int FrameStore(int id, const char *name, int flag);
451
453 int FrameLocal(int id, const char *name, int flag);
454
456 int FrameExport(int id, const char *name, int flag);
457
459 int FrameBreak(int id, const char *name, int n);
460
462 int FrameWin(int id, const char *name, int sx, int sy, int nx, int ny);
463
465 void GetFrames(int id, char *s);
466
467
468 /*
469 * Read-out modes
470 */
471
474
476 char readModeName[64];
477
480
482 int ReadModeIdx(int id);
483
485 int ReadModeIdx(const char *name);
486
488 int ReadMode(int idx);
489
490
491 /*
492 * Exposure handling
493 */
494
497
499 int FitsBlock();
500
502 int PrepareFits(int refresh = 1);
503
505 int DumpFits(const char *fileName = NULL);
506
508 int CheckExp();
509
511 void ExpStatus(unsigned int newStat, const char *erms = NULL);
512
514 void ExpStatus2String(char *s, int stat);
515
517 void ExpStatus2String(char *s);
518
520 char *ExpStatusString();
521
523 int RecStart(const char *id, double absTime = 0.0);
524
526 int ExpStart(int acqId = 0, double absTime = 0.0);
527
529 int ExpAbort(int acqId = 0);
530
532 int ExpEnd(int acqId = 0);
533
535 int ExpPause(int id = 0);
536
538 int ExpCont(int id = 0);
539
541 int ExpAddWait(int fd, int id);
542
544 void ExpPoll();
545
547 int PostProcEnabled();
548
550 void Publish(const ngcdcs_exp_topic &topic);
551
553 uint64_t FramesProcessed();
554
556 uint64_t SizeRecorded();
557
559 double TimeElapsed();
560
562 double RemainingTime();
563
564
565 /*
566 * Exposure driver
567 */
568
571
573 void ExpDrvStatus(unsigned int newStat);
574
576 int ExpDrvLoad(const char *module, const char *name = NULL);
577
579 int ExpDrvUnload(const char *name, const char *symbol = NULL);
580
582 int ExpDrvUnload();
583
585 int ExpDrvLoaded(const char *module);
586
588 int ExpDrvCfg(const char *s);
589
591 void ExpDrvList(char *s);
592
594 void ExpDrvModList(char *s);
595
597 char expDrvFeedBack[128];
598
600 int ExpDrvSelect(const char *name);
601
603 int ExpDrvClose();
604
606 int ExpDrvStart();
607
609 int ExpDrvAbort();
610
612 int ExpDrvAddWait(int fd);
613
614
615 /*
616 * Data merger
617 */
618
621
624
627
630
633
636
639
641 char mergeArg[128];
642
644 virtual void MergeReset(int relaunch = 0);
645
647 virtual int MergeStart(const char *name, int display, int id, int cleanup=0);
648
650 virtual int MergeStop(int id);
651
653 virtual int MergeStatus(int id, char *stat = NULL);
654
656 virtual int MergeMsg(int id, char *msg);
657
659 virtual void MergeNext();
660
662 int MergeAlign();
663
664
665 /*
666 * Server state
667 */
668
670 char opMode[32];
671
674
676 int state;
677
679 char stateString[32];
680
682 void State(int newState, int update = 1);
683
686
688 char subStateString[32];
689
691 void SubState(int newState);
692
694 void ClearSubState();
695
697 int ErrState();
698
700 int OpMode(int level);
701
703 int OpMode(const char *mode);
704
707
710
713
716
719
721 void DevPoll();
722
724 int HaveLocalEvents();
725
727 virtual void Query();
728
730 virtual void PollStatConfigure(int enable, int interval);
731
733 virtual void HiResTimer(int enable);
734
736 void FatalError(const char *erms);
737
739 int FatalError();
740
742 double LifeTime();
743
745 int Disable();
746
748 int NeedEnableCycle();
749
751 int Enable(int check);
752
754 int Off();
755
757 int Recover();
758
760 int ResetDfe();
761
763 int ResetSensors();
764
765
766 /*
767 * Server setup
768 */
769
771 void Profile(const char *name = NULL);
772
774 void ProcName(const char *name);
775
777 const char *ProcName();
778
780 void PrintUsage();
781
783 int ParseArguments(int argc, char **argv);
784
786 const char *Version();
787
789 void ExportVersion(const char *newVersion);
790
792 void Port(int port);
793
795 void Instance(const char *name);
796
798 char *Instance();
799
801 void ExecShell(const char *name);
802
804 const char *DicList();
805
807 char *ErrMsg();
808
810 void SaveErr(const char *erms);
811
813 const char *LastErr();
814
816 int ShutdownService(int port);
817
819 char gui[256];
820
821
822 /*
823 * Verbose output and logging
824 */
825
828
831
834
837
839 void Logger(int flag, const char *msg);
840
842 int Xterm();
843
845 int VerboseLevel();
846
848 void VerboseLevel(int level);
849
851 int LogLevel();
852
854 void LogLevel(int level);
855
857 void Verbose(int level, const char *format, ...)
858 __attribute__ ((format(printf, 3, 4)));
859
861 void Verbose(const char *fromat, ...)
862 __attribute__ ((format(printf, 2, 3)));
863
865 void Log(int level, const char *format, ...)
866 __attribute__ ((format(printf, 3, 4)));
867
869 void Log(const char *format, ...)
870 __attribute__ ((format(printf, 2, 3)));
871
873 void ErrLog(int severity, const char *format, ...)
874 __attribute__ ((format(printf, 3, 4)));
875
877 void Print(const char *format, ...)
878 __attribute__ ((format(printf, 2, 3)));
879
881 void AddLog(const char *format, ...)
882 __attribute__ ((format(printf, 2, 3)));
883
885 int ConfigureLogging(int vb, int log, int xt);
886
888 int DebugStream(int flag);
889
891 void BroadcastAlarm(const char *msg);
892
894 void ClrLog();
895
897 void CatLog(char *s);
898
899
900 /*
901 * Module event handlers
902 */
903
905 void DeviceEvent(void *origin, void *event);
906
908 void DevError(const char *erms, int id, void *descriptor);
909
911 void AcqError(const char *erms, int id, void *descriptor);
912
913
914 /*
915 * Database
916 */
917
919 char dbPoint[256];
920
922 void DisableDbMirror();
923
925 int DbAdd(ngcbATTR *attr);
926
928 void DbExport();
929
931 int DbConfigure();
932
934 int Update();
935
937 virtual void DbLock();
938
940 virtual void DbUnlock();
941
942
943 /*
944 * Command services
945 */
946
948 int AddCmd(const char *cmd, ngcb_function_t function, int flags,
949 const char *syntax, const char *help);
950
952 void DelCmd(const char *cmd);
953
955 int Execute(const char *cmd, char *reply, int protect = 0, int fd = -1);
956
958 int Execute(const char *cmd, int protect = 0, int fd = -1);
959
961 int Macro(const char *fileName, char *reply, int protection = 0);
962
964 int SimError(int error, int idx = 0);
965
966
967 /*
968 * Server main-loop
969 */
970
972 virtual void ExitSignal(int sig);
973
975 int Initialize();
976
978 int Reset();
979
981 void Abort();
982
984 int InMainLoop();
985
987 int SrvPortOrig();
988
990 int CoreShell();
991
993 int MainLoop();
994
996 void LockService();
997
999 void UnlockService();
1000
1001
1002 /*
1003 * Run-Control
1004 */
1005
1008
1010 int AcqStop(int id = 0);
1011
1013 int AcqStart(int id = 0);
1014
1016 int SeqIdle(int id = 0);
1017
1019 int SeqWaiting();
1020
1022 int SeqStop(int id = 0);
1023
1025 int SeqStart(int id = 0, struct timeval *ts = NULL, double absTime = 0.0);
1026
1028 int SeqTrigger(int id);
1029
1031 int SeqPause(int id = 0);
1032
1034 int SeqContinue(int id = 0);
1035
1037 int SeqBreak(int id = 0);
1038
1040 int SeqWait(int id, int event, int timeout, int interval);
1041
1043 void ClearState(int id = 0);
1044
1046 void StoreState();
1047
1049 int RestoreState();
1050
1052 int ShutterAction(int id, const char *action, char *reply);
1053
1055 int TecAction(int id, const char *action, char *reply);
1056
1058 int GeosnapAction(int id, const char *action, char *reply);
1059
1060
1061 /*
1062 * Parameter handling
1063 */
1064
1067
1070
1072 int ParamDefault();
1073
1075 int LoadSetup(const char *fileName, char **list, int *listLength,
1076 int max = -1);
1077
1079 int LoadSetup(const char *fileName);
1080
1082 ngcbPARAM *ParamDefine(const char *name, const char *value, int id,
1083 int *status = NULL);
1084
1086 int ParamDefine(const char *name, const char *value, const char *unit);
1087
1089 void ParamUndefine(const char *name, int id);
1090
1092 int SetupList(const char *paramBuf);
1093
1095 int SetupList(char **paramBuf, int size);
1096
1098 int SetupList(ngcbPARAM_LIST *list);
1099
1101 int SetupParam(const char *name, const char *value);
1102
1104 int StatusList(const char *list, char *reply);
1105
1107 int StatusList(char **list, int size, char *reply);
1108
1110 int StatusParam(const char *name, char *value);
1111
1113 int ParamLookup(const char *name, char *value, int flag = 0);
1114
1117
1118
1119 /*
1120 * Module factories
1121 */
1122
1124 ngcdcsCLDC *CldcMod(const char *spec, ngcbIFC *dev,
1125 const ngcb_route_t &route,
1126 int nc, int nb, double extRef);
1127
1129 ngcdcsSEQ *SeqMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route,
1130 ngcbPARAM_LIST *p);
1131
1133 ngcdcsADC *AdcMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route,
1134 int num, int bitPix);
1135
1137 virtual ngcdcsSHUTTER *ShutterMod(const char *spec, ngcbIFC *dev,
1138 const ngcb_route_t &route);
1139
1141 virtual ngcdcsPREAMP *PreampMod(const char *spec, ngcbIFC *dev,
1142 const ngcb_route_t &route);
1143
1145 ngcdcsNGC2 *NGC2Mod(const char *spec, ngcbIFC *dev,
1146 const ngcb_route_t &route);
1147
1149 ngcdcsAO *AOMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route);
1150
1152 ngcdcsLISA *LISAMod(const char *spec, ngcbIFC *dev,
1153 const ngcb_route_t &route);
1154
1156 ngcdcsNGSD *NGSDMod(const char *spec, ngcbIFC *dev,
1157 const ngcb_route_t &route, double extRef);
1158
1160 ngcdcsTEC *TECMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route);
1161
1163 ngcdcsGEOSNAP *GeosnapMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route);
1164
1166 ngcdcsSCA *ScaMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route,
1167 ngcbPARAM_LIST *p);
1168
1170 ngcdcsACQ *AcqMod(const char *spec, const ngcdcs_acq_cfg_t &cfg,
1171 ngcbPARAM_LIST *p);
1172
1173
1174 /*
1175 * ASIC mapping
1176 */
1177
1180
1183
1185 ngcdcsSEQ0* SeqFn(int idx);
1186
1188 ngcdcsCLDC0* CldcFn(int idx);
1189
1190
1191 /*
1192 * CLDC functions
1193 */
1194
1196 int CldcEnable(int id);
1197
1199 int CldcDisable(int id);
1200
1202 int CldcDefault(int id);
1203
1205 int CldcCheck(int id);
1206
1208 int CldcCalibrate(int id);
1209
1211 int CldcClearCalibration(int id);
1212
1214 int CldcRestore(int id, const char *key = NULL);
1215
1217 int Snapshot(int id, char *s);
1218
1220 int Telemetry(int id, char *s);
1221
1223 void Voltages(ngcdcsCLDC0 *mod, char *s);
1224
1226 std::string GetCldcType(int idx);
1227
1228 /*
1229 * Selftests
1230 */
1231
1233 int SelftestCldc(int id);
1234
1236 int SelftestSeq(int id);
1237
1239 int SelftestAdc(int id);
1240
1242 int SelftestShutter(int id);
1243
1245 int SelftestPreamp(int id);
1246
1248 int SelftestSca(int id);
1249
1251 int SelftestAcq(int id);
1252
1253protected:
1255 virtual ngcbCMD_LIST *CreateCmdList();
1256
1258 virtual void InstallSignalHandlers();
1259
1261 virtual int ResolvePath(char *resolved, const char *fileName);
1262
1264 virtual void SysCfgOverride(ngcdcs_syscfg_t *newCfg);
1265
1267 virtual int ConfigureSystemCB1(ngcdcs_syscfg_t &newCfg);
1268
1270 virtual int ConfigureSystemCB2(ngcdcs_syscfg_t &newCfg);
1271
1273 virtual int LoadSysCfg(ngcdcs_syscfg_t *newCfg, const char *fileName);
1274
1276 virtual int LoadDetCfg(ngcdcs_detcfg_t *newCfg, const char *fileName);
1277
1279 virtual void ShutdownSystemCB1();
1280
1282 virtual void ShutdownSystemCB2();
1283
1285 virtual void MergeInit();
1286
1288 virtual int LookupCB(const char *paramName, char *value);
1289
1292
1294 virtual int FrameHandlerCB(void *buffer, ngcdcs_finfo_t *finfo, char *erms);
1295
1297 virtual int FitsMergerCB(ngcbFITS *hdr, char *erms);
1298
1300 int HandleExpEvt();
1301
1303 virtual int ExpStartCB();
1304
1306 virtual int ExpCountDownCB();
1307
1309 ngcdcsEXPDRV *ExpDrv(const char *name, const ngcb_fb_t &feedBackChannel);
1310
1312 virtual void AgEvent(int acqInst, ngcdcs_2ag_t ag, int errorId,
1313 const char *erms);
1314
1316 virtual void ErrorEvent(int id, const char *erms);
1317
1319 virtual void ErrLogEvent(int id, const char *erms);
1320
1322 virtual void VerboseCB(const char *msg, int level = ngcdcsLOG_INFO);
1323
1325 virtual void LogCB(const char *msg, int level = ngcdcsLOG_INFO);
1326
1328 virtual void DbLogCB(const char *msg);
1329
1331 void DbLog(const char *format, ...)
1332 __attribute__ ((format(printf, 2, 3)));
1333
1335 virtual int DbConfCB();
1336
1338 virtual int DbUpdateCB();
1339
1341 virtual void PublishExpEvent(int errorId, unsigned int newStat,
1342 const char *fileName, int merge,
1343 const char *erms);
1344
1346 virtual void PublishLogPars();
1347
1349 virtual void PublishState();
1350
1352 virtual void PublishSubState();
1353
1355 virtual void PublishExpDrvStatus();
1356
1357
1358 /*
1359 * TCP/IP services
1360 */
1361
1363 virtual int AddSockCB(int fd);
1364
1366 virtual int DelSockCB(int fd);
1367
1368
1369 /*
1370 * Module creation hooks
1371 */
1372
1374 virtual ngcdcsCLDC *MakeCLDC(ngcbIFC *dev, const ngcb_route_t &route,
1375 int nc, int nb);
1376
1378 virtual ngcdcsC20B20 *MakeC20B20(ngcbIFC *dev, const ngcb_route_t &route,
1379 int nc, int nb);
1380
1382 virtual ngcdcsB24 *MakeB24(ngcbIFC *dev, const ngcb_route_t &route, int nb);
1383
1385 virtual ngcdcsC24 *MakeC24(ngcbIFC *dev, const ngcb_route_t &route);
1386
1388 virtual ngcdcsAPD *MakeAPD(ngcbIFC *dev, const ngcb_route_t &route, int nb);
1389
1391 virtual ngcdcsAOBIAS *MakeAOBIAS(ngcbIFC *dev, const ngcb_route_t &route,
1392 int nb);
1393
1395 virtual ngcdcsALBIAS *MakeALBIAS(ngcbIFC *dev, const ngcb_route_t &route,
1396 int nb);
1397
1399 virtual ngcdcsLISABIAS *MakeLISABIAS(ngcbIFC *dev, const ngcb_route_t &route,
1400 int nb);
1401
1403 virtual ngcdcsNGSDBIAS *MakeNGSDBIAS(ngcbIFC *dev,
1404 const ngcb_route_t &route,
1405 int nb, double extRef);
1406
1408 virtual ngcdcsSEQ *MakeSEQ(ngcbIFC *dev, const ngcb_route_t &route,
1409 ngcbPARAM_LIST *p);
1410
1412 virtual ngcdcsADC *MakeADC(ngcbIFC *dev, const ngcb_route_t &route, int num,
1413 int bitPix);
1414
1416 virtual ngcdcsSHUTTER *MakeSHUTTER(ngcbIFC *dev, const ngcb_route_t &route);
1417
1419 virtual ngcdcsPREAMP *MakePREAMP(ngcbIFC *dev, const ngcb_route_t &route);
1420
1422 virtual ngcdcsNGC2 *MakeNGC2(ngcbIFC *dev, const ngcb_route_t &route);
1423
1425 virtual ngcdcsAO *MakeAO(ngcbIFC *dev, const ngcb_route_t &route);
1426
1428 virtual ngcdcsLISA *MakeLISA(ngcbIFC *dev, const ngcb_route_t &route);
1429
1431 virtual ngcdcsNGSD *MakeNGSD(ngcbIFC *dev, const ngcb_route_t &route,
1432 double extRef);
1433
1435 virtual ngcdcsTEC *MakeTEC(ngcbIFC *dev, const ngcb_route_t &route);
1436
1438 virtual ngcdcsGEOSNAP *MakeGeosnap(ngcbIFC *dev, const ngcb_route_t &route);
1439
1441 virtual ngcdcsSCA *MakeSCA(ngcbIFC *dev, const ngcb_route_t &route,
1442 ngcbPARAM_LIST *p);
1443
1445 virtual ngcdcsACQ *MakeACQ(const ngcdcs_acq_cfg_t &cfg, ngcbPARAM_LIST *p);
1446
1447
1448 /*
1449 * Call-backs from ngcbSIO
1450 */
1451
1453 int ProtocolAscii(int fd);
1454
1456 int ProtocolBin(int fd);
1457
1459 int FdCB(int fd);
1460
1462 int NewEventConnection(int fd);
1463
1465 int TimerCB();
1466
1467private:
1469 void Init_();
1470
1472 int initialized_;
1473
1475 char erms_[256];
1476
1478 char versionString_[256];
1479
1481 char thisVersion_[256];
1482
1484 struct timeval t0_;
1485
1487 char testParam_[256];
1488
1490 char procName_[128];
1491
1493 int srvCmdPort_;
1494
1496 int srvEvtPort_;
1497
1499 char profile_[32];
1500
1502 ngcb_port_t service_[8];
1503
1505 int services_;
1506
1508 ngcbSEM *semService_;
1509
1511 int endian_;
1512
1514 ngcbSHMDB *tcpdb_;
1515
1517 int executor_;
1518
1520 char instance_[64];
1521
1523 int nativeCtrl_;
1524
1526 int aborted_;
1527
1528 pthread_t serviceThread_;
1529
1530 /*
1531 * Debugging functions
1532 */
1533
1535 ngcbSEM *semVerbose_;
1536
1538 ngcbSEM *semFrame_;
1539
1541 void VbLock_();
1542
1544 void VbUnlock_();
1545
1547 int debugConnection_;
1548
1550 int OpenDebugStream_();
1551
1553 void CloseDebugStream_();
1554
1556 void AlignLogging_();
1557
1559 void InternalLog_(const char *msg);
1560
1562 char lastErrMsg_[512];
1563
1565 int verboseLevel_;
1566
1568 int logLevel_;
1569
1571 char *logMsg_[ngcdcsMAX_LOG];
1572
1574 int nlog_;
1575
1577 int plog_;
1578
1580 ngcdcsALARM_SYS alarmSystem_;
1581
1583 int localHost_;
1584
1586 int xterm_;
1587
1589 ngcdcs_srvinfo_t info_;
1590
1592 ngcbTMPFILE *sdebug_;
1593
1595 int debugPort_;
1596
1597
1598 /*
1599 * User Interfaces
1600 */
1601
1603 int shell_;
1604
1606 int coreShell_;
1607
1609 int shellPid_;
1610
1612 void ExternalShell_();
1613
1615 int guiPid_;
1616
1618 void GUI_();
1619
1620
1621 /*
1622 * Error handling
1623 */
1624
1626 int fatalError_;
1627
1629 int telemetryError_;
1630
1632 int acqRtError_;
1633
1635 int MapError_(int id, ngcbOBJ *obj);
1636
1638 void DevErrState_(const char *msg, int id, ngcbIFC *dev, ngcbMOD *mod);
1639
1641 void AcqErrState_(const char *msg, int id, ngcdcsACQ *mod);
1642
1643
1644 /*
1645 * Parameter handling
1646 */
1647
1649 char dicList_[256];
1650
1652 char *dicBuf_;
1653
1655 int dicIdx_;
1656
1658 ngcbPARAM_LIST paramList_;
1659
1661 ngcbPARAM_LIST dicParam_;
1662
1664 int locked_;
1665
1667 void AttachDic_(ngcbPARAM_LIST *list);
1668
1670 int ApplyParamList_(ngcbPARAM_LIST *list, int noBackup = 0);
1671
1673 int ApplyDefaultSetup_(const char *fileName, int id);
1674
1676 int SetupParam_(const char *name, const char *value, int *status = NULL);
1677
1679 int SetupDEV_(const char *name, const char *value, int *status = NULL);
1680
1682 int SetupSEQ_(const char *name, const char *value, int *status = NULL);
1683
1685 int SetupCLDC_(const char *name, const char *value, int *status = NULL);
1686
1688 int SetupADC_(const char *name, const char *value, int *status = NULL);
1689
1691 int SetupNGC2_(const char *name, const char *value, int *status = NULL);
1692
1694 int SetupAO_(const char *name, const char *value, int *status = NULL);
1695
1697 int SetupLISA_(const char *name, const char *value, int *status = NULL);
1698
1700 int SetupNGSD_(const char *name, const char *value, int *status = NULL);
1701
1703 int SetupTEC_(const char *name, const char *value, int *status = NULL);
1704
1706 int SetupGeosnap_(const char *name, const char *value, int *status = NULL);
1707
1709 int SetupPREAMP_(const char *name, const char *value, int *status = NULL);
1710
1712 int SetupSHUT_(const char *name, const char *value, int *status = NULL);
1713
1715 int SetupSCA_(const char *name, const char *value, int *status = NULL);
1716
1718 int SetupSCA_();
1719
1721 int SetupACQ_(const char *name, const char *value, int *status = NULL);
1722
1724 int StatusParam_(const char *name, char *value);
1725
1727 int StatusDEV_(const char *name, char *value, int *status);
1728
1730 int StatusSEQ_(const char *name, char *value, int *status);
1731
1733 int StatusCLDC_(const char *name, char *value, int *status);
1734
1736 int StatusADC_(const char *name, char *value, int *status);
1737
1739 int StatusNGC2_(const char *name, char *value, int *status);
1740
1742 int StatusAO_(const char *name, char *value, int *status);
1743
1745 int StatusLISA_(const char *name, char *value, int *status);
1746
1748 int StatusNGSD_(const char *name, char *value, int *status);
1749
1751 int StatusTEC_(const char *name, char *value, int *status);
1752
1754 int StatusGeosnap_(const char *name, char *value, int *status);
1755
1757 int StatusPREAMP_(const char *name, char *value, int *status);
1758
1760 int StatusSHUT_(const char *name, char *value, int *status);
1761
1763 int StatusSCA_(const char *name, char *value, int *status);
1764
1766 int StatusACQ_(const char *name, char *value, int *status);
1767
1769 int StatusCHIP_(const char *name, char *value, int *status);
1770
1772 int GroupList_(ngcbPARAM_LIST *list);
1773
1775 void IgnoreErr_(int flag);
1776
1778 int ParamList2PP_();
1779
1781 int SlxCfg_();
1782
1783
1784 /*
1785 * Configuration
1786 */
1787
1789 char sysCfgFile_[256];
1790
1792 ngcbPARAM_LIST *sysCfgPreset_;
1793
1795 ngcdcsRTD *rtd_;
1796
1798 int aoCameraType_;
1799
1801 int InitialCfg_();
1802
1804 void SysCfgPreset_(const char *name, const char *value);
1805
1807 int AcqChipMap_(int *n, int *d, ngcdcs_detcfg_t cfg);
1808
1810 void DefaultFrames_(ngcdcs_syscfg_t *cfg);
1811
1813 int configured_;
1814
1816 int needShutdown_;
1817
1819 ngcbCMD_LIST *cmdList_;
1820
1822 int InstallCommands_();
1823
1825 int ReferenceCheck_();
1826
1828 int haveLoadedState_;
1829
1830 /*
1831 * Exposure handling
1832 */
1833
1835 char expStatStr_[32];
1836
1838 double lastExposureTime_;
1839
1841 int fitsBlock_;
1842
1844 ngcdcsSUBFRM subFrames_;
1845
1848
1850 ngcdcs_wait_t expDrvWaitObj_[ngcbSIO_MAX_CON];
1851
1853 ngcdcs_wait_t evtWaitObj_[ngcbSIO_MAX_CON];
1854
1856 void ComputeExpTime_();
1857
1859 char expLastFile_[256];
1860
1862 int postProcEnabled_;
1863
1865 int hires_;
1866
1868 int hiresSkip_;
1869
1871 int mrgEvtPid_;
1872
1874 int Chip2Fits_(ngcbFITS *f, int idx);
1875
1877 int expDrvSetup_;
1878
1880 int HaveFrame_();
1881
1883 int HaveBreakCond_();
1884
1886 int ExpDrvFeedBack_(ngcb_fb_t *fb);
1887
1889 void ExpDrvInit_();
1890
1892 void ExpDrvNext_();
1893
1895 int MergeList_();
1896
1897
1898 /*
1899 * Some convenience functions
1900 */
1901
1903 int SeqDwellTime_(int id, int factor, int add);
1904
1906 int SeqClkFile_(int id, const char *fileName);
1907
1909 int SeqPrgFile_(ngcdcsSEQ0 *mod, const char *fileName = NULL);
1910
1912 int SeqWin_(int id, ngcdcs_win_t win);
1913
1915 int AcqProc_(int id, const char *procName);
1916
1918 int AcqBurst_(int id, int num);
1919
1921 void AcqWinMap_(int id, int *fx, int *fy, int *sx, int *sy);
1922
1924 int AcqCheckRestart_(ngcbPARAM *p);
1925
1926
1927 /*
1928 * Run-control
1929 */
1931 int resetFlag_;
1932
1934 int Online_(int update = 1);
1935
1937 int SeqBreakTmo_(int id = 0);
1938
1940 int SeqStartSync_(int id);
1941
1943 int SeqStopSync_(int id, int force = 0);
1944
1946 int seqRestart_[ngcdcsCTRL_MAX_SEQ];
1947
1949 int AcqStop_(int id);
1950
1952 int subStateSaved_;
1953
1955 int traceSubState_;
1956
1958 int dbSubState_;
1959
1961 void SubState2String_(int st, char *s);
1962
1964 int seqBreak_;
1965
1967 int seqBreakTmo_;
1968
1970 int acqExecMap_[ngcdcsACQ_MAX_PROC];
1971
1973 ngcdcsSEQ_EMU *seqEmu_;
1974
1975
1976 /*
1977 * Database
1978 */
1979
1981 int dbMirror_;
1982
1984 ngcbDB db_;
1985
1987 ngcbATTR *attr_[ngcbDB_MAX_ATTR];
1988
1990 ngcbSEM *semDb_;
1991
1993 int DbUpdate_();
1994
1996 void DbUpdateParam_(int fd = -1);
1997
1999 void DbUpdateReadModeList_(int fd = -1);
2000
2002 void DbUpdateFrames_(int id, int fd = -1);
2003
2004 /*
2005 * Implemented commands
2006 */
2007
2008 int ExecAck_(ngcb_cmd_handle_t *handle, char *reply);
2009 int ExecAcq_(ngcb_cmd_handle_t *handle, char *reply);
2010 int ExecAcqCmd_(ngcb_cmd_handle_t *handle, char *reply);
2011 int ExecAcqInfo_(ngcb_cmd_handle_t *handle, char *reply);
2012 int ExecAcqProc_(ngcb_cmd_handle_t *handle, char *reply);
2013 int ExecAdc_(ngcb_cmd_handle_t *handle, char *reply);
2014 int ExecAdcInfo_(ngcb_cmd_handle_t *handle, char *reply);
2015 int ExecAoClk_(ngcb_cmd_handle_t *handle, char *reply);
2016 int ExecAoGain_(ngcb_cmd_handle_t *handle, char *reply);
2017 int ExecAoReset_(ngcb_cmd_handle_t *handle, char *reply);
2018 int ExecAoShift_(ngcb_cmd_handle_t *handle, char *reply);
2019 int ExecBoardInfo_(ngcb_cmd_handle_t *handle, char *reply);
2020 int ExecCatLog_(ngcb_cmd_handle_t *handle, char *reply);
2021 int ExecCheckDev_(ngcb_cmd_handle_t *handle, char *reply);
2022 int ExecCheckPat_(ngcb_cmd_handle_t *handle, char *reply);
2023 int ExecCheckSeq_(ngcb_cmd_handle_t *handle, char *reply);
2024 int ExecCheckTim_(ngcb_cmd_handle_t *handle, char *reply);
2025 int ExecCldc_(ngcb_cmd_handle_t *handle, char *reply);
2026 int ExecClkMon_(ngcb_cmd_handle_t *handle, char *reply);
2027 int ExecClose_(ngcb_cmd_handle_t *handle, char *reply);
2028 int ExecDacChan_(ngcb_cmd_handle_t *handle, char *reply);
2029 int ExecDataKill_(ngcb_cmd_handle_t *handle, char *reply);
2030 int ExecDictionary_(ngcb_cmd_handle_t *handle, char *reply);
2031 int ExecDisable_(ngcb_cmd_handle_t *handle, char *reply);
2032 int ExecDiskCreat_(ngcb_cmd_handle_t *handle, char *reply);
2033 int ExecDiskDel_(ngcb_cmd_handle_t *handle, char *reply);
2034 int ExecDwellTime_(ngcb_cmd_handle_t *handle, char *reply);
2035 int ExecHelp_(ngcb_cmd_handle_t *handle, char *reply);
2036 int ExecDebug_(ngcb_cmd_handle_t *handle, char *reply);
2037 int ExecDefine_(ngcb_cmd_handle_t *handle, char *reply);
2038 int ExecEnable_(ngcb_cmd_handle_t *handle, char *reply);
2039 int ExecEvtPort_(ngcb_cmd_handle_t *handle, char *reply);
2040 int ExecEvtWait_(ngcb_cmd_handle_t *handle, char *reply);
2041 int ExecExit_(ngcb_cmd_handle_t *handle, char *reply);
2042 int ExecExpDrv_(ngcb_cmd_handle_t *handle, char *reply);
2043 int ExecExpStart_(ngcb_cmd_handle_t *handle, char *reply);
2044 int ExecExpEnd_(ngcb_cmd_handle_t *handle, char *reply);
2045 int ExecExpAbort_(ngcb_cmd_handle_t *handle, char *reply);
2046 int ExecExpPause_(ngcb_cmd_handle_t *handle, char *reply);
2047 int ExecExpCont_(ngcb_cmd_handle_t *handle, char *reply);
2048 int ExecDump_(ngcb_cmd_handle_t *handle, char *reply);
2049 int ExecFrame_(ngcb_cmd_handle_t *handle, char *reply);
2050 int ExecGetFrames_(ngcb_cmd_handle_t *handle, char *reply);
2051 int ExecGetPat_(ngcb_cmd_handle_t *handle, char *reply);
2052 int ExecGetSeq_(ngcb_cmd_handle_t *handle, char *reply);
2053 int ExecInfo_(ngcb_cmd_handle_t *handle, char *reply);
2054 int ExecInit_(ngcb_cmd_handle_t *handle, char *reply);
2055 int ExecIor_(ngcb_cmd_handle_t *handle, char *reply);
2056 int ExecIoTest_(ngcb_cmd_handle_t *handle, char *reply);
2057 int ExecIow_(ngcb_cmd_handle_t *handle, char *reply);
2058 int ExecLastErr_(ngcb_cmd_handle_t *handle, char *reply);
2059 int ExecLd_(ngcb_cmd_handle_t *handle, char *reply);
2060 int ExecLdClk_(ngcb_cmd_handle_t *handle, char *reply);
2061 int ExecLdSeq_(ngcb_cmd_handle_t *handle, char *reply);
2062 int ExecLock_(ngcb_cmd_handle_t *handle, char *reply);
2063 int ExecUnlock_(ngcb_cmd_handle_t *handle, char *reply);
2064 int ExecLogin_(ngcb_cmd_handle_t *handle, char *reply);
2065 int ExecLogout_(ngcb_cmd_handle_t *handle, char *reply);
2066 int ExecMacro_(ngcb_cmd_handle_t *handle, char *reply);
2067 int ExecMerge_(ngcb_cmd_handle_t *handle, char *reply);
2068 int ExecMinPulse_(ngcb_cmd_handle_t *handle, char *reply);
2069 int ExecModInfo_(ngcb_cmd_handle_t *handle, char *reply);
2070 int ExecNop_(ngcb_cmd_handle_t *handle, char *reply);
2071 int ExecOff_(ngcb_cmd_handle_t *handle, char *reply);
2072 int ExecOpen_(ngcb_cmd_handle_t *handle, char *reply);
2073 int ExecPatClk_(ngcb_cmd_handle_t *handle, char *reply);
2074 int ExecPinfo_(ngcb_cmd_handle_t *handle, char *reply);
2075 int ExecPing_(ngcb_cmd_handle_t *handle, char *reply);
2076 int ExecPrgInit_(ngcb_cmd_handle_t *handle, char *reply);
2077 int ExecPrgParam_(ngcb_cmd_handle_t *handle, char *reply);
2078 int ExecPrgRun_(ngcb_cmd_handle_t *handle, char *reply);
2079 int ExecPrgStep_(ngcb_cmd_handle_t *handle, char *reply);
2080 int ExecPulseCnt_(ngcb_cmd_handle_t *handle, char *reply);
2081 int ExecRecover_(ngcb_cmd_handle_t *handle, char *reply);
2082 int ExecReadAddr_(ngcb_cmd_handle_t *handle, char *reply);
2083 int ExecReset_(ngcb_cmd_handle_t *handle, char *reply);
2084 int ExecResetDfe_(ngcb_cmd_handle_t *handle, char *reply);
2085 int ExecResetDev_(ngcb_cmd_handle_t *handle, char *reply);
2086 int ExecRestore_(ngcb_cmd_handle_t *handle, char *reply);
2087 int ExecRpc_(ngcb_cmd_handle_t *handle, char *reply);
2088 int ExecRtd_(ngcb_cmd_handle_t *handle, char *reply);
2089 int ExecSave_(ngcb_cmd_handle_t *handle, char *reply);
2090 int ExecSaveClk_(ngcb_cmd_handle_t *handle, char *reply);
2091 int ExecSaveVoltages_(ngcb_cmd_handle_t *handle, char *reply);
2092 int ExecSaveErrVoltages_(ngcb_cmd_handle_t *handle, char *reply);
2093 int ExecScaRead_(ngcb_cmd_handle_t *handle, char *reply);
2094 int ExecScaWrite_(ngcb_cmd_handle_t *handle, char *reply);
2095 int ExecSDebug_(ngcb_cmd_handle_t *handle, char *reply);
2096 int ExecSensReset_(ngcb_cmd_handle_t *handle, char *reply);
2097 int ExecSeq_(ngcb_cmd_handle_t *handle, char *reply);
2098 int ExecSeqWait_(ngcb_cmd_handle_t *handle, char *reply);
2099 int ExecSetTime_(ngcb_cmd_handle_t *handle, char *reply);
2100 int ExecSetup_(ngcb_cmd_handle_t *handle, char *reply);
2101 int ExecShutter_(ngcb_cmd_handle_t *handle, char *reply);
2102 int ExecSimErr_(ngcb_cmd_handle_t *handle, char *reply);
2103 int ExecSimulat_(ngcb_cmd_handle_t *handle, char *reply);
2104 int ExecStart_(ngcb_cmd_handle_t *handle, char *reply);
2105 int ExecState_(ngcb_cmd_handle_t *handle, char *reply);
2106 int ExecStatistics_(ngcb_cmd_handle_t *handle, char *reply);
2107 int ExecStatus_(ngcb_cmd_handle_t *handle, char *reply);
2108 int ExecStop_(ngcb_cmd_handle_t *handle, char *reply);
2109 int ExecStopSim_(ngcb_cmd_handle_t *handle, char *reply);
2110 int ExecGeosnap_(ngcb_cmd_handle_t *handle, char *reply);
2111 int ExecSysInfo_(ngcb_cmd_handle_t *handle, char *reply);
2112 int ExecTask_(ngcb_cmd_handle_t *handle, char *reply);
2113 int ExecTec_(ngcb_cmd_handle_t *handle, char *reply);
2114 int ExecTel_(ngcb_cmd_handle_t *handle, char *reply);
2115 int ExecTelChan_(ngcb_cmd_handle_t *handle, char *reply);
2116 int ExecTelData_(ngcb_cmd_handle_t *handle, char *reply);
2117 int ExecTest_(ngcb_cmd_handle_t *handle, char *reply);
2118 int ExecTestAddr_(ngcb_cmd_handle_t *handle, char *reply);
2119 int ExecTsu_(ngcb_cmd_handle_t *handle, char *reply);
2120 int ExecTimeout_(ngcb_cmd_handle_t *handle, char *reply);
2121 int ExecVersion_(ngcb_cmd_handle_t *handle, char *reply);
2122 int ExecVget_(ngcb_cmd_handle_t *handle, char *reply);
2123 int ExecWait_(ngcb_cmd_handle_t *handle, char *reply);
2124 int ExecWriteAddr_(ngcb_cmd_handle_t *handle, char *reply);
2125
2127 int inMacro_;
2128
2130 int Execute_(const char *cmd, char *reply, int protect, int fd);
2131
2133 int EventHandler_(const char *msg, char *reply);
2134
2136 void DeviceEvent_(ngcbIFC *dev, ngcb_evt_st_t *event);
2137
2138 /*
2139 * Exposure steps
2140 */
2141 int ExpStepInit_(); //< initialize exposure
2142 int ExpStepWiping_(); //< wiping step
2143 int ExpStepIntegrating_(); //< integrating step
2144 int ExpStepReading_(); //< reading step
2145
2147 int ExpStateHandler_();
2148
2150 int ExpStepTriggered_(int stat);
2151
2152};
2153
2157void ngcdcsSrvBreakHandler(int sig);
2158
2162void ngcdcsSrvExitHandler(int sig);
2163
2167int ngcdcsCfg2Arg(int argc, char **argv, char *argStr);
2168
2169#endif
Definition ngcbALARM.hpp:61
void Remove(ngcb_alarm_id id)
Remove item from built-in alarm container.
Definition ngcbALARM_SYS.cpp:31
void Store(ngcbALARM *alarm, ngcb_alarm_id id)
Store alarm to built-in alarm container.
Definition ngcbALARM_SYS.cpp:26
ngcbALARM * Get(ngcb_alarm_id id)
Get item from built-in alarm container.
Definition ngcbALARM_SYS.cpp:36
ngcbALARM_SYS()
Constructor.
Definition ngcbALARM_SYS.cpp:13
Definition ngcbALARM.hpp:100
void Ack()
Acknowledge alarm.
Definition ngcbALARM.cpp:199
const char * Msg()
Return alarm message.
Definition ngcbALARM.cpp:149
const char * Name()
Return alarm name.
Definition ngcbALARM.cpp:145
const char * Value(int showUnit)
Return formatted value string.
Definition ngcbALARM.cpp:155
Definition ngcbATTR.hpp:63
Definition ngcbCMD.hpp:380
ngcbCMD_SRV()
Constructor.
Definition ngcbCMD_SRV.cpp:29
Definition ngcbATTR.hpp:207
Definition ngcbDIC.hpp:51
Definition ngcbFITS.hpp:25
Definition ngcbIFC.hpp:760
Definition ngcbLIST.hpp:34
Definition ngcbMOD.hpp:25
Definition ngcbOBJ.hpp:34
Definition ngcbPARAM.hpp:201
Definition ngcbPARAM.hpp:41
Definition ngcbTHREAD.hpp:68
Definition ngcbSERVICE.hpp:36
Definition ngcbSHMDB.hpp:55
ngcbSIO()
Constructor.
Definition ngcbSIO.cpp:31
Definition ngcbTMPFILE.hpp:26
Definition ngcbCMD.hpp:42
ngcdcsACQ_SERVICE()
Constructor.
Definition ngcdcsACQ.hpp:310
Definition ngcdcsACQ.hpp:343
Definition ngcdcsADC.hpp:55
Definition ngcdcsSRV.hpp:197
virtual ~ngcdcsALARM_SYS()
Destructor.
Definition ngcdcsSRV.hpp:210
ngcdcsALARM_SYS()
Constructor.
Definition ngcdcsSRV.hpp:204
int verboseLevel
Definition ngcdcsSRV.hpp:200
ngcbSERVICE * services
Definition ngcdcsSRV.hpp:199
void Cancel(ngcb_alarm_id id)
Cancel alarm.
Definition ngcdcsSRV.hpp:227
ngcb_alarm_id Issue(ngcbALARM *a)
Send alarm.
Definition ngcdcsSRV.hpp:213
int logLevel
Definition ngcdcsSRV.hpp:201
void Ack(ngcb_alarm_id id)
Acknowledge alarm.
Definition ngcdcsSRV.hpp:243
Definition ngcdcsALBIAS.hpp:27
Definition ngcdcsAOBIAS.hpp:27
Definition ngcdcsAO.hpp:312
Definition ngcdcsAPD.hpp:39
Definition ngcdcsB24.hpp:27
Definition ngcdcsC20B20.hpp:27
Definition ngcdcsC24.hpp:69
Definition ngcdcsCLDC.hpp:129
Definition ngcdcsCLDC.hpp:595
Definition ngcdcsCTRL.hpp:68
int status
Definition ngcdcsSRV.hpp:175
virtual ~ngcdcsEVT()
Destructor.
Definition ngcdcsSRV.hpp:187
int id
Definition ngcdcsSRV.hpp:173
ngcdcsEVT(int i, int d)
Constructor with id and device list.
Definition ngcdcsSRV.hpp:184
ngcdcsEVT()
Constructor.
Definition ngcdcsSRV.hpp:178
ngcdcsEVT(int i)
Constructor with id.
Definition ngcdcsSRV.hpp:181
int devices
Definition ngcdcsSRV.hpp:174
Definition ngcdcsEXPDRV.hpp:31
Definition ngcdcsEXP.hpp:179
Definition ngcdcsGEOSNAP.hpp:29
Definition ngcdcsLISABIAS.hpp:27
Definition ngcdcsLISA.hpp:35
Definition ngcdcsMRGLIST.hpp:63
Definition ngcdcsNGC2.hpp:40
Definition ngcdcsNGSDBIAS.hpp:27
Definition ngcdcsNGSD.hpp:37
Definition ngcdcsPREAMP.hpp:63
Definition ngcdcsRTD.hpp:58
Definition ngcdcsSCA.hpp:183
Definition ngcdcsSEQ.hpp:186
Definition ngcdcsSEQ_PRG.hpp:205
Definition ngcdcsSEQ.hpp:582
Definition ngcdcsSHUTTER.hpp:36
int EvtAddWait(int fd, int id)
Add event waiting client.
Definition ngcdcsSrvStateCtrl.cpp:524
int ExpDrvAddWait(int fd)
Add exposure driver waiting client (socket)
Definition ngcdcsSrvExpDrv.cpp:751
virtual ngcdcsGEOSNAP * MakeGeosnap(ngcbIFC *dev, const ngcb_route_t &route)
Create GEOSNAP module.
Definition ngcdcsSrvMod.cpp:146
void GetFrames(int id, char *s)
Get frame configuration (debugging function)
Definition ngcdcsSrvFrames.cpp:354
virtual int MergeStatus(int id, char *stat=NULL)
Get status of exposure data file merger.
Definition ngcdcsSrvMrg.cpp:235
int SeqBreak(int id=0)
Break sequence.
Definition ngcdcsSrvRunCtrl.cpp:1641
ngcdcsTEC * TECMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route)
TEC module factory.
Definition ngcdcsSrvMod.cpp:338
int AddCmd(const char *cmd, ngcb_function_t function, int flags, const char *syntax, const char *help)
Add command to server command list.
Definition ngcdcsSrvCmd.cpp:39
FILE * debugStream
Debug stream.
Definition ngcdcsSRV.hpp:827
int FrameBreak(int id, const char *name, int n)
Set exposure break condition for frame.
Definition ngcdcsSrvFrames.cpp:228
void BoardInfo(char *s)
Formatted board info.
Definition ngcdcsSrvInfo.cpp:766
virtual void AgEvent(int acqInst, ngcdcs_2ag_t ag, int errorId, const char *erms)
Auto-guiding event.
Definition ngcdcsSrvExp.cpp:251
void Verbose(int level, const char *format,...) __attribute__((format(printf
Verbose method depending on level.
Definition ngcdcsSrvLog.cpp:203
double LifeTime()
Server life time (seconds)
Definition ngcdcsSrvMain.cpp:2578
ngcdcsCTRL * ctrl
Controller object.
Definition ngcdcsSRV.hpp:406
int DebugStream(int flag)
Enable/disable debug-stream.
Definition ngcdcsSrvLog.cpp:164
int InMainLoop()
Function called before entering main-loop.
Definition ngcdcsSrvMain.cpp:2510
void PrintUsage()
Print command line options.
Definition ngcdcsSrvArgs.cpp:36
int pollInterval
Polling interval in ms.
Definition ngcdcsSRV.hpp:715
int SelftestAcq(int id)
Selftest function for acquisition module.
Definition ngcdcsSrvSelftest.cpp:342
int maxDfeMod
Maximum number of DFE modules.
Definition ngcdcsSRV.hpp:296
int Off()
Switch off.
Definition ngcdcsSrvStateCtrl.cpp:1437
char gui[256]
GUI to be started.
Definition ngcdcsSRV.hpp:819
int PostProcEnabled()
Returns 1 if post-processor is enabled.
Definition ngcdcsSrvExp.cpp:192
int ShutdownService(int port)
Shutdown service port.
Definition ngcdcsSrvProtocol.cpp:884
void DeviceEvent(void *origin, void *event)
Device event (from ngcbSERVICE)
Definition ngcdcsSrvStateCtrl.cpp:303
int AcqStop(int id=0)
Stop (acquisition process)
Definition ngcdcsSrvRunCtrl.cpp:741
void Voltages(ngcdcsCLDC0 *mod, char *s)
Formatted voltages.
Definition ngcdcsSrvInfo.cpp:2129
void void void void void void void int ConfigureLogging(int vb, int log, int xt)
Configure logging parameters.
Definition ngcdcsSrvLog.cpp:133
int DbAdd(ngcbATTR *attr)
Add attribute to database.
Definition ngcdcsSrvDb.cpp:133
int MergeAlign()
Align merger file-list with backup file.
Definition ngcdcsSrvMrg.cpp:303
void ExpPoll()
Exposure polling.
Definition ngcdcsSrvExp.cpp:1476
virtual int FitsMergerCB(ngcbFITS *hdr, char *erms)
FITS-merger call-back.
Definition ngcdcsSrvFits.cpp:57
ngcdcsEXPDRV * ExpDrv(const char *name, const ngcb_fb_t &feedBackChannel)
Exposure driver installation hook.
Definition ngcdcsSrvExpDrv.cpp:226
virtual ~ngcdcsSRV()
Destructor.
Definition ngcdcsSrvMain.cpp:114
int CldcClearCalibration(int id)
Clear voltage calibration.
Definition ngcdcsSrvSetupCLDC.cpp:387
virtual ngcdcsC24 * MakeC24(ngcbIFC *dev, const ngcb_route_t &route)
Create NGC2 C24 bias generator.
Definition ngcdcsSrvMod.cpp:47
int ExpEnd(int acqId=0)
End exposure.
Definition ngcdcsSrvExp.cpp:1283
void Publish(const ngcdcs_exp_topic &topic)
Publish exposure event.
Definition ngcdcsSrvExp.cpp:322
int ExpDrvLoad(const char *module, const char *name=NULL)
Load exposure driver.
Definition ngcdcsSrvExpDrv.cpp:246
int TecAction(int id, const char *action, char *reply)
Perform TEC action.
Definition ngcdcsSrvRunCtrl.cpp:1750
virtual int FrameHandlerCB(void *buffer, ngcdcs_finfo_t *finfo, char *erms)
Frame handler call-back.
Definition ngcdcsSrvExp.cpp:223
int Xterm()
Flag to start in new window.
Definition ngcdcsSrvLog.cpp:101
void DevPoll()
Device events polling cycle.
Definition ngcdcsSrvTimer.cpp:226
ngcbPARAM_LIST * ParamList()
Global parameter list.
Definition ngcdcsSrvParam.cpp:500
virtual void PublishSubState()
Publish server sub-state.
Definition ngcdcsSrvDb.cpp:1028
int ReadMode(int idx)
Set new read-mode.
Definition ngcdcsSrvReadMode.cpp:289
virtual int ExpStartCB()
Hook at exposure start.
Definition ngcdcsSrvExp.cpp:247
int SetupParam(const char *name, const char *value)
Set single parameter.
Definition ngcdcsSrvSetupParam.cpp:916
int OpenDebugConnection()
Open error-state debug connection.
Definition ngcdcsSrvOpMode.cpp:113
void CatLog(char *s)
Copy built-in log to string.
Definition ngcdcsSrvLog.cpp:354
int SetupList(const char *paramBuf)
Setup parameter list (string)
Definition ngcdcsSrvSetupList.cpp:2204
int mergeInvalidate
Flag to invalidate source-data after merging.
Definition ngcdcsSRV.hpp:635
void DbExport()
Export database.
Definition ngcdcsSrvDb.cpp:147
void DbLog(const char *format,...) __attribute__((format(printf
Action log in database.
Definition ngcdcsSrvDb.cpp:1069
ngcdcsMRGLIST mergeList
Merger file-list handler.
Definition ngcdcsSRV.hpp:626
virtual void ShutdownSystemCB2()
Shutdown callback 2.
Definition ngcdcsSrvMain.cpp:1259
ngcdcsSEQ * SeqMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route, ngcbPARAM_LIST *p)
Sequencer module factory.
Definition ngcdcsSrvMod.cpp:232
int FitsMerger(ngcbFITS *hdr, char *erms)
FITS merger (from ngcbACQ_SERVICE)
Definition ngcdcsSrvFits.cpp:26
virtual ngcdcsSCA * MakeSCA(ngcbIFC *dev, const ngcb_route_t &route, ngcbPARAM_LIST *p)
Create Sidecar ASIC module.
Definition ngcdcsSrvMod.cpp:152
virtual void VerboseCB(const char *msg, int level=ngcdcsLOG_INFO)
Verbose output callback.
Definition ngcdcsSrvLog.cpp:330
int SelftestSeq(int id)
Selftest function for sequencer module.
Definition ngcdcsSrvSelftest.cpp:123
int RouteComp(ngcbMOD *, ngcbMOD *)
Compare module routes.
Definition ngcdcsSrvSysCfg.cpp:3366
const char * ProcName()
Return process name.
Definition ngcdcsSrvArgs.cpp:29
virtual int DelSockCB(int fd)
Remove file descriptor from socket event list.
Definition ngcdcsSrvProtocol.cpp:361
void SubState(int newState)
set new sub-state
Definition ngcdcsSrvStateCtrl.cpp:416
int FrameHandler(void *buffer, ngcdcs_finfo_t *finfo, char *erms)
Frame handler (from ngcbACQ_SERVICE)
Definition ngcdcsSrvExp.cpp:194
ngcdcsAO * AOMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route)
AO camera module factory.
Definition ngcdcsSrvMod.cpp:289
int SrvPortOrig()
Get original server port number.
Definition ngcdcsSrvMain.cpp:431
int SimError(int error, int idx=0)
Simulate various error test cases.
Definition ngcdcsSrvProtocol.cpp:1011
char thisHost[64]
Our hostname.
Definition ngcdcsSRV.hpp:293
int CloseDebugConnection()
Close error-state debug connection.
Definition ngcdcsSrvOpMode.cpp:177
FILE * watchdog
Watchdog.
Definition ngcdcsSRV.hpp:346
virtual int ConfigureSystemCB2(ngcdcs_syscfg_t &newCfg)
System configuration call-back 2 (after re-configuration)
Definition ngcdcsSrvSysCfg.cpp:62
void ClearSubState()
Clear sub-state (error or active)
Definition ngcdcsSrvStateCtrl.cpp:508
virtual int ResolvePath(char *resolved, const char *fileName)
Resolve full path name by parsing search paths etc.
Definition ngcdcsSrvSysCfg.cpp:69
int ShutterAction(int id, const char *action, char *reply)
Perform shutter action.
Definition ngcdcsSrvRunCtrl.cpp:1717
virtual ngcdcsPREAMP * PreampMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route)
Preamplifier module factory.
Definition ngcdcsSrvMod.cpp:264
int RecStart(const char *id, double absTime=0.0)
Start recording sequence (shortcut to series of function calls)
Definition ngcdcsSrvExp.cpp:1491
ngcdcsLISA * LISAMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route)
LISA camera module factory.
Definition ngcdcsSrvMod.cpp:316
int FdCB(int fd)
File descriptor event.
Definition ngcdcsSrvProtocol.cpp:287
ngcdcsSRV()
Constructors.
Definition ngcdcsSrvMain.cpp:79
int detIndex
Detector category index.
Definition ngcdcsSRV.hpp:290
void void void void void void Print(const char *format,...) __attribute__((format(printf
Print verbose message.
Definition ngcdcsSrvLog.cpp:297
virtual ngcdcsNGSD * MakeNGSD(ngcbIFC *dev, const ngcb_route_t &route, double extRef)
Create NGSD module.
Definition ngcdcsSrvMod.cpp:133
int Check(const ngcdcs_syscfg_t &cfg)
Check system configuration.
Definition ngcdcsSrvSysCfg.cpp:2994
void Abort()
Abort server.
Definition ngcdcsSrvMain.cpp:930
ngcdcsCLDC * CldcMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route, int nc, int nb, double extRef)
CLDC module factory.
Definition ngcdcsSrvMod.cpp:165
int Statistics(int id, char *s)
Formatted acquisition process statistics.
Definition ngcdcsSrvInfo.cpp:2195
int ProtocolAscii(int fd)
ASCII command protocol.
Definition ngcdcsSrvProtocol.cpp:144
int Macro(const char *fileName, char *reply, int protection=0)
Execute macro file.
Definition ngcdcsSrvProtocol.cpp:919
int mergeVerify
Enable/disable verification run before merging.
Definition ngcdcsSRV.hpp:632
int ResetSensors()
Reset sensors.
Definition ngcdcsSrvStateCtrl.cpp:1651
virtual int DbUpdateCB()
Update database call-back.
Definition ngcdcsSrvDb.cpp:968
int CldcCheck(int id)
Telemetry check.
Definition ngcdcsSrvSetupCLDC.cpp:304
void ClrLog()
Clear built-in log.
Definition ngcdcsSrvLog.cpp:340
int mergeChunk
Merger chunk size (bytes)
Definition ngcdcsSRV.hpp:638
int Enable(int check)
Go to operational state with or without integrity check.
Definition ngcdcsSrvStateCtrl.cpp:779
virtual void PublishExpEvent(int errorId, unsigned int newStat, const char *fileName, int merge, const char *erms)
Publish exposure event.
Definition ngcdcsSrvDb.cpp:972
ngcdcsADC * AdcMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route, int num, int bitPix)
ADC module factory.
Definition ngcdcsSrvMod.cpp:246
virtual void DbLogCB(const char *msg)
Database log callback.
Definition ngcdcsSrvDb.cpp:970
int CfgPath(char *path, const char *cfgFile)
Get cfg-file path.
Definition ngcdcsSrvSysCfg.cpp:81
int ExpStart(int acqId=0, double absTime=0.0)
Start exposure.
Definition ngcdcsSrvExp.cpp:811
void UnlockService()
Unlock service loop.
Definition ngcdcsSrvMain.cpp:2504
int Reset()
Reset system.
Definition ngcdcsSrvStateCtrl.cpp:1548
int SysCfg(const char *cfgFile)
Apply system configuration.
Definition ngcdcsSrvSysCfg.cpp:238
char mergeArg[128]
Additional merger arguments.
Definition ngcdcsSRV.hpp:641
void State(int newState, int update=1)
Set new server state.
Definition ngcdcsSrvStateCtrl.cpp:382
int FrameGen(int id, const char *name, int flag)
Set frame attribute: generate.
Definition ngcdcsSrvFrames.cpp:29
int DumpFits(const char *fileName=NULL)
Dump FITS-header to file.
Definition ngcdcsSrvFits.cpp:3042
virtual int MergeStart(const char *name, int display, int id, int cleanup=0)
Start exposure data file merger with requested id.
Definition ngcdcsSrvMrg.cpp:119
int SelftestCldc(int id)
Selftest function for CLDC module.
Definition ngcdcsSrvSelftest.cpp:25
void SaveErr(const char *erms)
Save last error message.
Definition ngcdcsSrvLog.cpp:395
int MainLoop()
Run service-loop.
Definition ngcdcsSrvMain.cpp:2532
virtual ngcdcsAPD * MakeAPD(ngcbIFC *dev, const ngcb_route_t &route, int nb)
Create APD bias generator.
Definition ngcdcsSrvMod.cpp:53
int Recover()
Recover from error state.
Definition ngcdcsSrvStateCtrl.cpp:720
int ExpDrvStart()
Activate exposure driver.
Definition ngcdcsSrvExpDrv.cpp:583
int GetPat(int id, int num, char *s)
Formatted clock pattern.
Definition ngcdcsSrvInfo.cpp:2285
int concurrentMerge
Concurrent merging.
Definition ngcdcsSRV.hpp:623
virtual void PollStatConfigure(int enable, int interval)
Configure status polling (milliseconds)
Definition ngcdcsSrvTimer.cpp:270
int ReadModeIdx(int id)
Get read-mode index by id.
Definition ngcdcsSrvReadMode.cpp:255
void DevError(const char *erms, int id, void *descriptor)
Device error (from ngcbSERVICE)
Definition ngcdcsSrvStateCtrl.cpp:313
ngcbDIC dictionary
Global dictionary.
Definition ngcdcsSRV.hpp:1066
virtual int ConfigureSystemCB1(ngcdcs_syscfg_t &newCfg)
System configuration call-back 1 (before re-configuration)
Definition ngcdcsSrvSysCfg.cpp:55
virtual void PublishLogPars()
Publish logging parameters.
Definition ngcdcsSrvDb.cpp:1007
void ExportVersion(const char *newVersion)
Export version.
Definition ngcdcsSrvArgs.cpp:789
int LogLevel()
Get logging level.
Definition ngcdcsSrvLog.cpp:105
int AdcInfo(int id, char *s)
Formatted ADC module info.
Definition ngcdcsSrvInfo.cpp:856
int SeqWaiting()
Check if all sequencers are in WAITING state.
Definition ngcdcsSrvRunCtrl.cpp:167
int CldcDefault(int id)
Restore default voltages.
Definition ngcdcsSrvSetupCLDC.cpp:249
char expDrvFeedBack[128]
Feed-back channel selection.
Definition ngcdcsSRV.hpp:597
int integrityCheck
Integrity check when going online.
Definition ngcdcsSRV.hpp:673
int InitSysCfg(const char *cfgFile)
Initialize default system configuration from file.
Definition ngcdcsSrvSysCfg.cpp:210
virtual ngcdcsTEC * MakeTEC(ngcbIFC *dev, const ngcb_route_t &route)
Create TEC module.
Definition ngcdcsSrvMod.cpp:140
ngcbIFC * ctrlDev[ngcdcsCTRL_MAX_DEV]
Mirror of controller devices.
Definition ngcdcsSRV.hpp:409
int SeqContinue(int id=0)
Sequencer continue.
Definition ngcdcsSrvRunCtrl.cpp:1562
int PrepareFits(int refresh=1)
Prepare FITS-header.
Definition ngcdcsSrvFits.cpp:86
void ExpStatus2String(char *s, int stat)
Convert exposure status to string.
Definition ngcdcsSrvExp.cpp:152
int LoadSetup(const char *fileName, char **list, int *listLength, int max=-1)
Load setup from file into string array.
Definition ngcdcsSrvParam.cpp:918
int ExpPause(int id=0)
Pause exosure.
Definition ngcdcsSrvExp.cpp:1353
int Update()
Update database.
Definition ngcdcsSrvStateCtrl.cpp:1686
void SysInfo(char *s)
Formatted system info.
Definition ngcdcsSrvInfo.cpp:88
int SeqIdle(int id=0)
Check sequencer idle states.
Definition ngcdcsSrvRunCtrl.cpp:126
int fitsLogPeriod
FITS logging period (seconds)
Definition ngcdcsSRV.hpp:836
virtual void DbLock()
Lock database.
Definition ngcdcsSrvDb.cpp:31
void AcqError(const char *erms, int id, void *descriptor)
Device error (from ngcbACQ_SERVICE)
Definition ngcdcsSrvStateCtrl.cpp:321
int OpMode(int level)
Set operational mode.
Definition ngcdcsSrvOpMode.cpp:25
ngcbPARAM * ParamDefine(const char *name, const char *value, int id, int *status=NULL)
Define parameter.
Definition ngcdcsSrvParam.cpp:504
virtual void MergeReset(int relaunch=0)
Reset data merger interface.
Definition ngcdcsSrvMrg.cpp:435
int Initialize()
Initialize system.
Definition ngcdcsSrvMain.cpp:559
char opMode[32]
Operation mode string.
Definition ngcdcsSRV.hpp:670
virtual ngcdcsLISABIAS * MakeLISABIAS(ngcbIFC *dev, const ngcb_route_t &route, int nb)
Create LISA bias generator.
Definition ngcdcsSrvMod.cpp:73
int FrameExport(int id, const char *name, int flag)
Set frame attribute: export.
Definition ngcdcsSrvFrames.cpp:180
int HaveLocalEvents()
Local events configured.
Definition ngcdcsSrvTimer.cpp:210
void void void void void ErrLog(int severity, const char *format,...) __attribute__((format(printf
Error log, severity is one of ngcbWARNING, ngcbFAILURE and ngcbERR_SEVERE.
Definition ngcdcsSrvLog.cpp:281
ngcbALARM_SYS * alarmSystem
Alarm system.
Definition ngcdcsSRV.hpp:830
int ResetDfe()
Reset detector front-end.
Definition ngcdcsSrvStateCtrl.cpp:1590
void ExpStatus(unsigned int newStat, const char *erms=NULL)
Update exposure status.
Definition ngcdcsSrvExp.cpp:288
const char * DicList()
Get dictionary list.
Definition ngcdcsSrvParam.cpp:502
int numAcqMod
Number of acquisition modules.
Definition ngcdcsSRV.hpp:429
int CheckExp()
Return an error when an exposure is still active.
Definition ngcdcsSrvExp.cpp:257
virtual ngcdcsPREAMP * MakePREAMP(ngcbIFC *dev, const ngcb_route_t &route)
Create preamplifier module.
Definition ngcdcsSrvMod.cpp:109
ngcdcsACQ * acq[ngcdcsACQ_MAX_PROC]
Acquisition modules.
Definition ngcdcsSRV.hpp:426
int FitsBlock()
Number of FITS blocks from system.
Definition ngcdcsSrvFits.cpp:84
char * ErrMsg()
Global error message.
Definition ngcdcsSrvMain.cpp:461
size_t ppStackSize
Post-processor stack size in bytes (0 = use system default)
Definition ngcdcsSRV.hpp:1291
int CldcRestore(int id, const char *key=NULL)
Restore voltage defined by voltage-keyword.
Definition ngcdcsSrvSetupCLDC.cpp:437
virtual int MergeStop(int id)
Stop exposure data file merger.
Definition ngcdcsSrvMrg.cpp:212
int RestoreState()
Restore sequencer states.
Definition ngcdcsSrvStateCtrl.cpp:602
int AcqProc(int id, const char *procName)
Set acquisition process on multiple instances.
Definition ngcdcsSrvSetupACQ.cpp:25
virtual ngcdcsADC * MakeADC(ngcbIFC *dev, const ngcb_route_t &route, int num, int bitPix)
Create ADC module.
Definition ngcdcsSrvMod.cpp:96
void ExpDrvModList(char *s)
Print list of loaded exposure driver modules to string.
Definition ngcdcsSrvExpDrv.cpp:292
int ProtocolBin(int fd)
Binary command protocol.
Definition ngcdcsSrvProtocol.cpp:620
int SeqTrigger(int id)
Sequencer sync trigger.
Definition ngcdcsSrvRunCtrl.cpp:1397
void Release()
Release server.
Definition ngcdcsSrvMain.cpp:885
void Port(int port)
Set core service port.
Definition ngcdcsSrvMain.cpp:448
virtual ngcdcsSHUTTER * MakeSHUTTER(ngcbIFC *dev, const ngcb_route_t &route)
Create shutter module.
Definition ngcdcsSrvMod.cpp:103
void Profile(const char *name=NULL)
Apply profile.
Definition ngcdcsSrvMain.cpp:465
virtual void Query()
Query system status.
Definition ngcdcsSrvTimer.cpp:29
int StatusParam(const char *name, char *value)
Get single parameter.
Definition ngcdcsSrvStatus.cpp:1565
ngcdcsNGC2 * NGC2Mod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route)
NGC2 basic module factory.
Definition ngcdcsSrvMod.cpp:273
int ExpDrvCfg(const char *s)
Configue exposure driver from either a file a parameter string.
Definition ngcdcsSrvExpDrv.cpp:491
ngcdcsEXP exposure
Exposure handler.
Definition ngcdcsSRV.hpp:496
int ExpDrvUnload()
Unload all dynamically loaded driver modules.
Definition ngcdcsSrvExpDrv.cpp:259
uint64_t SizeRecorded()
Recorded data size during current exposure (in bytes)
Definition ngcdcsSrvExp.cpp:117
virtual void PublishState()
Publish server state.
Definition ngcdcsSrvDb.cpp:1016
virtual void ErrorEvent(int id, const char *erms)
Error event handler.
Definition ngcdcsSrvStateCtrl.cpp:336
char * ExpStatusString()
Return current exposure status as string.
Definition ngcdcsSrvExp.cpp:186
virtual void PublishExpDrvStatus()
Publish exposure driver status.
Definition ngcdcsSrvDb.cpp:1040
virtual ngcdcsACQ * MakeACQ(const ngcdcs_acq_cfg_t &cfg, ngcbPARAM_LIST *p)
Create acquisition module.
Definition ngcdcsSrvMod.cpp:159
void void void void void void void AddLog(const char *format,...) __attribute__((format(printf
Add message to the logging system.
Definition ngcdcsSrvLog.cpp:313
void ModInfo(char *s)
Formatted module info.
Definition ngcdcsSrvInfo.cpp:346
int ExpAbort(int acqId=0)
Abort exposure.
Definition ngcdcsSrvExp.cpp:1253
virtual void DbUnlock()
Unlock database.
Definition ngcdcsSrvDb.cpp:36
int StatusList(const char *list, char *reply)
Get parameter status (parameter names string)
Definition ngcdcsSrvStatus.cpp:1499
void ExecShell(const char *name)
Set remote execution shell.
Definition ngcdcsSrvMain.cpp:443
virtual void LogCB(const char *msg, int level=ngcdcsLOG_INFO)
Logging output callback.
Definition ngcdcsSrvLog.cpp:338
void BroadcastAlarm(const char *msg)
Broadcast alarm.
Definition ngcdcsSrvProtocol.cpp:870
ngcdcsCLDC0 * CldcFn(int idx)
Get index of CLDC functional module.
Definition ngcdcsSrvMod.cpp:396
int Execute(const char *cmd, char *reply, int protect=0, int fd=-1)
Command handler.
Definition ngcdcsSrvProtocol.cpp:586
virtual void MergeNext()
Merge next item in the data merger list.
Definition ngcdcsSrvMrg.cpp:284
virtual int AddSockCB(int fd)
Add file descriptor to socket event list.
Definition ngcdcsSrvProtocol.cpp:345
int Telemetry(int id, char *s)
Formatted telemetry.
Definition ngcdcsSrvInfo.cpp:1985
void Logger(int flag, const char *msg)
Logger (from ngcbSERVICE)
Definition ngcdcsSrvLog.cpp:186
virtual void ExitSignal(int sig)
Exit handler.
Definition ngcdcsSrvMain.cpp:1243
int forceStartup
Enforce system startup even when instance check fails.
Definition ngcdcsSRV.hpp:287
const char * LastErr()
Last error message.
Definition ngcdcsSrvMain.cpp:463
virtual void InstallSignalHandlers()
Install signal handlers.
Definition ngcdcsSrvMain.cpp:436
virtual int ExpCountDownCB()
Exposure countdown start call-back.
Definition ngcdcsSrvExp.cpp:249
virtual void HiResTimer(int enable)
Enable/disable hi-res timer.
Definition ngcdcsSrvTimer.cpp:287
int VerboseLevel()
Get verbose level.
Definition ngcdcsSrvLog.cpp:103
int NeedEnableCycle()
Return a flag indicating whether an enabling cycle is needed.
Definition ngcdcsSrvStateCtrl.cpp:774
ngcdcsSCA * ScaMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route, ngcbPARAM_LIST *p)
Sidecar ASIC module factory.
Definition ngcdcsSrvMod.cpp:356
int FrameWin(int id, const char *name, int sx, int sy, int nx, int ny)
Set frame window.
Definition ngcdcsSrvFrames.cpp:278
int SeqWait(int id, int event, int timeout, int interval)
Wait for status event.
Definition ngcdcsSrvRunCtrl.cpp:1679
int updateReadModeList
Read-out mode list update flag.
Definition ngcdcsSRV.hpp:479
int readModeId
Current read-mode id.
Definition ngcdcsSRV.hpp:473
int CheckTriggerPeriod(int id, double period)
Check, if the trigger period matches the current read-out sequence.
Definition ngcdcsSrvInfo.cpp:2389
virtual ngcdcsNGSDBIAS * MakeNGSDBIAS(ngcbIFC *dev, const ngcb_route_t &route, int nb, double extRef)
Create NGSD bias generator.
Definition ngcdcsSrvMod.cpp:81
ngcdcs_syscfg_t sysCfg
Current configuration structure.
Definition ngcdcsSRV.hpp:308
int fitsLogLevel
FITS logging level.
Definition ngcdcsSRV.hpp:833
virtual int MergeMsg(int id, char *msg)
Get status message of exposure data file merger.
Definition ngcdcsSrvMrg.cpp:261
int numCldcFn
Number of CLDC functions.
Definition ngcdcsSRV.hpp:1182
ngcbLIST evtList
Event list.
Definition ngcdcsSRV.hpp:302
virtual ngcdcsALBIAS * MakeALBIAS(ngcbIFC *dev, const ngcb_route_t &route, int nb)
Create ALICE bias generator.
Definition ngcdcsSrvMod.cpp:66
int ParamDefault()
Set default values.
Definition ngcdcsSrvParam.cpp:811
int numSeqFn
Number of sequencer functions.
Definition ngcdcsSRV.hpp:1179
int ExpDrvAbort()
Abort exposure driver.
Definition ngcdcsSrvExpDrv.cpp:701
void LockService()
Lock service loop.
Definition ngcdcsSrvMain.cpp:2498
int SeqPause(int id=0)
Sequencer pause.
Definition ngcdcsSrvRunCtrl.cpp:1505
int TimerCB()
Timer call-back.
Definition ngcdcsSrvTimer.cpp:236
virtual ngcdcsAO * MakeAO(ngcbIFC *dev, const ngcb_route_t &route)
Create AO camera module.
Definition ngcdcsSrvMod.cpp:121
virtual void MergeInit()
Initialize file-merger interface.
Definition ngcdcsSrvMrg.cpp:387
ngcdcs_detcfg_t detCfg
Current configuration structure.
Definition ngcdcsSRV.hpp:392
int ExpDrvSelect(const char *name)
Install exposure driver.
Definition ngcdcsSrvExpDrv.cpp:294
virtual void ShutdownSystemCB1()
Shutdown callback 1.
Definition ngcdcsSrvMain.cpp:1257
int HandleExpEvt()
Handle exposure event.
Definition ngcdcsSrvExp.cpp:327
int FrameLocal(int id, const char *name, int flag)
Set frame attribute: store to local medi.
Definition ngcdcsSrvFrames.cpp:132
int Disable()
Go to not operational state.
Definition ngcdcsSrvStateCtrl.cpp:1280
ngcdcsTCCD * tccd[ngcdcsTCCD_MAX_PROC]
TCCD modules.
Definition ngcdcsSRV.hpp:415
void Shutdown()
Dhutdown all modules.
Definition ngcdcsSrvMain.cpp:1261
double TimeElapsed()
Time elapsed in current exposure.
Definition ngcdcsSrvExp.cpp:125
virtual ngcdcsNGC2 * MakeNGC2(ngcbIFC *dev, const ngcb_route_t &route)
Create NGC2 basic module.
Definition ngcdcsSrvMod.cpp:115
int SeqStop(int id=0)
Stop (sequencer + acquisition process)
Definition ngcdcsSrvRunCtrl.cpp:833
void DelCmd(const char *cmd)
Delete command from server command list.
Definition ngcdcsSrvCmd.cpp:62
int updateParam
Parameter update flag.
Definition ngcdcsSRV.hpp:1116
int SelftestAdc(int id)
Selftest function for ADC module.
Definition ngcdcsSrvSelftest.cpp:174
int DbConfigure()
Configure database.
Definition ngcdcsSrvDb.cpp:152
virtual ngcdcsCLDC * MakeCLDC(ngcbIFC *dev, const ngcb_route_t &route, int nc, int nb)
Create standard CLDC module.
Definition ngcdcsSrvMod.cpp:26
char dbPoint[256]
Actual data base point.
Definition ngcdcsSRV.hpp:919
void virtual int DbConfCB()
Configure database call-back.
Definition ngcdcsSrvDb.cpp:966
int ExpDrvClose()
Uninstall exposure driver.
Definition ngcdcsSrvExpDrv.cpp:470
int ParamLookup(const char *name, char *value, int flag=0)
Handler for parameter lookup (from ngcbSERVICE)
Definition ngcdcsSrvParam.cpp:865
int ExpCont(int id=0)
Continue paused exosure.
Definition ngcdcsSrvExp.cpp:1407
void StoreState()
Store sequencer states.
Definition ngcdcsSrvStateCtrl.cpp:561
void CheckDev(int idx, char *s)
Device check.
Definition ngcdcsSrvInfo.cpp:1086
int polling
Enable/disable polling.
Definition ngcdcsSRV.hpp:712
char configDir[256]
Configuration directory.
Definition ngcdcsSRV.hpp:311
virtual ngcdcsAOBIAS * MakeAOBIAS(ngcbIFC *dev, const ngcb_route_t &route, int nb)
Create AO bias generator.
Definition ngcdcsSrvMod.cpp:59
int autoRestart
Enable automatic restart mechanism.
Definition ngcdcsSRV.hpp:1007
int StoreCfg(const char *fileName)
Store configuration.
Definition ngcdcsSrvStoreCfg.cpp:29
int mergeDisplay
Flag to launch merger status display.
Definition ngcdcsSRV.hpp:629
int SelftestShutter(int id)
Selftest function for shutter module.
Definition ngcdcsSrvSelftest.cpp:216
int CldcDisable(int id)
Disable CLDC outputs.
Definition ngcdcsSrvSetupCLDC.cpp:152
int numTccdMod
Number of acquisition modules.
Definition ngcdcsSRV.hpp:418
void ExpDrvList(char *s)
Print exposure driver list to string.
Definition ngcdcsSrvExpDrv.cpp:290
int ConfigureSystem(ngcdcs_syscfg_t newCfg, int copy=1)
Configure system.
Definition ngcdcsSrvMain.cpp:1386
int Snapshot(int id, char *s)
Formatted bias snapshot.
Definition ngcdcsSrvInfo.cpp:1893
virtual void ErrLogEvent(int id, const char *erms)
Error logging event.
Definition ngcdcsSrvLog.cpp:402
void ExpDrvStatus(unsigned int newStat)
Exposure driver status update.
Definition ngcdcsSrvExpDrv.cpp:574
std::string GetCldcType(int idx)
Get CLDC type.
Definition ngcdcsSrvStatusCLDC.cpp:25
ngcdcsNGSD * NGSDMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route, double extRef)
NGSD module factory.
Definition ngcdcsSrvMod.cpp:329
int GeosnapAction(int id, const char *action, char *reply)
Perform GEOSNAP action.
Definition ngcdcsSrvRunCtrl.cpp:1792
int NewEventConnection(int fd)
New event connection.
Definition ngcdcsSrvDb.cpp:41
virtual ngcbCMD_LIST * CreateCmdList()
Command list factory.
Definition ngcdcsSrvCmd.cpp:33
void ParamUndefine(const char *name, int id)
Undefine (remove) parameter.
Definition ngcdcsSrvParam.cpp:779
char stateString[32]
Server state string (STANDBY,ONLINE,...
Definition ngcdcsSRV.hpp:679
int ErrState()
Check if we are in error state.
Definition ngcdcsSrvStateCtrl.cpp:553
int state
Server state value.
Definition ngcdcsSRV.hpp:676
double RemainingTime()
Time remaining in current exposure.
Definition ngcdcsSrvExp.cpp:139
char * Instance()
Get instance.
Definition ngcdcsSrvMain.cpp:459
virtual ngcdcsB24 * MakeB24(ngcbIFC *dev, const ngcb_route_t &route, int nb)
Create NGC2 B24 bias generator.
Definition ngcdcsSrvMod.cpp:41
int FrameStore(int id, const char *name, int flag)
Set frame attribute: store.
Definition ngcdcsSrvFrames.cpp:84
virtual int LoadSysCfg(ngcdcs_syscfg_t *newCfg, const char *fileName)
System configuration file loader.
Definition ngcdcsSrvSysCfg.cpp:463
virtual ngcdcsSHUTTER * ShutterMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route)
Shutter module factory.
Definition ngcdcsSrvMod.cpp:255
void SysCfgDefault(const char *cfg)
Apply default system configuration.
Definition ngcdcsSrvSysCfg.cpp:191
int ExpDrvLoaded(const char *module)
Check if exposure driver module is loaded.
Definition ngcdcsSrvExpDrv.cpp:285
ngcdcsSEQ0 * SeqFn(int idx)
Get index of sequencer functional module.
Definition ngcdcsSrvMod.cpp:376
void void void Log(int level, const char *format,...) __attribute__((format(printf
Logging method depending on level.
Definition ngcdcsSrvLog.cpp:243
int CoreShell()
Core shell.
Definition ngcdcsSrvUI.cpp:149
int HIRES_TIMER
High resolution polling interval.
Definition ngcdcsSRV.hpp:718
virtual ngcdcsLISA * MakeLISA(ngcbIFC *dev, const ngcb_route_t &route)
Create LISA camera module.
Definition ngcdcsSrvMod.cpp:127
int ExpAddWait(int fd, int id)
Add exposure waiting client (socket)
Definition ngcdcsSrvExp.cpp:1447
void Info(char *s)
Formatted server info.
Definition ngcdcsSrvInfo.cpp:30
int subState
Server sub-state value.
Definition ngcdcsSRV.hpp:685
char readModeName[64]
Current read-mode name.
Definition ngcdcsSRV.hpp:476
const char * Version()
Current version.
Definition ngcdcsSrvMain.cpp:429
void RpcTranslate(void *payload, size_t size, int request, int how, char *s)
Translate RPC payload to string.
Definition ngcdcsSrvInfo.cpp:2436
virtual int LoadDetCfg(ngcdcs_detcfg_t *newCfg, const char *fileName)
Detector configuration file loader.
Definition ngcdcsSrvDetCfg.cpp:720
int FatalError()
Check for fatal error.
Definition ngcdcsSrvStateCtrl.cpp:326
uint64_t FramesProcessed()
Number of processed frames during current exposure.
Definition ngcdcsSrvExp.cpp:109
virtual ngcdcsSEQ * MakeSEQ(ngcbIFC *dev, const ngcb_route_t &route, ngcbPARAM_LIST *p)
Create sequencer module.
Definition ngcdcsSrvMod.cpp:89
int autoMerge
Automatic merging.
Definition ngcdcsSRV.hpp:620
char subStateString[32]
Sub-state string (IDLE,BUSY,...)
Definition ngcdcsSRV.hpp:688
int Rtd(int idx)
Start RTD for acquistion module.
Definition ngcdcsSrvUI.cpp:384
int CldcEnable(int id)
Enable CLDC outputs.
Definition ngcdcsSrvSetupCLDC.cpp:25
void ClearState(int id=0)
Clear stored sequencer states.
Definition ngcdcsSrvStateCtrl.cpp:659
int CldcCalibrate(int id)
Calibrate voltages.
Definition ngcdcsSrvSetupCLDC.cpp:344
int DetCfg(const char *cfgFile)
Apply detector configuration.
Definition ngcdcsSrvDetCfg.cpp:153
ngcdcsGEOSNAP * GeosnapMod(const char *spec, ngcbIFC *dev, const ngcb_route_t &route)
GEOSNAP module factory.
Definition ngcdcsSrvMod.cpp:347
int deviceEvents
Enable/disable device events.
Definition ngcdcsSRV.hpp:299
void DisableDbMirror()
Disable internal databse mirror.
Definition ngcdcsSrvDb.cpp:26
int SeqStart(int id=0, struct timeval *ts=NULL, double absTime=0.0)
Start (sequencer + acquisition process)
Definition ngcdcsSrvRunCtrl.cpp:1104
int GetPrg(int id, int num, char *s)
Formatted sequencer program.
Definition ngcdcsSrvInfo.cpp:2326
ngcdcsACQ * AcqMod(const char *spec, const ngcdcs_acq_cfg_t &cfg, ngcbPARAM_LIST *p)
Acquisition module factory.
Definition ngcdcsSrvMod.cpp:366
int AcqStart(int id=0)
Start (acquisition process)
Definition ngcdcsSrvRunCtrl.cpp:781
int ParseArguments(int argc, char **argv)
Parse options.
Definition ngcdcsSrvArgs.cpp:90
ngcdcsEXPDRV * expDrv
Exposure sequence driver.
Definition ngcdcsSRV.hpp:570
int SelftestSca(int id)
Selftest function for Sidecar ASIC module.
Definition ngcdcsSrvSelftest.cpp:300
virtual int LookupCB(const char *paramName, char *value)
Call-back for parameter lookup.
Definition ngcdcsSrvStatus.cpp:1615
int SelftestPreamp(int id)
Selftest function for preamplifier module.
Definition ngcdcsSrvSelftest.cpp:258
int AcqInfo(int id, char *s)
Formatted acquisition process info.
Definition ngcdcsSrvInfo.cpp:955
virtual ngcdcsC20B20 * MakeC20B20(ngcbIFC *dev, const ngcb_route_t &route, int nc, int nb)
Create NGC2 bias generator.
Definition ngcdcsSrvMod.cpp:33
virtual void SysCfgOverride(ngcdcs_syscfg_t *newCfg)
Overrride system configuration (call-back)
Definition ngcdcsSrvSysCfg.cpp:233
Definition ngcdcsSUBFRM.hpp:49
Definition ngcdcsTCCD.hpp:28
Definition ngcdcsTEC.hpp:137
unsigned long int ngcb_alarm_id
Definition ngcbALARM.hpp:50
#define ngcbDB_MAX_ATTR
Definition ngcbATTR.hpp:21
int(ngcbCMD_SRV::* ngcb_function_t)(ngcb_cmd_handle_t *handle, char *reply)
Definition ngcbCMD.hpp:308
#define ngcbEVT_PENDING
Definition ngcbIFC.hpp:49
#define ngcbVB_LOG
Definition ngcbSERVICE.hpp:26
#define ngcbVB_PRINT
Definition ngcbSERVICE.hpp:25
#define ngcbSIO_MAX_CON
Definition ngcbSIO.hpp:24
int ngcbGetTime(struct timeval *t)
Definition ngcbTime.c:41
#define ngcdcsACQ_MAX_PROC
Definition ngcdcsACQ.hpp:71
#define ngcdcsCTRL_MAX_SEQ
Definition ngcdcsCTRL.hpp:44
#define ngcdcsCTRL_MAX_DEV
Definition ngcdcsCTRL.hpp:56
int ngcdcsCfg2Arg(int argc, char **argv, char *argStr)
Definition ngcdcsSrvArgs.cpp:809
void ngcdcsSrvBreakHandler(int sig)
Definition ngcdcsSrvMain.cpp:37
#define ngcdcsLOG_INFO
Definition ngcdcsSRV.hpp:126
void ngcdcsSrvExitHandler(int sig)
Definition ngcdcsSrvMain.cpp:56
#define ngcdcsMAX_LOG
Definition ngcdcsSRV.hpp:121
#define ngcdcsTCCD_MAX_PROC
Definition ngcdcsTCCD.hpp:22
Definition ngcbIFC.hpp:581
Definition ngcbSTREAM.hpp:28
Definition ngcbSIO.hpp:64
Definition ngcbIFC.hpp:78
Definition ngcdcsEXP.hpp:103
Definition ngcdcsACQ_DATA.hpp:25
Definition ngcdcsCFG.hpp:1194
Definition ngcdcsEXP.hpp:142
Definition ngcdcsFINFO.hpp:468
Definition ngcdcsSRV.hpp:150
unsigned int nExpStart
Definition ngcdcsSRV.hpp:152
ngcdcs_srvinfo_t()
Constructor.
Definition ngcdcsSRV.hpp:160
unsigned int nExpCompl
Definition ngcdcsSRV.hpp:153
unsigned int nFile
Definition ngcdcsSRV.hpp:157
struct timeval startTime
Definition ngcdcsSRV.hpp:151
unsigned int nFram
Definition ngcdcsSRV.hpp:156
unsigned int nExpFail
Definition ngcdcsSRV.hpp:155
unsigned int nExpAbort
Definition ngcdcsSRV.hpp:154
Definition ngcdcsCFG.hpp:951
Definition ngcdcsSRV.hpp:136
virtual ~ngcdcs_wait_t()
Destructor.
Definition ngcdcsSRV.hpp:144
int id
Definition ngcdcsSRV.hpp:138
ngcdcs_wait_t()
Constructor.
Definition ngcdcsSRV.hpp:141
int fd
Definition ngcdcsSRV.hpp:137
Definition ngcdcsSEQ.hpp:157