00001 #ifndef trkwsCON_MAIN_TASK_H
00002 #define trkwsCON_MAIN_TASK_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 #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
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
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
00192 vltINT32 offsetTimeout;
00193 vltINT32 presetTimeout;
00194 vltINT32 setupTimeout;
00195 vltINT32 transferTimeout;
00196 vltLOGICAL checkLimits;
00197 };
00198
00199
00200
00201 #endif