00001 #ifndef agwsCON_SETUP_H 00002 #define agwsCON_SETUP_H 00003 /***************************************************************************** 00004 * E.S.O. - VLT project 00005 * 00006 * "@(#) $Id: agwsCON_SETUP.h,v 1.182 2003/11/12 08:34:09 vltsccm Exp $" 00007 * 00008 * who when what 00009 * -------- -------- ------------------------------------------------------- 00010 * gchiozzi 21/09/98 Added CheckBox() and CheckWin() 00011 * gchiozzi 23/07/98 Added private method LoadDefaultRefXY() 00012 * rkarban 21/07/98 replace GetDefaultWin with GetDefaultRefXY 00013 * gchiozzi 28/11/97 Replaced pointer to gsCatalogue with reference. 00014 * gchiozzi 17/11/97 Added save method. 00015 * gchiozzi 07/11/97 Added Reload() method to load again the current setup file 00016 * gchiozzi 09/10/97 Removed SETROW command 00017 * gchiozzi 29/02/96 created 00018 */ 00019 00020 /***************************************************************************** 00021 * Definition of class agwsCON_SETUP 00022 *---------------------------------------------------------------------------- 00023 */ 00024 00025 #ifndef __cplusplus 00026 #error This is a C++ include file and cannot be used from plain C 00027 #endif 00028 00029 #include "math.h" 00030 extern "C" { 00031 #include "tcsVcc.h" 00032 #include "slalib.h" 00033 #include "slamac.h" 00034 } 00035 #include "agws.h" 00036 #include "agwsCON_CAT.h" 00037 00038 #include "evhDB_TASK.h" 00039 #include "evhCOMMAND.h" 00040 #include "oslx.h" 00041 00042 /* 00043 * Enum to identify in what do we want to set the 00044 * user function 00045 */ 00046 00047 enum agwsUFMODE 00048 { 00049 agwsUFMODE_GUIDE_LOOP, 00050 agwsUFMODE_SINGLE_EXP, 00051 agwsUFMODE_NONE 00052 }; 00053 00054 struct agwsAG_BOX 00055 { 00056 vltDOUBLE refx; 00057 vltDOUBLE refy; 00058 vltINT32 width; 00059 }; 00060 00061 struct agwsAG_XY 00062 { 00063 vltDOUBLE x; 00064 vltDOUBLE y; 00065 }; 00066 00067 struct agwsAG_WIN 00068 { 00069 vltINT32 strx; 00070 vltINT32 stry; 00071 vltINT32 nx; 00072 vltINT32 ny; 00073 vltDOUBLE refx; 00074 vltDOUBLE refy; 00075 }; 00076 00077 class agwsCON_SETUP : public evhDB_TASK 00078 { 00079 public: 00080 agwsCON_SETUP(const dbSYMADDRESS dbPoint, agwsCON_CAT &gsCat); 00081 virtual ~agwsCON_SETUP(); 00082 00083 virtual ccsCOMPL_STAT Init(); 00084 00085 virtual evhCB_COMPL_STAT SetupCB(msgMESSAGE &msg, void *); 00086 00087 virtual ccsCOMPL_STAT HandleSetupCmd(const char *setupBuf); 00088 virtual ccsCOMPL_STAT GetBox(agwsAG_BOX *box); 00089 virtual ccsCOMPL_STAT SetBox(agwsAG_BOX &box); 00090 00091 virtual ccsCOMPL_STAT GetDefaultRefXY(agwsAG_XY *refxy); 00092 00093 virtual ccsCOMPL_STAT GetWin(agwsAG_WIN *win); 00094 virtual ccsCOMPL_STAT SetWin(agwsAG_WIN &win); 00095 00096 virtual ccsCOMPL_STAT GetIntTime(vltDOUBLE *val); 00097 virtual ccsCOMPL_STAT SetIntTime(vltDOUBLE val); 00098 00099 virtual ccsCOMPL_STAT GetNREP(vltINT32 *val); 00100 virtual ccsCOMPL_STAT SetNREP(vltINT32 val); 00101 00102 virtual ccsCOMPL_STAT GetIPFUNC(char *val); 00103 virtual ccsCOMPL_STAT SetIPFUNC(char *val); 00104 00105 virtual ccsCOMPL_STAT GetCENTROID(char *val); 00106 virtual ccsCOMPL_STAT SetCENTROID(char *val); 00107 00108 virtual ccsCOMPL_STAT SetUfMode(agwsUFMODE mode); 00109 00110 virtual ccsCOMPL_STAT Save(); 00111 virtual ccsCOMPL_STAT Reload(); 00112 00113 virtual oslxSETUP &SetupFile(); 00114 00115 protected: 00116 virtual ccsCOMPL_STAT CheckBox(agwsAG_BOX *box); 00117 virtual ccsCOMPL_STAT CheckWin(agwsAG_WIN *win); 00118 virtual ccsCOMPL_STAT LoadDefaultRefXY(agwsAG_XY *refxy); 00119 00120 virtual ccsCOMPL_STAT ProcessSearchSetup(); 00121 virtual ccsCOMPL_STAT ProcessCatSetup(); 00122 virtual ccsCOMPL_STAT ProcessProbeSetup(); 00123 virtual ccsCOMPL_STAT ProcessTargetSetup(); 00124 virtual ccsCOMPL_STAT ProcessTccdSetup(); 00125 00126 virtual ccsCOMPL_STAT CheckSetup(char **report, 00127 vltUINT16 *numErrors); 00128 00129 00130 00131 agwsCON_CAT &gsCatalogue; // pointer to internal guide-star catalogue 00132 oslxSETUP setupFile; // TCS & TCCD setup file 00133 oslxDICTIONARY dictionary; // TCS & TCCD dictionary 00134 slxFILENAME tccdFilename; // TCCD setup file name 00135 00136 agwsAG_XY defRefxy; // the default reference pixel of the chip 00137 // where the dichroic patch is 00138 private: 00139 }; 00140 00141 #endif