00001 #ifndef agwsCON_SERVER_H
00002 #define agwsCON_SERVER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef __cplusplus
00030 #error This is a C++ include file and cannot be used from plain C
00031 #endif
00032
00033 #include "agws.h"
00034 #include "agwsCON_CAT.h"
00035 #include "agwsGUIDE_STAR.h"
00036 #include "agwsCMD_PARALLEL.h"
00037 #include "evhDB_TASK.h"
00038 #include "evhDB_LIST_COMMAND.h"
00039
00040 #include "agwsCON_SETUP.h"
00041
00042 class agwsCON_SERVER_STARTAG : public agwsCMD_PARALLEL
00043 {
00044 public:
00045 agwsCON_SERVER_STARTAG();
00046
00047 virtual ccsCOMPL_STAT Send(msgMESSAGE &orgMsg, vltINT32 numMsgs, msgMESSAGE msg[]);
00048
00049 virtual evhCB_COMPL_STAT ReplyCB(msgMESSAGE &msg, void *udata);
00050 virtual evhCB_COMPL_STAT ErrReplyCB(msgMESSAGE &msg, void *);
00051 virtual evhCB_COMPL_STAT TimeoutCB(msgMESSAGE &msg, void *);
00052
00053 virtual evhCB_COMPL_STAT ErrCorrCB(msgMESSAGE &msg, void *udata);
00054
00055 private:
00056 vltLOGICAL lookForFirstReply;
00057 msgPROCESSID agServerProcId;
00058 };
00059
00060 class agwsCON_SERVER_OBJCLOS : public agwsCMD_PARALLEL
00061 {
00062 public:
00063 agwsCON_SERVER_OBJCLOS();
00064
00065 ccsCOMPL_STAT Init();
00066
00067 evhCB_COMPL_STAT ReplyCB(msgMESSAGE &msg, void *udata);
00068
00069 evhCB_COMPL_STAT WaitReplyCB(msgMESSAGE &msg, void *);
00070 ccsCOMPL_STAT Reset();
00071
00072 private:
00073 evhCOMMAND waitCmd;
00074 ccsTIMEVAL waitTimeout;
00075 };
00076
00077 class agwsCON_SERVER : public evhDB_TASK
00078 {
00079 public:
00080 agwsCON_SERVER(const dbSYMADDRESS dbPoint,
00081 agwsCON_SETUP &conSetup);
00082 virtual ~agwsCON_SERVER();
00083
00084 virtual ccsCOMPL_STAT Init();
00085 virtual ccsCOMPL_STAT Reset();
00086
00087 virtual ccsCOMPL_STAT StartAg(msgMESSAGE &msg,
00088 fndOBJECT *obj,
00089 evhCB_METHOD reply,
00090 evhCB_METHOD errReply,
00091 evhCB_METHOD timeout = NULL,
00092 void *udata = NULL);
00093
00094 virtual ccsCOMPL_STAT StopAg(msgMESSAGE &msg,
00095 fndOBJECT *obj,
00096 evhCB_METHOD reply,
00097 evhCB_METHOD errReply,
00098 evhCB_METHOD timeout = NULL,
00099 void *udata = NULL);
00100
00101 virtual ccsCOMPL_STAT OffsAg(msgMESSAGE &msg,
00102 fndOBJECT *obj,
00103 evhCB_METHOD reply,
00104 evhCB_METHOD errReply,
00105 evhCB_METHOD timeout = NULL,
00106 void *udata = NULL);
00107
00108 virtual ccsCOMPL_STAT OffsTrkAd(msgMESSAGE &msg,
00109 fndOBJECT *obj,
00110 evhCB_METHOD reply,
00111 evhCB_METHOD errReply,
00112 evhCB_METHOD timeout = NULL,
00113 void *udata = NULL);
00114
00115 virtual ccsCOMPL_STAT ErrVector(msgMESSAGE &msg,
00116 fndOBJECT *obj,
00117 evhCB_METHOD reply,
00118 evhCB_METHOD errReply,
00119 evhCB_METHOD timeout = NULL,
00120 void *udata = NULL);
00121
00122 virtual ccsCOMPL_STAT Setup(fndOBJECT *obj,
00123 evhCB_METHOD reply,
00124 evhCB_METHOD errReply,
00125 evhCB_METHOD timeout = NULL,
00126 void *udata = NULL);
00127
00128 virtual ccsCOMPL_STAT Stop(msgMESSAGE &msg,
00129 fndOBJECT *obj,
00130 evhCB_METHOD reply,
00131 evhCB_METHOD errReply,
00132 evhCB_METHOD timeout = NULL,
00133 void *udata = NULL);
00134
00135 virtual ccsCOMPL_STAT StrtTccd(msgMESSAGE &msg,
00136 fndOBJECT *obj,
00137 evhCB_METHOD reply,
00138 evhCB_METHOD errReply,
00139 evhCB_METHOD timeout = NULL,
00140 void *udata = NULL);
00141
00142 virtual ccsCOMPL_STAT StopTccd(msgMESSAGE &msg,
00143 fndOBJECT *obj,
00144 evhCB_METHOD reply,
00145 evhCB_METHOD errReply,
00146 evhCB_METHOD timeout = NULL,
00147 void *udata = NULL);
00148
00149 virtual ccsCOMPL_STAT XY2AD(vltDOUBLE x, vltDOUBLE y,
00150 msgMESSAGE &msg,
00151 fndOBJECT *obj,
00152 evhCB_METHOD reply,
00153 evhCB_METHOD errReply,
00154 evhCB_METHOD timeout = NULL,
00155 void *udata = NULL);
00156
00157 virtual const char *GuideMode(void);
00158
00159 virtual void GuideMode(const char *guideMode);
00160
00161 virtual vltDOUBLE CcdPixSize();
00162
00163 protected:
00164 virtual ccsCOMPL_STAT SetCallbacks(agwsCMD_PARALLEL *cmd,
00165 fndOBJECT *obj,
00166 evhCB_METHOD reply,
00167 evhCB_METHOD errReply,
00168 evhCB_METHOD timeout,
00169 eccsTIMEVAL time,
00170 void *udata = NULL);
00171
00172
00173
00174
00175 virtual evhCB_COMPL_STAT PixSizeCB(msgMESSAGE &msg, void *udata);
00176 virtual evhCB_COMPL_STAT PixSizeErrorCB(msgMESSAGE &msg, void *udata);
00177
00178
00179 agwsCON_SERVER_STARTAG startAgCmd;
00180 agwsCMD_PARALLEL stopAgCmd;
00181 agwsCMD_PARALLEL offsAgCmd;
00182 agwsCMD_PARALLEL offsTrkAdCmd;
00183 evhCOMMAND xy2adCmd;
00184 agwsCON_SERVER_OBJCLOS objClosCmd;
00185 agwsCMD_PARALLEL setupCmd;
00186 agwsCMD_PARALLEL startCmd;
00187 agwsCMD_PARALLEL stopCmd;
00188
00189 agwsCMD_PARALLEL offsProbeAdCmd;
00190
00191 agwsCON_CAT *gsCatalogue;
00192 agwsCON_SETUP &agwsConSetup;
00193
00194 ccsTIMEVAL startagTimeout;
00195 ccsTIMEVAL stopagTimeout;
00196 ccsTIMEVAL offsagTimeout;
00197 ccsTIMEVAL offsTrkAdTimeout;
00198 ccsTIMEVAL xy2adTimeout;
00199 ccsTIMEVAL setupTimeout;
00200 ccsTIMEVAL objclosTimeout;
00201
00202 char guideMode[agwsMODE_STR_MAX_LEN + 1];
00203
00204 private:
00205
00206
00207
00208
00209
00210 vltDOUBLE ccdPixSize;
00211 evhCOMMAND ccdPixSizeCommand;
00212
00213
00214 };
00215
00216 #endif // !agwsCON_SERVER_H