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

trkwsCON_MAIN_TASK.h

Go to the documentation of this file.
00001 #ifndef trkwsCON_MAIN_TASK_H
00002 #define trkwsCON_MAIN_TASK_H
00003 /*******************************************************************************
00004 * E.S.O. - VLT project
00005 
00006 *
00007 * "@(#) $Id: trkwsCON_MAIN_TASK.h,v 1.157 2003/10/17 14:00:40 vltsccm Exp $"
00008 *
00009 * who       when      what
00010 * --------  --------  ----------------------------------------------
00011 * rkarban 2001-01-31 add setdut SELFCMD
00012 * tcsmgr2 1999-11-30 Added restore attribute method.
00013 * rkarban  08/09/98  remove code for guide probe control
00014 * gchiozzi  19/08/96  Restructured handling of position calculation event
00015 * gchiozzi  02/08/96  Added returned valid substate from CheckSubstate
00016 * gchiozzi  30/07/96  Added OnlineCB
00017 * mnastvog  26/03/96  Added support for GETREM command
00018 * gchiozzi  31/08/95  Callbacks that can receive messages or database events, receivemsgRAW_MESSAGE &msg 
00019 * kwirenst  02/06/95  created
00020 */
00021 
00022 /************************************************************************
00023  *
00024  *----------------------------------------------------------------------
00025  */
00026 
00027 
00028 #ifndef __cplusplus
00029 #error This is a C++ include file and cannot be used from plain C
00030 #endif
00031 
00032 #include "trkws.h"
00033 #include "trkwsTRANSFER.h"   
00034 #include "trkwsTRANSFER_SER.h"   
00035 #include "trkwsNEW_PCM_SER.h"   
00036 #include "trkwsTRANSFER_ASM.h"
00037 #include "trkwsRING_BUFFER.h"
00038 #include "trkwsREM_TRK_LIST_COMMAND.h"   
00039 #include "trkwsMANAGE_LIST.h"   
00040 #include "trkwsPOS_CALC.h"
00041 #include "evhDB_TASK.h"
00042 #include "evhSTD_COMMANDS.h"
00043 #include "evhDB_COMMAND.h"
00044 #include "tcsDB_SYNC_ERR_CHECK.h"
00045 #include "fndString.h"
00046 #include "math.h"
00047 #include "mswFOCUS.h"
00048 #include "trkwsFOCUS_DATA.h"
00049 
00050 #ifndef TARGET_TCS
00051 #error TARGET_TCS has to be define to either VLT_TCS or NTT_TCS,
00052 #error have to define correct focus handling object
00053 #endif
00054 
00055 #if TARGET_TCS == VLT_TCS
00056 #include "mswCHANGE_FOCUS_VLT.h"
00057 #endif
00058 
00059 #if TARGET_TCS == NTT_TCS
00060 #include "mswCHANGE_FOCUS_NTT.h"
00061 #endif
00062 
00063 extern "C" {
00064 #include "cmd.h"
00065 #include "tcsVcc.h"
00066 #include "slalib.h"
00067 #include "slamac.h"
00068 }
00069 class trkwsCON_MAIN_TASK : public evhDB_TASK
00070 {
00071   public:
00072     trkwsCON_MAIN_TASK(const dbSYMADDRESS  dbPoint,
00073            trkwsFOCUS_DATA &focusData,
00074            trkwsMANAGE_LIST &LCUList,
00075            mswFOCUS &focus);
00076    ~trkwsCON_MAIN_TASK();
00077 
00078     // Callbacks for public commands
00079 
00080    virtual evhCB_COMPL_STAT OffsetsCB(msgMESSAGE &msg, void *udata);
00081    virtual evhCB_COMPL_STAT PresetStarCB(msgMESSAGE &msg, void *udata);
00082    virtual evhCB_COMPL_STAT PresetFixCB(msgMESSAGE &msg, void *udata);
00083    virtual evhCB_COMPL_STAT PresetNameCB(msgMESSAGE &msg, void *udata);
00084    virtual evhCB_COMPL_STAT TransfersCB(msgMESSAGE &msg, void *udata);
00085    virtual evhCB_COMPL_STAT NewPcmCB(msgMESSAGE &msg, void *udata);
00086    virtual evhCB_COMPL_STAT SetupsCB(msgMESSAGE &msg, void *udata);
00087    virtual evhCB_COMPL_STAT ReadAsmCB(msgMESSAGE &msg, void *udata);
00088    virtual evhCB_COMPL_STAT ReadPosCB(msgMESSAGE &msg, void *udata);
00089    virtual evhCB_COMPL_STAT ReadSidCB(msgMESSAGE &msg, void *udata);
00090    virtual evhCB_COMPL_STAT SetRLimCB(msgMESSAGE &msg, void *udata);
00091    virtual evhCB_COMPL_STAT GetRemTrkTimeCB(msgMESSAGE &msg, void *udata);
00092    virtual evhCB_COMPL_STAT SetFocusStationCB(msgMESSAGE &msg, void *udata);
00093 
00094     ccsCOMPL_STAT    Init(evhCALLBACK *okCb = NULL, evhCALLBACK *errorCb = NULL,
00095         vltLOGICAL pollFocusIfNotReady = ccsTRUE);
00096     ccsCOMPL_STAT    Recover();
00097 
00098     // Overloading of inherited commands
00099 
00100    virtual evhCB_COMPL_STAT ExitCB(msgMESSAGE &msg, void *udata);
00101    virtual evhCB_COMPL_STAT InitCB(msgMESSAGE &msg, void *udata);
00102    virtual evhCB_COMPL_STAT OnlineCB(msgMESSAGE &msg, void *udata);
00103 
00104   protected:
00105    virtual evhCB_COMPL_STAT NotImplCB(msgMESSAGE &msg, void *udata);
00106 
00107    virtual evhCB_COMPL_STAT StartupOKCB(msgMESSAGE &msg, void *udata);
00108    virtual evhCB_COMPL_STAT StartupErrorCB(msgMESSAGE &msg, void *udata);
00109 
00110    virtual evhCB_COMPL_STAT InitOKCB(msgMESSAGE &msg, void *udata);
00111    virtual evhCB_COMPL_STAT InitErrorCB(msgMESSAGE &msg, void *udata);
00112 
00113    virtual evhCB_COMPL_STAT OffsetsOKCB(msgRAW_MESSAGE &msg, void *udata);
00114    virtual evhCB_COMPL_STAT OffsetsErrorCB(msgRAW_MESSAGE &msg, void *udata);
00115 
00116    virtual evhCB_COMPL_STAT PresetsOKCB(msgRAW_MESSAGE &msg, void *udata);
00117    virtual evhCB_COMPL_STAT PresetStarUpdFocOKCB(msgRAW_MESSAGE &msg, void *udata);
00118    virtual evhCB_COMPL_STAT PresetStarUpdRotOKCB(msgRAW_MESSAGE &msg, void *udata);
00119    virtual evhCB_COMPL_STAT PresetStarUpdOaxOKCB(msgRAW_MESSAGE &msg, void *udata);
00120    virtual evhCB_COMPL_STAT PresetsErrorCB(msgRAW_MESSAGE &msg, void *udata);
00121 
00122    virtual evhCB_COMPL_STAT GetRemOKCB(msgMESSAGE &msg, void *udata);
00123    virtual evhCB_COMPL_STAT GetRemErrorCB(msgMESSAGE &msg, void *udata);
00124 
00125    virtual evhCB_COMPL_STAT SetupsOKCB(msgMESSAGE &msg, void *udata);
00126    virtual evhCB_COMPL_STAT SetupsErrorCB(msgMESSAGE &msg, void *udata);
00127 
00128    virtual evhCB_COMPL_STAT SetDutOKCB(msgMESSAGE &msg, void *udata);
00129    virtual evhCB_COMPL_STAT SetDutErrorCB(msgMESSAGE &msg, void *udata);
00130 
00131    virtual vltLOGICAL IsOwnProcess(msgMESSAGE &msg);
00132    virtual void NewPresetProlog(msgMESSAGE &msg,void *udata);
00133 
00134    vltINT32      ReadModSubstate();
00135    vltINT32      ReadModState();
00136    ccsCOMPL_STAT CheckSubstate(msgMESSAGE &msg,vltINT32 substate, vltINT32 *valid=NULL);
00137    ccsCOMPL_STAT PresetAct(msgMESSAGE &msg, void *udata);
00138    ccsCOMPL_STAT ExpandCmd(msgMESSAGE &msg);
00139 
00140     trkwsFOCUS_DATA       &trkwsFocusData;
00141     trkwsMANAGE_LIST      &trkwsLCUList;
00142     mswFOCUS              &trkwsFocus;
00143     tcsDB_SYNC_ERR_CHECK  waitOffsets;
00144     tcsDB_SYNC_ERR_CHECK  waitPresets;
00145     trkwsTRANSFER         *transOffs;
00146     trkwsTRANSFER         *transPres;  
00147     trkwsTRANSFER_SER     *transRest;  
00148     trkwsNEW_PCM_SER     *transNewPcm;  
00149     trkwsTRANSFER_ASM     *transASM;  
00150     trkwsTRANSFER         *transGetRem;
00151     trkwsMANAGE_LIST      *manageLCUs;
00152     trkwsPOS_CALC         *posCalc;
00153   private:
00154     ccsCOMPL_STAT  BackupAttr  (const char *attr, vltDOUBLE value);
00155     ccsCOMPL_STAT  RestoreAttr (const char *attr, vltDOUBLE *value);
00156     ccsCOMPL_STAT CheckLimits (vltDOUBLE ra,
00157              vltDOUBLE de,
00158              vltBYTES4 syst,
00159              vltDOUBLE ep, 
00160              vltDOUBLE eq,
00161              vltDOUBLE pma, 
00162              vltDOUBLE pmd, 
00163              vltDOUBLE rv, 
00164              vltDOUBLE plx,
00165              vltBYTES8  type,
00166              vltLOGICAL *limitsOk);
00167 
00168     evhDB_COMMAND   setupCmd;
00169     msgMESSAGE      msg;  
00170     msgMESSAGE      setupMsg; 
00171     msgMESSAGE      getremMsg; 
00172     msgMESSAGE      initCBMsg; 
00173     vltLOGICAL      initPending;
00174     msgMESSAGE      offsPendMsg; 
00175     msgMESSAGE      offsNewMsg; 
00176     vltLOGICAL      offsPending;
00177     msgMESSAGE      presPendMsg; 
00178     msgMESSAGE      presNewMsg; 
00179     vltLOGICAL      presPending;
00180     msgMESSAGE      stopPendMsg; 
00181     msgMESSAGE      stopNewMsg; 
00182     vltLOGICAL      stopPending;
00183     vltLOGICAL      presAstro;
00184     dbSYMADDRESS    dbBasePoint;
00185     dbSYMADDRESS    dbDataPoint;
00186     dbSYMADDRESS    dbDataSetupPoint;
00187     dbSYMADDRESS    dbControlPoint;
00188     trkwsSELF_CMD   setdut;
00189     vltLOGICAL pollFocus;
00190 
00191     // Configuration parameters (read from DB) in Init():
00192     vltINT32     offsetTimeout;
00193     vltINT32     presetTimeout;
00194     vltINT32     setupTimeout;
00195     vltINT32     transferTimeout;
00196     vltLOGICAL   checkLimits;
00197 };
00198 
00199 
00200 
00201 #endif 

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