00001 #ifndef mswCONTROL_H
00002 #define mswCONTROL_H
00003
00004
00005
00006
00007
00008
00009
00010
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
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
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
00085 ccsCOMPL_STAT ActivateSyncObj(int readyState);
00086
00087
00088 ccsCOMPL_STAT BroadcastCommand(msgCMD cmdName, char *cmdBuf = "",
00089 vltINT8 phase = mswSEND_NO_PHASE);
00090
00091
00092 ccsCOMPL_STAT ConstructorInit();
00093
00094 evhDB_SYNC waitAllReady;
00095
00096
00097 vltINT32 readyTimeout;
00098 vltINT32 stopTimeout;
00099 };
00100
00101
00102 #endif