Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

pomMEAS_MAIN_TASK.h

Go to the documentation of this file.
00001 #ifndef pomMEAS_MAIN_TASK_H
00002 #define pomMEAS_MAIN_TASK_H
00003 /******************************************************************************
00004 * E.S.O. - VLT project
00005 *
00006 * "@(#) $Id: pomMEAS_MAIN_TASK.h,v 1.69 2003/09/17 16:04:58 vltsccm Exp $"
00007 *
00008 * who       when      what
00009 * --------  --------  --------------------------------------------------------
00010 * rkarban 2001-02-27 make CBs virtual
00011 * rkarban   14/05/97  created
00012 */
00013 
00014 /******************************************************************************
00015  * Declaration of class pomMEAS_MAIN_TASK.
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 //  class TcsLocalCatalog;    // forward declare.
00027 //  class AstroQuery;          
00028 //  class TcsQueryResult;
00029 //  class TcsCatalogObject;
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; // current object's RA and DEC in HMS
00071     vltINT16         curIndex;  // index for POINOBJ POINNEXT commands.
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();    // LOG the problem
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();    // LOG the problem
00089       return FAILURE;
00090   }
00091   return SUCCESS;
00092     };
00093     
00094     // Callbacks for prsControl/PRSCOOR commands
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   // path to where pointing files are
00101     char pointDir[256]; 
00102 
00103     tcsCMD_HANDLER    *initHandler;    // INIT command handler
00104     tcsCMD_HANDLER    *exitHandler;    // EXIT command handler
00105     tcsCMD_HANDLER    *stopHandler;    // STOP command handler
00106     tcsCMD_HANDLER    *onlineHandler;  // ONLINE command handler
00107     tcsCMD_HANDLER    *standbyHandler; // STANDBY command handler
00108     tcsCMD_HANDLER    *offHandler;     // OFF command handler
00109     tcsCMD_HANDLER    *statusHandler;  // STATUS command handler
00110 
00111     tcsCMD_HANDLER    *outfileHandler; // OUTFILE command handler
00112     tcsCMD_HANDLER    *clfileHandler;  // CLFILE command handler
00113     tcsCMD_HANDLER    *storeHandler;   // STORE command handler
00114     tcsCMD_HANDLER    *defpcatHandler; // DEFPCAT command handler
00115     tcsCMD_HANDLER    *catlistHandler; // CATLIST command handler
00116     tcsCMD_HANDLER    *poinobjHandler; // POINOBJ command handler
00117     tcsCMD_HANDLER    *poinextHandler; // POINEXT command handler
00118     tcsCMD_HANDLER    *lkupadHandler;  // LKUPAD  command handler 
00119     tcsCMD_HANDLER    *resetqHandler;  // LKUPAD  command handler 
00120 
00121 
00122     eccsDB_STRING    prsTarget;
00123     // pointer to either poinobjHandler or poinextHandler
00124     // to manage commands to prsControl
00125     tcsCMD_HANDLER    *poinHandler;    
00126 
00127 
00128     // Measure counter DB attribute.
00129     eccsDB_INT32     measureCount;
00130     // Objects for  intefacing with astro catalogs.
00131     void SplitHms(vltDOUBLE angle, vltDOUBLE& hh, vltDOUBLE &mm, vltDOUBLE& ss);
00132 
00133     evhCOMMAND    command;  // to send commands to prsControl
00134 };
00135 
00136 #endif // !pomMEAS_MAIN_TASK_H

Generated on Wed Dec 3 14:52:16 2003 for ATCS API by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001