00001 #ifndef mswCHANGE_FOCUS_VLT_H
00002 #define mswCHANGE_FOCUS_VLT_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __cplusplus
00023 #error This is a C++ include file and cannot be used from plain C
00024 #endif
00025
00026 #include "mswCHANGE_FOCUS.h"
00027
00028 #include "mswM3.h"
00029 #include "mswM4.h"
00030 #include "mswADROT.h"
00031 #include "mswADC.h"
00032 #include "mswALT.h"
00033 #include "mswTRKWS.h"
00034
00035 #include "tcsDB_SYNC_ERR_CHECK.h"
00036
00037 #define READY_TIMEOUT ".readyTimeout"
00038
00039 class mswCHANGE_FOCUS_VLT : public mswCHANGE_FOCUS
00040 {
00041 public:
00042 mswCHANGE_FOCUS_VLT(const dbSYMADDRESS dbName,
00043 mswMOD_LIST_MANAGER &listManager);
00044 ~mswCHANGE_FOCUS_VLT();
00045
00046 virtual ccsCOMPL_STAT Init();
00047
00048
00049 virtual ccsCOMPL_STAT Execute(msgMESSAGE &msg);
00050 virtual ccsCOMPL_STAT ReadMirrorsPos(vltINT32 *currFoc);
00051 virtual ccsCOMPL_STAT CheckModeSwitchingState(vltINT32 actState,
00052 vltINT32 actSubState);
00053
00054 protected:
00055 evhCB_COMPL_STAT ExecuteCB(msgMESSAGE &msg, void *);
00056
00057 ccsCOMPL_STAT FocusStandby();
00058 evhCB_COMPL_STAT FocusStandbyCB(msgMESSAGE &msg, void *);
00059
00060 ccsCOMPL_STAT ParkAdc();
00061 evhCB_COMPL_STAT ParkAdcCB(msgMESSAGE &msg, void *);
00062
00063 ccsCOMPL_STAT SwitchFocus();
00064 evhCB_COMPL_STAT SwitchFocusCB(msgMESSAGE &msg, void *);
00065
00066 ccsCOMPL_STAT FocusOnline();
00067 evhCB_COMPL_STAT FocusOnlineCB(msgMESSAGE &msg, void *);
00068
00069 ccsCOMPL_STAT FocusStatus();
00070 evhCB_COMPL_STAT FocusStatusCB(msgMESSAGE &msg, void *);
00071
00072 ccsCOMPL_STAT InitOnChangeFocus();
00073
00074 ccsCOMPL_STAT Focus(vltINT32 focus);
00075 ccsCOMPL_STAT Focus(vltINT32 *focus);
00076
00077 ccsCOMPL_STAT LoadChangeFocusModules();
00078 ccsCOMPL_STAT LoadModuleData(const char *point,
00079 const char *name,
00080 const mswMOD_RECORD_ARRAY &modArray);
00081
00082 protected:
00083 vltINT32 actFocus,newFocus;
00084
00085 mswM3 m3;
00086 mswM4 m4;
00087 mswADROT adapter;
00088 mswADC adc;
00089 mswALT alt;
00090 mswTRKWS trkws;
00091
00092 tcsDB_SYNC_ERR_CHECK waitParkAdcReady;
00093 tcsDB_SYNC_ERR_CHECK waitSwitchFocusReady;
00094 tcsDB_SYNC_ERR_CHECK waitFocusStatusReady;
00095
00096 private:
00097 vltINT32 readyTimeout;
00098
00099 eccsERROR executeErrorStack;
00100 eccsERROR_CLASS executeErrorClass;
00101 };
00102
00103 #endif