00001 #ifndef prsAH_MAIN_TASK_H
00002 #define prsAH_MAIN_TASK_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __cplusplus
00022 #error This is a C++ include file and cannot be used from plain C
00023 #endif
00024
00025 #include "prs.h"
00026 #include "evhDB_TASK.h"
00027 #include "evhCOMMAND.h"
00028 #include "fndSTRING.h"
00029
00030
00031 #include "prsAH_TRACK.h"
00032 #include "prsAH_GUIDE.h"
00033 #include "prsAH_AO.h"
00034 #include "prsAH_STD_MOD.h"
00035 #include "tcsDB_SYNC_ERR_CHECK.h"
00036
00037 class prsAH_MAIN_TASK : public evhDB_TASK
00038 {
00039 public:
00040 prsAH_MAIN_TASK(const dbSYMADDRESS dbPoint,
00041 prsAH_TRACK &track,
00042 prsAH_GUIDE &guide,
00043 prsAH_AO &ao,
00044 prsAH_STD_MOD &stdMod);
00045 ~prsAH_MAIN_TASK();
00046
00047 virtual evhCB_COMPL_STAT ExitCB(msgMESSAGE &msg, void *udata);
00048 virtual evhCB_COMPL_STAT InitCB(msgMESSAGE &msg, void *udata);
00049 virtual evhCB_COMPL_STAT OnlineCB(msgMESSAGE &msg, void *udata);
00050 virtual evhCB_COMPL_STAT PresetCB(msgMESSAGE &msg, void *udata);
00051 virtual evhCB_COMPL_STAT SaveCurrSetupCB(msgMESSAGE &msg, void *udata);
00052 virtual evhCB_COMPL_STAT StopCB(msgMESSAGE &msg, void *udata);
00053
00054 ccsCOMPL_STAT Init();
00055 ccsCOMPL_STAT Recover();
00056
00057 vltINT32 ReadyTimeout();
00058 vltINT32 ModeSwitchTimeout();
00059
00060 protected:
00061 virtual evhCB_COMPL_STAT ExePresetCB(msgMESSAGE &msg, void *udata) = 0;
00062 virtual evhCB_COMPL_STAT ErrorSwitchModeCB(msgMESSAGE &msg, void *udata);
00063
00064 virtual evhCB_COMPL_STAT ReadyCB(msgMESSAGE &msg, void *udata);
00065 virtual evhCB_COMPL_STAT ErrorCB(msgMESSAGE &msg, void *udata);
00066
00067 virtual evhCB_COMPL_STAT StopOKCB(msgMESSAGE &msg, void *udata);
00068 virtual evhCB_COMPL_STAT ErrorStopCB(msgMESSAGE &msg, void *udata);
00069
00070 virtual ccsCOMPL_STAT PresetAbort(vltINT16 errorNumber);
00071
00072 virtual ccsCOMPL_STAT PresetAbortPermitted (vltLOGICAL &permitted, fndSTRING &reason);
00073
00074 virtual ccsCOMPL_STAT Reset();
00075
00076 protected:
00077 prsAH_TRACK &track;
00078 prsAH_GUIDE &guide;
00079 prsAH_AO &ao;
00080 prsAH_STD_MOD &stdMod;
00081
00082 evhDB_COMMAND switchMode;
00083 evhDB_COMMAND switchModeEnd;
00084 tcsDB_SYNC_ERR_CHECK waitAllReady;
00085 tcsDB_SYNC_ERR_CHECK waitStopReady;
00086
00087 oslxSETUP *currentSetupFile;
00088
00089 private:
00090 msgMESSAGE presetMsg;
00091 msgMESSAGE objectMsg;
00092
00093 vltBYTES64 currentSetup;
00094 vltINT32 readyTimeout;
00095 vltINT32 modeSwitchTimeout;
00096 };
00097
00098
00099 #endif