FEDRA emulsion software from the OPERA Collaboration
EdbScanClientBase.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbScanClientBase
2 #define ROOT_EdbScanClientBase
3 
4 #include "TSocket.h"
5 #include "TString.h"
6 #include "EdbRun.h"
7 #include "EdbPattern.h"
8 
9 #define MIN(X,Y) ((X) < (Y) ? : (X) : (Y))
10 #define MAX(X,Y) ((X) > (Y) ? : (X) : (Y))
11 
12 #define CMD_LEN 256
14 {
15 public:
18  virtual ~EdbScanClientBase(){};
19 
20  //common part
21  virtual int InitializeSocket()=0;
22 
23  virtual int ScanPreloadAreaS( int id1, int id2, int id3, int id4,
24  float x1, float x2, float y1, float y2, const char *fname,
25  float x1n, float x2n, float y1n, float y2n)=0;
26  virtual int ScanAreas(ScanType st, int id[4], EdbPattern &areas, EdbRun *run, const char* options="")=0;
27 // virtual int ScanAreaS( int id1, int id2, int id3, int id4,
28 // float x1, float y1, float x2, float y2, const char *fname);
29 // virtual int ScanAreasAsync(int id[4], EdbPattern &areas, EdbRun &run, const char* options="");
30  virtual int AddRWC_(EdbRun* run, char* rwcname, int bAddRWD=true, const char* options="")=0;
31  // "short" version of brickID to be passed into sysal command line via BernScanDriver
32  virtual Short_t ShortBrick(Int_t brick)=0;
33  virtual int ConvertAreas(int id[4], EdbPattern &areas, EdbRun &run, const char* options="")=0;
34 
35 
36  //protocol-specific part
37  virtual int UnloadPlate()=0;
38  virtual int LoadPlate(int BRICK, int PLATE, const char *mapext, int nAttempts=1)=0;
39  virtual void SetParameter(const char* Object, const char* Parameter, const char* Value)=0;
40  virtual void SetClusterThresholds(int TOP, int BOT)=0;
41  virtual void SetOdysseyThresholds(int itop, int ibottom, int size, int TOP, int BOT)=0;
42  virtual int SetFragmentSize(int X, int Y)=0;
43  virtual void AsyncScanAreaS( int id1, int id2, int id3, int id4,
44  float x1, float x2, float y1, float y2, const char *fname)=0;
45  virtual void AsyncScanPreloadAreaS( int id1, int id2, int id3, int id4,
46  float x1, float x2, float y1, float y2, const char *fname,
47  float x1n, float x2n, float y1n, float y2n)=0;
48  virtual int AsyncWaitForScanResult()=0;
49  virtual void Print()=0;
50  ClassDef(EdbScanClientBase,1) // remote scanning from Bern
51 };
52 
53 //-------------------------------------------------------------------
55 {
56 protected:
57  TSocket* eSock; // socket for connection to scanning mashine
58  char eCMD[CMD_LEN]; // command line
59  char eMess[CMD_LEN]; // message line
60  char eMess1[CMD_LEN]; // message line
61 
62  float eNXview, eNYview; // the fragment size in view
63  float eXstep, eYstep; // between views in the fragment - to calculate the fragment size
64 
66  int eMAXFAILS; // the max number for predictions failed to scan before break
67  int ePORT; // port number where ScanDriver expect connection (default 1777)
68  TString eServer; // address of the scanning mashine
69 
70  TString eRawDirServer; // directory path for raw data files visible from the Scan Server (i.e. "o:/MIC5/tmp_SYSAL")
71  TString eRawDirClient; // directory path for raw data files visible from processing comp (i.e. "./raw/MIC5/tmp_SYSAL")
72  TString eProcTgtServer; // path for raw data files visible from processing comp (i.e. "o:/MIC5/b123456/p012/123456.12.1.1000.raw.root")
73  TString eProcPthServer; // path for raw data files visible from processing comp (i.e. "o:/MIC5/")
74 
76 
77 public:
79  virtual ~EdbScanClientCommon();
80  void CloseSocket();
81  //common part
82  virtual int InitializeSocket();
83 
84  virtual int ScanPreloadAreaS( int id1, int id2, int id3, int id4,
85  float x1, float x2, float y1, float y2, const char *fname,
86  float x1n, float x2n, float y1n, float y2n);
87 // virtual int ScanAreaS( int id1, int id2, int id3, int id4,
88 // float x1, float y1, float x2, float y2, const char *fname);
89 // virtual int ScanAreasAsync(int id[4], EdbPattern &areas, EdbRun &run, const char* options="");
90  virtual int AddRWC_(EdbRun* run, char* rwcname, int bAddRWD=true, const char* options="");
91  //static int AddRWC__(EdbRun* run, char* rwcname, int bAddRWD=true, const char* options="");
92  // "short" version of brickID to be passed into sysal command line via BernScanDriver
93  virtual Short_t ShortBrick(Int_t brick){ return brick%10000; };
94  virtual int ConvertAreas(int id[4], EdbPattern &areas, EdbRun &run, const char* options="");
95 
96 
97  //protocol-specific part
98  virtual int ScanAreas(ScanType st, int id[4], EdbPattern &areas, EdbRun *run, const char* options="")=0;
99  virtual int UnloadPlate()=0;
100  virtual int LoadPlate(int BRICK, int PLATE, const char *mapext, int nAttempts=1)=0;
101  virtual void SetParameter(const char* Object, const char* Parameter, const char* Value)=0;
102  virtual void SetClusterThresholds(int TOP, int BOT)=0;
103  virtual void SetOdysseyThresholds(int itop, int ibottom, int size, int TOP, int BOT)=0;
104  virtual int SetFragmentSize(int X, int Y)=0;
105  virtual void AsyncScanAreaS( int id1, int id2, int id3, int id4,
106  float x1, float x2, float y1, float y2, const char *fname)=0;
107  virtual void AsyncScanPreloadAreaS( int id1, int id2, int id3, int id4,
108  float x1, float x2, float y1, float y2, const char *fname,
109  float x1n, float x2n, float y1n, float y2n)=0;
110  virtual int AsyncWaitForScanResult()=0;
111  virtual void Print()=0;
112 
113  virtual bool ServerCreatesTarget()=0;
114 
115  const char * GetCmd(){return eCMD; };
116  void SetCmd(const char* cmd_){
117  int len = strlen(cmd_);
118  if(len > CMD_LEN-1) len = CMD_LEN-1;
119  memcpy(eCMD, cmd_, len+1);//strcpy_s(eCMD, 256, cmd_); windows only :(
120  eCMD[len]=0;
121  };
122 
123  const char * GetMess(){return eMess; };
124  void SetMess(const char* mess_){
125  int len = strlen(mess_);
126  if(len > CMD_LEN-1) len = CMD_LEN-1;
127  memcpy(eMess, mess_, len+1);
128  eMess[len]=0;
129  };
130 
131  const char * GetMess1(){return eMess1; };
132  void SetMess1(const char* mess_){
133  int len = strlen(mess_);
134  if(len > CMD_LEN-1) len = CMD_LEN-1;
135  memcpy(eMess1, mess_, len+1);
136  eMess1[len]=0;
137  };
138 
139  float GetNXView(){return eNXview;};
140  void SetNXview(float nxview_){eNXview = nxview_;};
141 
142  float GetNYView(){return eNYview;};
143  void SetNYview(float nyview_){eNYview = nyview_;};
144 
145  float GetXstep(){return eXstep;};
146  void SetXstep(float xstep_){eXstep = xstep_;};
147 
148  float GetYstep(){return eYstep;};
149  void SetYstep(float ystep_){eYstep = ystep_;};
150 
152  void SetMaxAttempts(int attempts_){eMAXSCANATTEMPTS = attempts_;};
153 
154  int GetMaxFails(){return eMAXFAILS;};
155  void SetMaxFails(int fails_){eMAXFAILS = fails_;};
156 
157  int GetPort(){return ePORT;};
158  void SetPort(int port_){ePORT = port_;};
159 
160  const char * GetServer(){return eServer.Data(); };
161  void SetServer(const char* server_){
162  eServer = server_;
163  };
164 
165  const char * GetRawDirServer(){return eRawDirServer.Data(); };
166  void SetRawDirServer(const char* rawdirserver_){
167  eRawDirServer = rawdirserver_;
168  };
169 
170  const char * GetRawDirClient(){return eRawDirClient.Data(); };
171  void SetRawDirClient(const char* rawdirclient_){
172  eRawDirClient = rawdirclient_;
173  };
174 
175  const char * GetProcTgtServer(){return eProcTgtServer.Data(); };
176  void SetProcTgtServer(const char* prctgtserver_){
177  eProcTgtServer = prctgtserver_;
178  };
179 
180  const char * GetProcPthServer(){return eProcPthServer.Data(); };
181  void SetProcPthServer(const char* prcpthserver_){
182  eProcPthServer = prcpthserver_;
183  };
184 
185  const char * GetServerCreatedRunName(){return eServerCreatedRunName.Data();};
186 
187  ClassDef(EdbScanClientBase,1) // remote scanning from Bern
188 };
189 
190 //-------------------------------------------------------------------
191 
192 #endif /* ROOT_EdbScanClientBase */
#define CMD_LEN
Definition: EdbScanClientBase.h:12
BRICK brick
Definition: RecDispMC.C:103
Definition: EdbPattern.h:280
Definition: EdbRun.h:74
Definition: EdbScanClientBase.h:14
virtual void Print()=0
EdbScanClientBase()
Definition: EdbScanClientBase.h:17
virtual void AsyncScanAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname)=0
virtual int AddRWC_(EdbRun *run, char *rwcname, int bAddRWD=true, const char *options="")=0
virtual int ConvertAreas(int id[4], EdbPattern &areas, EdbRun &run, const char *options="")=0
virtual int AsyncWaitForScanResult()=0
virtual void AsyncScanPreloadAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname, float x1n, float x2n, float y1n, float y2n)=0
virtual void SetOdysseyThresholds(int itop, int ibottom, int size, int TOP, int BOT)=0
virtual void SetClusterThresholds(int TOP, int BOT)=0
virtual void SetParameter(const char *Object, const char *Parameter, const char *Value)=0
virtual int LoadPlate(int BRICK, int PLATE, const char *mapext, int nAttempts=1)=0
virtual Short_t ShortBrick(Int_t brick)=0
virtual int ScanAreas(ScanType st, int id[4], EdbPattern &areas, EdbRun *run, const char *options="")=0
virtual int SetFragmentSize(int X, int Y)=0
virtual int InitializeSocket()=0
ScanType
Definition: EdbScanClientBase.h:16
@ stPred
Definition: EdbScanClientBase.h:16
@ stVolume
Definition: EdbScanClientBase.h:16
virtual int ScanPreloadAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname, float x1n, float x2n, float y1n, float y2n)=0
virtual int UnloadPlate()=0
virtual ~EdbScanClientBase()
Definition: EdbScanClientBase.h:18
Definition: EdbScanClientBase.h:55
TString eProcTgtServer
Definition: EdbScanClientBase.h:72
const char * GetRawDirClient()
Definition: EdbScanClientBase.h:170
float eNXview
Definition: EdbScanClientBase.h:62
void SetNXview(float nxview_)
Definition: EdbScanClientBase.h:140
virtual int LoadPlate(int BRICK, int PLATE, const char *mapext, int nAttempts=1)=0
int GetPort()
Definition: EdbScanClientBase.h:157
float GetNXView()
Definition: EdbScanClientBase.h:139
void CloseSocket()
Definition: EdbScanClientBase.cxx:40
char eMess[CMD_LEN]
Definition: EdbScanClientBase.h:59
void SetProcTgtServer(const char *prctgtserver_)
Definition: EdbScanClientBase.h:176
void SetMaxAttempts(int attempts_)
Definition: EdbScanClientBase.h:152
const char * GetCmd()
Definition: EdbScanClientBase.h:115
void SetPort(int port_)
Definition: EdbScanClientBase.h:158
virtual void SetParameter(const char *Object, const char *Parameter, const char *Value)=0
virtual int ScanPreloadAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname, float x1n, float x2n, float y1n, float y2n)
Definition: EdbScanClientBase.cxx:61
void SetMaxFails(int fails_)
Definition: EdbScanClientBase.h:155
virtual void AsyncScanAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname)=0
virtual int InitializeSocket()
Definition: EdbScanClientBase.cxx:48
TString eRawDirClient
Definition: EdbScanClientBase.h:71
void SetProcPthServer(const char *prcpthserver_)
Definition: EdbScanClientBase.h:181
float eYstep
Definition: EdbScanClientBase.h:63
const char * GetMess1()
Definition: EdbScanClientBase.h:131
virtual int AddRWC_(EdbRun *run, char *rwcname, int bAddRWD=true, const char *options="")
Definition: EdbScanClientBase.cxx:162
void SetCmd(const char *cmd_)
Definition: EdbScanClientBase.h:116
const char * GetServerCreatedRunName()
Definition: EdbScanClientBase.h:185
void SetServer(const char *server_)
Definition: EdbScanClientBase.h:161
int ePORT
Definition: EdbScanClientBase.h:67
virtual int AsyncWaitForScanResult()=0
const char * GetServer()
Definition: EdbScanClientBase.h:160
float eXstep
Definition: EdbScanClientBase.h:63
char eMess1[CMD_LEN]
Definition: EdbScanClientBase.h:60
void SetMess1(const char *mess_)
Definition: EdbScanClientBase.h:132
void SetYstep(float ystep_)
Definition: EdbScanClientBase.h:149
virtual int UnloadPlate()=0
void SetRawDirServer(const char *rawdirserver_)
Definition: EdbScanClientBase.h:166
const char * GetRawDirServer()
Definition: EdbScanClientBase.h:165
float GetNYView()
Definition: EdbScanClientBase.h:142
const char * GetProcPthServer()
Definition: EdbScanClientBase.h:180
virtual Short_t ShortBrick(Int_t brick)
Definition: EdbScanClientBase.h:93
virtual ~EdbScanClientCommon()
Definition: EdbScanClientBase.cxx:36
void SetXstep(float xstep_)
Definition: EdbScanClientBase.h:146
virtual void SetOdysseyThresholds(int itop, int ibottom, int size, int TOP, int BOT)=0
virtual int SetFragmentSize(int X, int Y)=0
virtual int ConvertAreas(int id[4], EdbPattern &areas, EdbRun &run, const char *options="")
Definition: EdbScanClientBase.cxx:143
int GetMaxAttempts()
Definition: EdbScanClientBase.h:151
const char * GetProcTgtServer()
Definition: EdbScanClientBase.h:175
float GetYstep()
Definition: EdbScanClientBase.h:148
TString eServer
Definition: EdbScanClientBase.h:68
void SetNYview(float nyview_)
Definition: EdbScanClientBase.h:143
const char * GetMess()
Definition: EdbScanClientBase.h:123
virtual void AsyncScanPreloadAreaS(int id1, int id2, int id3, int id4, float x1, float x2, float y1, float y2, const char *fname, float x1n, float x2n, float y1n, float y2n)=0
void SetRawDirClient(const char *rawdirclient_)
Definition: EdbScanClientBase.h:171
TString eProcPthServer
Definition: EdbScanClientBase.h:73
int eMAXFAILS
Definition: EdbScanClientBase.h:66
char eCMD[CMD_LEN]
Definition: EdbScanClientBase.h:58
virtual int ScanAreas(ScanType st, int id[4], EdbPattern &areas, EdbRun *run, const char *options="")=0
float eNYview
Definition: EdbScanClientBase.h:62
void SetMess(const char *mess_)
Definition: EdbScanClientBase.h:124
TString eServerCreatedRunName
Definition: EdbScanClientBase.h:75
int GetMaxFails()
Definition: EdbScanClientBase.h:154
TString eRawDirServer
Definition: EdbScanClientBase.h:70
virtual void SetClusterThresholds(int TOP, int BOT)=0
float GetXstep()
Definition: EdbScanClientBase.h:145
virtual bool ServerCreatesTarget()=0
int eMAXSCANATTEMPTS
Definition: EdbScanClientBase.h:65
TSocket * eSock
Definition: EdbScanClientBase.h:57
virtual void Print()=0
EdbRun * run
Definition: check_raw.C:38
const char * fname
Definition: mc2raw.cxx:41
Double_t X
Definition: tlg2pattern.C:77
Double_t Y
Definition: tlg2pattern.C:77
int PLATE
Definition: shower_btr.C:18
Definition: RecDispMC.C:95
@ TOP
Definition: tlg2pattern.C:37
@ BOT
Definition: tlg2pattern.C:37