12#error This is a C++ include file and cannot be used from plain C
20#include <sys/select.h>
35#define ngcdttMOD_ID "ngcdtt"
55#define ngcdttSTATE_OFF 0
56#define ngcdttSTATE_ONLINE 1
61#define ngcdttMAX_CON 8
93 char *evar = getenv(
"NGCPP_DATA");
94 if (evar != NULL) sscanf(evar,
"%10d", &
acqPort);
97 evar = getenv(
"NGCPP_HOST");
101 evar = getenv(
"HOSTNAME");
103 else strcpy(
acqHost,
"localhost");
106 evar = getenv(
"RTD_CAMERA");
108 else strcpy(
camera,
"NGC_CAM");
165 int Configure(
const char *arg,
const char *value = NULL);
168 void Service(
const char *value);
174 void URI(
const char *value);
180 void DCS(
const char *value);
189 void ExecReply(
int stat,
const char *msg);
207 void Verbose(
const char *format, ...)
208 __attribute__ ((format(printf, 2, 3)));
211 void Log(const
char *msg);
311 int Window(
int sx,
int sy,
int nx,
int ny);
338 int DS9(const
char *cmd,
char *reply,
size_t max);
341 virtual
void Alarm(const
char *msg);
353 virtual
void Logger(const
char *msg);
356 virtual
int Select(fd_set *readMask, struct timeval *timeout);
377 virtual
void DbAttrWin(
int sx,
int sy,
int nx,
int ny);
390 char versionString_[256];
414 int verboseLevelSaved_;
477 uint64_t frameCounter_;
480 void Display_(
int idx);
495 void CleanupCmd_(
char *cmdLine,
int *cmdLen);
498 int TcpReadCmd_(
int fd,
char *cmdString,
int maxLen);
501 int TcpWriteReply_(
int fd, const
char *replyString,
int success);
504 int TcpHandleCmd_(
int idx);
507 void TcpSendMsg_(const
char *cmd, const
char *msg = NULL);
510 int TcpGetReply_(
char *msg,
size_t max = 0);
513 void TcpReadRtdCmd_(
int fd,
char *cmd);
516 void TcpHandleRtdCmd_(
int fd);
519 int SocketQuery_(
int fd);
522 int FdIsSet_(struct pollfd *fds,
int n,
int fd);
549 int UpdateFrames_(
int frames);
Definition ngcbSHMDB.hpp:54
Definition ngcdttPUBLISH.hpp:57
Definition ngcdttPUBLISH.hpp:736
int Subtract(int flag)
Enable/disable bias frame subtraction.
Definition ngcdttDisp.cpp:263
int ServicePort()
Get request/reply service port.
Definition ngcdttMain.cpp:476
int cv32
Enforce conversion to 32 bit.
Definition ngcdtt.hpp:126
virtual int MsgInit(int *fd)
Initialize Initialize message system interface.
Definition ngcdttMain.cpp:1021
const char * Process()
Return process name.
Definition ngcdttMain.cpp:258
const char * Instance()
Return instance name.
Definition ngcdttMain.cpp:270
double frequency
Maximum display frequency (Hz)
Definition ngcdtt.hpp:138
void ConnectionId(int id)
Set connection id (override default)
Definition ngcdttMain.cpp:505
int DS9(const char *cmd, char *reply, size_t max)
Execute DS9 command.
Definition ngcdttDisp.cpp:293
virtual void DbAttrState(int state)
Write system state to database.
Definition ngcdttMain.cpp:1748
virtual void MsgShutdown()
Shutdown message system interface.
Definition ngcdttMain.cpp:1027
virtual int Select(fd_set *readMask, struct timeval *timeout)
Select call.
Definition ngcdttMain.cpp:1033
ngcdtt()
Constructor.
Definition ngcdttMain.cpp:188
int nxMax
Maximum x-dimension.
Definition ngcdtt.hpp:132
void VerboseLevel(int level)
Set verbose level.
Definition ngcdttMain.cpp:278
void Invert()
Invert image.
Definition ngcdttDisp.cpp:94
int SX()
Return lower left x-coordinate of requested window.
Definition ngcdttDisp.cpp:204
void ExitSignal(int sig)
Handle EXIT-signal.
Definition ngcdttMain.cpp:1001
int Connected()
Return connected status.
Definition ngcdttDisp.cpp:77
void CurrentFrame(char *name)
Get current frame type (name)
Definition ngcdttDisp.cpp:153
int ParseArguments(int argc, char **argv)
Parse arguments.
Definition ngcdttMain.cpp:511
void Clear()
Clear bias frame.
Definition ngcdttDisp.cpp:252
int interruptible
Interruptible connection.
Definition ngcdtt.hpp:144
virtual void DbAttrFrames(int types)
Write frame list to database.
Definition ngcdttMain.cpp:1750
char dcsInst[64]
DCS instance.
Definition ngcdtt.hpp:245
char dcsHost[64]
DCS host.
Definition ngcdtt.hpp:248
const char * Version()
Return version.
Definition ngcdttMain.cpp:264
int dcsMod
DCS acquisition module index.
Definition ngcdtt.hpp:141
void Verbose(const char *format,...) __attribute__((format(printf
Verbose output.
Definition ngcdttMain.cpp:954
int MainLoop()
Enter the gateway main-loop.
Definition ngcdttMain.cpp:1046
void CamClose()
Close camera.
Definition ngcdttDisp.cpp:43
char camera[128]
Camera name.
Definition ngcdtt.hpp:242
int Initialize()
Initialize.
Definition ngcdttMain.cpp:773
int NX()
Return dimension in x-direction of requested window.
Definition ngcdttDisp.cpp:208
void Service(const char *value)
Set request/reply service name.
Definition ngcdttMain.cpp:471
int NY()
Return dimension in y-direction of requested window.
Definition ngcdttDisp.cpp:210
virtual void DbAttrInvert(int value)
Write image inversion flag to database.
Definition ngcdttMain.cpp:1756
int ignoreSignal
Ignore signal in main-loop select call.
Definition ngcdtt.hpp:123
int Enabled()
Return enabled status.
Definition ngcdttDisp.cpp:79
void Stop()
Stop (disable transfer)
Definition ngcdttDisp.cpp:92
virtual void InstallSignalHandlers()
Install signal handlers.
Definition ngcdttMain.cpp:281
int CamOpen()
Open camera.
Definition ngcdttDisp.cpp:24
ngcdttPUBLISH * publisher
Publisher object.
Definition ngcdtt.hpp:233
int SelectFrame(const char *name)
Select frame type by name and return 1, if setup has changed.
Definition ngcdttDisp.cpp:119
int nyMax
Maximum y-dimension.
Definition ngcdtt.hpp:135
void Datastream(const char *value)
Set datastream name.
Definition ngcdttMain.cpp:490
void PrintUsage(const char *argv0)
Print usage.
Definition ngcdttMain.cpp:292
void ExecReply(int stat, const char *msg)
Send execution reply message and status (1 = success, 0 = failure)
Definition ngcdttMain.cpp:762
void Status(int flag)
Set transfer status (enable=1, disable=0)
Definition ngcdttDisp.cpp:81
void void Log(const char *msg)
Log message.
Definition ngcdttMain.cpp:983
virtual void Logger(const char *msg)
Application specific logger.
Definition ngcdttMain.cpp:1031
int Store()
Store bias frame.
Definition ngcdttDisp.cpp:214
void DCS(const char *value)
Assign DCS instance.
Definition ngcdttMain.cpp:495
void Shutdown()
Request shutdown.
Definition ngcdttMain.cpp:1019
virtual int DbGetCfg(const char *p, ngcdcs_rtdacq_t *acq)
Get acquisition process configuration from DCS database.
Definition ngcdttAcq.cpp:27
virtual void DbAttrConnected(int value)
Write connected flag to database.
Definition ngcdttMain.cpp:1752
int autoEnable
Auto enable.
Definition ngcdtt.hpp:129
int acqPort
Acquisition process port.
Definition ngcdtt.hpp:239
void Retransmit()
Request frame retransmission.
Definition ngcdttDisp.cpp:212
virtual void Alarm(const char *msg)
Issue alarm.
Definition ngcdttDisp.cpp:59
virtual void DbAttrWin(int sx, int sy, int nx, int ny)
Write window parameters to database.
Definition ngcdttMain.cpp:1760
void DataClose()
Close data connection.
Definition ngcdttAcq.cpp:225
int Window(int sx, int sy, int nx, int ny)
Set new window and return 1, if setup has changed.
Definition ngcdttDisp.cpp:180
ngcdtt_dsup_t defaultSetup
DTT default setup.
Definition ngcdtt.hpp:251
virtual void DbAttrEnabled(int value)
Write enabled flag to database.
Definition ngcdttMain.cpp:1754
void LogLevel(int level)
Set logging level.
Definition ngcdttMain.cpp:279
int SY()
Return lower left y-coordinate of requested window.
Definition ngcdttDisp.cpp:206
void DataService(const char *host, int port)
Assign data service (host and port)
Definition ngcdttAcq.cpp:52
void Abort()
Abort.
Definition ngcdttMain.cpp:915
char * ErrMsg()
Return actual error message.
Definition ngcdttMain.cpp:768
virtual int MsgHandler(int fd)
Message handler.
Definition ngcdttMain.cpp:1029
int DataOpen()
Open data connection.
Definition ngcdttAcq.cpp:57
int Configure(const char *arg, const char *value=NULL)
Set configuration parameter.
Definition ngcdttMain.cpp:348
void URI(const char *value)
Set broker URI.
Definition ngcdttMain.cpp:481
virtual ~ngcdtt()
Destructor.
Definition ngcdttMain.cpp:212
void DefaultFrame(const char *value)
Assign default display frame type.
Definition ngcdttMain.cpp:500
void Start()
Start (enable transfer)
Definition ngcdttDisp.cpp:90
int InvertStatus()
Return image inversion flag.
Definition ngcdttDisp.cpp:117
void StopMainLoop()
Stop the gateway main-loop (asynchronous call)
Definition ngcdttMain.cpp:1038
char acqHost[64]
Acquisition process host.
Definition ngcdtt.hpp:236
virtual void DbAttrSelFrame(const char *name)
Write selected frame to database.
Definition ngcdttMain.cpp:1758
#define str2str(s1, s2, n)
Definition ngcb.h:73
#define ngcdttMAX_CON
Definition ngcdtt.hpp:61
void ngcdttKillHandler(int sig)
Definition ngcdttMain.cpp:59
void ngcdttBreakHandler(int sig)
Definition ngcdttMain.cpp:64
void ngcdttExitHandler(int sig)
Definition ngcdttMain.cpp:31
Definition ngcdcsRTD.hpp:25
int numBuf
Number of display buffers.
Definition ngcdtt.hpp:83
int nxMax
Maximum x-dimension.
Definition ngcdtt.hpp:77
char acqHost[64]
Acquisition process host.
Definition ngcdtt.hpp:68
ngcdtt_dsup_t()
Constructor.
Definition ngcdtt.hpp:92
int win[4]
Requested window.
Definition ngcdtt.hpp:89
char camera[128]
Camera name.
Definition ngcdtt.hpp:74
double freq
Maximum display frequency (Hz)
Definition ngcdtt.hpp:86
int nyMax
Maximum y-dimension.
Definition ngcdtt.hpp:80
int acqPort
Acquisition process port.
Definition ngcdtt.hpp:71
Definition ngcppInt.h:552
Definition ngcppInt.h:516
Definition ngcppInt.h:487