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

atagwsCON_CFD.h

Go to the documentation of this file.
00001 #ifndef atactwsCON_CFD_H
00002 #define atactwsCON_CFD_H
00003 /******************************************************************************
00004 * E.S.O. - VLT project
00005 *
00006 * "@(#) $Id: atagwsCON_CFD.h,v 1.35 2003/11/26 08:07:43 vltsccm Exp $"
00007 *
00008 * who       when      what
00009 * --------  --------  --------------------------------------------------------
00010 * rkarban 2002-02-15 created
00011 */
00012 
00013 /******************************************************************************
00014  * Declaration of class atactwsCON_CFD.
00015  *-----------------------------------------------------------------------------
00016  */
00017 
00018 #ifndef __cplusplus
00019 #error This is a C++ include file and cannot be used from plain C
00020 #endif
00021 
00022 #include "atagws.h"
00023 #include "eccsErr.h"
00024 #include <fndOBJECT.h>
00025 #include <evhCALLBACK.h>
00026 #include <evhDB_TASK.h>
00027 #include <evhCOMMAND.h>
00028 #include "agwsCMD_HANDLER.h"
00029 #include "eccsDB_TABLE.h"
00030 #include "tcsCMD_PARALLEL.h"
00031 
00032 class atagwsBEAMPOS_DATA : public eccsDB_TABLE_RECORD
00033 {
00034   public:
00035     vltBYTES32    pos;
00036     vltDOUBLE     x, y;
00037 
00038     ccsCOMPL_STAT Unpack( void *pBuffer )
00039     {
00040   char *buffer = reinterpret_cast<char *>(pBuffer);
00041   memcpy( &pos, buffer, sizeof(pos) ); 
00042   buffer = buffer+sizeof(pos);
00043   memcpy( &x, buffer, sizeof(x) ); 
00044   buffer = buffer+sizeof(x);
00045   memcpy( &y, buffer, sizeof(y) ); 
00046   return(SUCCESS);
00047     }
00048     ccsCOMPL_STAT Pack( void *buffer )
00049     {
00050   int size = 0;
00051         dbFillBuf( (char**)&buffer, (char*)&pos, &size, dbBYTES32);
00052         dbFillBuf( (char**)&buffer, (char*)&x, &size, dbDOUBLE);
00053         dbFillBuf( (char**)&buffer, (char*)&y, &size, dbDOUBLE);
00054   return(SUCCESS);
00055     }
00056 };
00057 
00058 typedef enum {cfdPosSTOP, cfdPosHOLE, cfdPosMIRROR, cfdPosSPLIT, cfdPosVIEWER} atagwsCFD_POS;
00059 
00060 class atagwsCON_CFD : public eccsERROR_CLASS, fndOBJECT
00061 {
00062 public:
00063   atagwsCON_CFD(const dbSYMADDRESS dbRoot);
00064   virtual ~atagwsCON_CFD();
00065   
00066   ccsCOMPL_STAT Init();
00067   vltLOGICAL    IsActive();
00068 
00069 protected:
00070   ccsCOMPL_STAT SetDest (const char *modName, msgMESSAGE &msg);
00071   virtual evhCB_COMPL_STAT SetBeamCB(msgMESSAGE &msg, agwsCMD_HANDLER &);
00072   virtual evhCB_COMPL_STAT BeamCmdReplyCB(msgMESSAGE &, void*);
00073   virtual evhCB_COMPL_STAT BeamCmdErrorCB(msgMESSAGE &, void*);
00074   
00075 private:
00076   dbSYMADDRESS dbPoint;
00077   evhCOMMAND   setBeam;
00078   agwsCMD_HANDLER setBeamCmdHandler;
00079   tcsCMD_PARALLEL beamCmd;
00080 };
00081 
00082 #endif // !atactwsCON_CFD_H

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