Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

agwsCON_SERVER.h

Go to the documentation of this file.
00001 #ifndef agwsCON_SERVER_H
00002 #define agwsCON_SERVER_H
00003 /******************************************************************************
00004 * E.S.O. - VLT project
00005 *
00006 * "@(#) $Id: agwsCON_SERVER.h,v 1.182 2003/11/12 08:34:09 vltsccm Exp $"
00007 *
00008 * who       when      what
00009 * --------  --------  --------------------------------------------------------
00010 * gchiozzi 2000-07-27 Moved handling of pix size here from fswsServer.
00011 * rkarban   18/07/98  add method ConvertXY2AD
00012 * rkarban   18/07/98  add methods and attributes to send OFFSAD to trk
00013 * rkarban   24/06/98  add two access methods for the guideMode
00014 * gchiozzi  27/02/98  Data members are now protected. Methods are virtual.
00015 * gchiozzi  27/02/98  Packed callback setting and command sending methods in a single one
00016 * gchiozzi  08/01/98  agwsCON_SERVER_STARTAG: Implem. of ErrReplyCB() and TimeoutCB()
00017 * gchiozzi  09/12/97  Removed orgMsg data member. Not necessary and wrongly used.
00018 * gchiozzi  11/11/97  Added methods to handle Start and Stop of just TCCD
00019 * gchiozzi  16/10/97  Removed get rotator angle command. Uses tif.
00020 * gchiozzi  01/10/97  Renamed DetGs() to ErrVector()
00021 * gchiozzi  29/02/96  created
00022 */
00023 
00024 /******************************************************************************
00025  * Definition of the agwsCON_SERVER class.
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; // flag if first of periodic replies pending
00057     msgPROCESSID    agServerProcId;    // agServer CCS process ID
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;      // command to TCCD to wait for exposure completion
00074     ccsTIMEVAL waitTimeout;  // WAIT command timeout
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      * Internal callbacks for PIXSIZE command
00174      */
00175     virtual evhCB_COMPL_STAT PixSizeCB(msgMESSAGE &msg, void *udata);
00176     virtual evhCB_COMPL_STAT PixSizeErrorCB(msgMESSAGE &msg, void *udata);
00177 
00178     // Protected Data
00179     agwsCON_SERVER_STARTAG  startAgCmd;     // STARTAG transfer command object
00180     agwsCMD_PARALLEL        stopAgCmd;      // STOPAG  transfer command object
00181     agwsCMD_PARALLEL        offsAgCmd;      // OFFSAG  transfer command object
00182     agwsCMD_PARALLEL        offsTrkAdCmd;   // trk OFFSAD  transfer command object
00183     evhCOMMAND              xy2adCmd;       // XY2AD  transfer command object
00184     agwsCON_SERVER_OBJCLOS  objClosCmd;     // OBJCLOS transfer command object
00185     agwsCMD_PARALLEL        setupCmd;       // SETUP   transfer command object
00186     agwsCMD_PARALLEL        startCmd;       // START   transfer command object
00187     agwsCMD_PARALLEL        stopCmd;        // STOP    transfer command object
00188 
00189     agwsCMD_PARALLEL        offsProbeAdCmd; // admain OFFSAD command TEST!!!!!!!
00190 
00191     agwsCON_CAT          *gsCatalogue;   // internal guide-star catalogue
00192     agwsCON_SETUP          &agwsConSetup;  // Reference to setup file handling obj
00193 
00194     ccsTIMEVAL              startagTimeout; // STARTAG transfer command timeout
00195     ccsTIMEVAL              stopagTimeout;  // STOPAG transfer command timeout
00196     ccsTIMEVAL              offsagTimeout;  // OFFSAG transfer command timeout
00197     ccsTIMEVAL              offsTrkAdTimeout;  // trk OFFSAD transfer command timeout
00198     ccsTIMEVAL              xy2adTimeout;  // XY2AD transfer command timeout
00199     ccsTIMEVAL              setupTimeout;   // SETUP transfer command timeout
00200     ccsTIMEVAL              objclosTimeout; // OBJCLOS transfer command timeout
00201 
00202     char                    guideMode[agwsMODE_STR_MAX_LEN + 1];
00203 
00204 private:
00205 
00206     /*
00207      * Pixel size is initialised at init time sending 
00208      * the PIXSIZE command to the proper guide LCU
00209      */
00210     vltDOUBLE    ccdPixSize;
00211     evhCOMMAND   ccdPixSizeCommand;
00212 
00213 
00214 };
00215 
00216 #endif // !agwsCON_SERVER_H

Generated on Wed Dec 3 14:52:06 2003 for ATCS API by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001