00001 #ifndef pomMEAS_MAIN_TASK_H
00002 #define pomMEAS_MAIN_TASK_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __cplusplus
00020 #error This is a C++ include file and cannot be used from plain C
00021 #endif
00022
00023 #include "pom.h"
00024
00025 #include "TcsLocalCatalog.h"
00026
00027
00028
00029
00030
00031 class pomMEAS_MAIN_TASK : public tcsSTATE
00032 {
00033 public:
00034 pomMEAS_MAIN_TASK(const dbSYMADDRESS dbRoot);
00035 virtual ~pomMEAS_MAIN_TASK();
00036 ccsCOMPL_STAT Recover();
00037
00038 virtual evhCB_COMPL_STAT InitCB(msgMESSAGE &msg, void *);
00039 virtual evhCB_COMPL_STAT ExitCB(msgMESSAGE &msg, void *);
00040 virtual evhCB_COMPL_STAT StopCB(msgMESSAGE &msg, void *);
00041 virtual evhCB_COMPL_STAT OnlineCB(msgMESSAGE &msg, void *);
00042 virtual evhCB_COMPL_STAT StandbyCB(msgMESSAGE &msg, void *);
00043 virtual evhCB_COMPL_STAT OffCB(msgMESSAGE &msg, void *);
00044 virtual evhCB_COMPL_STAT StatusCB(msgMESSAGE &msg, void *udata);
00045
00046 virtual evhCB_COMPL_STAT OutfileCB(msgMESSAGE &msg, void *);
00047 virtual evhCB_COMPL_STAT ClfileCB(msgMESSAGE &msg, void *);
00048 virtual evhCB_COMPL_STAT StoreCB(msgMESSAGE &msg, void *);
00049 virtual evhCB_COMPL_STAT PoinobjCB(msgMESSAGE &msg, void *);
00050 virtual evhCB_COMPL_STAT PoinextCB(msgMESSAGE &msg, void *);
00051
00052
00053 virtual evhCB_COMPL_STAT DefpcatCB(msgMESSAGE &msg, void *);
00054 virtual evhCB_COMPL_STAT CatlistCB(msgMESSAGE &msg, void *);
00055 virtual evhCB_COMPL_STAT LkupadCB(msgMESSAGE &msg, void *);
00056 virtual evhCB_COMPL_STAT ResetqCB(msgMESSAGE &msg, void *);
00057
00058
00059 protected:
00060 virtual ccsCOMPL_STAT Init();
00061 ccsCOMPL_STAT Stop();
00062 ccsCOMPL_STAT SwitchOff();
00063
00064 virtual evhCB_COMPL_STAT prsObject(void);
00065 ofstream outfile;
00066 TcsLocalCatalog *cat;
00067 AstroQuery *catq;
00068 TcsQueryResult *catqResult;
00069 TcsCatalogObject *currentObject;
00070 vltDOUBLE curRA, curDEC;
00071 vltINT16 curIndex;
00072
00073
00074 ccsCOMPL_STAT SendErrReplyCheck(tcsCMD_HANDLER& h) const {
00075 if (h.SendReply(ErrStack()) == FAILURE) {
00076 ErrAdd(tcsMOD,tcsERR_SEND_OK_REPLY,__FILE_LINE__,"");
00077 ErrStackClose();
00078 return FAILURE;
00079 }
00080 return SUCCESS;
00081 };
00082
00083 ccsCOMPL_STAT SendReplyCheck(tcsCMD_HANDLER& h,
00084 const char *buff, const int len=0,
00085 const vltLOGICAL last=ccsTRUE) {
00086 if (h.SendReply(buff,len,last) == FAILURE) {
00087 ErrAdd(tcsMOD,tcsERR_SEND_OK_REPLY,__FILE_LINE__,"");
00088 ErrStackClose();
00089 return FAILURE;
00090 }
00091 return SUCCESS;
00092 };
00093
00094
00095 evhCB_COMPL_STAT prsReplyCB(msgMESSAGE &msg, void *);
00096 evhCB_COMPL_STAT prsErrorCB(msgMESSAGE &msg, void *);
00097 evhCB_COMPL_STAT prsTimeoutCB(msgMESSAGE &msg, void *);
00098
00099 dbSYMADDRESS dbPoint;
00100
00101 char pointDir[256];
00102
00103 tcsCMD_HANDLER *initHandler;
00104 tcsCMD_HANDLER *exitHandler;
00105 tcsCMD_HANDLER *stopHandler;
00106 tcsCMD_HANDLER *onlineHandler;
00107 tcsCMD_HANDLER *standbyHandler;
00108 tcsCMD_HANDLER *offHandler;
00109 tcsCMD_HANDLER *statusHandler;
00110
00111 tcsCMD_HANDLER *outfileHandler;
00112 tcsCMD_HANDLER *clfileHandler;
00113 tcsCMD_HANDLER *storeHandler;
00114 tcsCMD_HANDLER *defpcatHandler;
00115 tcsCMD_HANDLER *catlistHandler;
00116 tcsCMD_HANDLER *poinobjHandler;
00117 tcsCMD_HANDLER *poinextHandler;
00118 tcsCMD_HANDLER *lkupadHandler;
00119 tcsCMD_HANDLER *resetqHandler;
00120
00121
00122 eccsDB_STRING prsTarget;
00123
00124
00125 tcsCMD_HANDLER *poinHandler;
00126
00127
00128
00129 eccsDB_INT32 measureCount;
00130
00131 void SplitHms(vltDOUBLE angle, vltDOUBLE& hh, vltDOUBLE &mm, vltDOUBLE& ss);
00132
00133 evhCOMMAND command;
00134 };
00135
00136 #endif // !pomMEAS_MAIN_TASK_H