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

mswCONTROL.h

Go to the documentation of this file.
00001 #ifndef mswCONTROL_H
00002 #define mswCONTROL_H
00003 /*******************************************************************************
00004 * E.S.O. - VLT project
00005 *
00006 * "@(#) $Id: mswCONTROL.h,v 1.115 2003/11/12 14:33:40 vltsccm Exp $"
00007 *
00008 * who       when      what
00009 * --------  --------  ----------------------------------------------
00010 * rkarban 2002-12-13 created
00011 */
00012 
00013 /************************************************************************
00014  *
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 "msw.h"
00023 #include "evhDB_TASK.h"
00024 #include "evhCOMMAND.h"
00025 #include "evhDB_SYNC.h"
00026 #include "mswMOD_LIST_MANAGER.h"
00027 #include "mswINS_CONFIG_TABLE.h"
00028 #include "mswEVAL_STATE.h"
00029 
00030 /* Include with error messages */
00031 #include "eccsTestTools.h"
00032 #include "mswErrors.h"
00033 
00034 #include "mswDefines.h"
00035 
00036 class mswCONTROL : public evhDB_TASK
00037 {
00038   public:
00039     mswCONTROL(mswMOD_LIST_MANAGER &listManager,
00040                     mswEVAL_STATE       &eval);
00041     mswCONTROL(const dbSYMADDRESS  dbPoint,
00042                     mswMOD_LIST_MANAGER &listManager,
00043                     mswEVAL_STATE       &eval);
00044     virtual ~mswCONTROL();
00045                     
00046     
00047     virtual ccsCOMPL_STAT Init();  
00048     ccsCOMPL_STAT Recover();
00049     
00050   protected:
00051     virtual evhCB_COMPL_STAT TcsColdStartCB      (msgMESSAGE &msg, void *udata);
00052     virtual evhCB_COMPL_STAT TcsStartCB          (msgMESSAGE &msg, void *udata);
00053     virtual evhCB_COMPL_STAT TcsStopCB           (msgMESSAGE &msg, void *udata);
00054     virtual evhCB_COMPL_STAT TcsShutdownCB       (msgMESSAGE &msg, void *udata);
00055     virtual evhCB_COMPL_STAT TcsPauseCB          (msgMESSAGE &msg, void *udata);
00056     virtual evhCB_COMPL_STAT TcsPresetCB         (msgMESSAGE &msg, void *udata);
00057     virtual evhCB_COMPL_STAT TcsEndPresetCB      (msgMESSAGE &msg, void *udata);
00058     virtual evhCB_COMPL_STAT TcsAlignCB          (msgMESSAGE &msg, void *udata);
00059     virtual evhCB_COMPL_STAT TcsEndAlignCB       (msgMESSAGE &msg, void *udata);
00060 
00061     // Overloading of inherited commands
00062     virtual evhCB_COMPL_STAT ExitCB(msgMESSAGE &msg, void *udata);
00063     virtual evhCB_COMPL_STAT InitCB(msgMESSAGE &msg, void *udata);
00064     virtual evhCB_COMPL_STAT MswDoneCB(msgMESSAGE &msg, void *udata);
00065     virtual evhCB_COMPL_STAT MswErrorCB(msgMESSAGE &msg,
00066           vltLOGICAL chFocusErr = ccsFALSE);
00067 
00068     virtual evhCB_COMPL_STAT CompletedCB(msgMESSAGE &,void *);
00069     virtual evhCB_COMPL_STAT ErrorCB(msgMESSAGE &,void *);
00070     virtual evhCB_COMPL_STAT TimeoutCB(msgMESSAGE &,void *);
00071 
00072     vltLOGICAL    CommandInProgress(msgMESSAGE &msg);
00073     ccsCOMPL_STAT GetState(vltINT32 &stateValue);
00074     ccsCOMPL_STAT GetState(vltINT32 &stateValue,vltINT32 &subStateValue);
00075     ccsCOMPL_STAT SetSubState(vltINT32 subStateValue);
00076 
00077     mswMOD_LIST_MANAGER   &modListManager;
00078 
00079     msgMESSAGE            mswMsg;                   
00080     mswEVAL_STATE         &evalState;
00081 
00082   private:
00083 
00084     // Utilility methods to gather always identical pieces of code.
00085     ccsCOMPL_STAT ActivateSyncObj(int readyState);
00086 
00087     // The following methods take care correctly of error handling 
00088     ccsCOMPL_STAT BroadcastCommand(msgCMD cmdName, char *cmdBuf = "",
00089            vltINT8 phase = mswSEND_NO_PHASE);
00090 
00091     // don't make it virtual because each class uses its own version
00092     ccsCOMPL_STAT ConstructorInit();
00093 
00094     evhDB_SYNC            waitAllReady;
00095 
00096     // Configuration parameters (read from DB) in Init():
00097     vltINT32     readyTimeout;
00098     vltINT32     stopTimeout;
00099 };
00100 
00101 
00102 #endif 

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