00001 #ifndef agwsCON_ADAPTER_H
00002 #define agwsCON_ADAPTER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #ifndef __cplusplus
00045 #error This is a C++ include file and cannot be used from plain C
00046 #endif
00047
00048 #include "math.h"
00049 extern "C" {
00050 #include "tcsVcc.h"
00051 #include "slalib.h"
00052 #include "slamac.h"
00053 }
00054 #include "agws.h"
00055 #include "agwsCON_CAT.h"
00056 #include "agwsCON_CHECK.h"
00057 #include "agwsCON_SERVER.h"
00058 #include "agwsCON_SETUP.h"
00059 #include "agwsCMD_HANDLER.h"
00060 #include "agwsTRANSFER.h"
00061
00062 #include "evhDB_TASK.h"
00063 #include "evhCOMMAND.h"
00064 #include "evhSTD_COMMANDS.h"
00065 #include "mswMOD_LIST.h"
00066 #include "mswINS_DATA_MONITOR.h"
00067
00068 class agwsCON_ADAPTER : public evhDB_TASK
00069 {
00070 public:
00071 agwsCON_ADAPTER(const dbSYMADDRESS dbPoint, agwsCON_CAT &gsCat, agwsCON_SERVER &agServer);
00072 agwsCON_ADAPTER(const dbSYMADDRESS dbPoint, agwsCON_CAT &gsCat, agwsCON_SERVER &agServer,
00073 agwsCON_SETUP *gsSetup);
00074 virtual ~agwsCON_ADAPTER();
00075 virtual ccsCOMPL_STAT Init();
00076 virtual ccsCOMPL_STAT Reset();
00077
00078 virtual evhCB_COMPL_STAT ProbeAbsCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00079 virtual evhCB_COMPL_STAT ProbeAbsRstCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00080 virtual evhCB_COMPL_STAT ProbeCheckCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00081 virtual evhCB_COMPL_STAT ProbeCenterCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00082 virtual evhCB_COMPL_STAT ProbeDObjCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00083 virtual evhCB_COMPL_STAT ProbeGsCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00084 virtual evhCB_COMPL_STAT ProbeParkCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00085 virtual evhCB_COMPL_STAT OffsetAdCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00086 virtual evhCB_COMPL_STAT OffsetGpCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00087 virtual evhCB_COMPL_STAT OffsetXyCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00088 virtual evhCB_COMPL_STAT OffsetAdgCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00089 virtual evhCB_COMPL_STAT StartManCorrCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00090 virtual evhCB_COMPL_STAT StopManCorrCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00091 virtual evhCB_COMPL_STAT ProbeStopCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00092
00093 virtual evhCB_COMPL_STAT GeneralReplyCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00094 virtual evhCB_COMPL_STAT GeneralErrorCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00095
00096 virtual evhCB_COMPL_STAT OffsetAdGpOkCB(msgMESSAGE &msg, void *udata);
00097
00098 virtual evhCB_COMPL_STAT OffsetGpReplyCB(msgMESSAGE &msg, void *udata);
00099 virtual evhCB_COMPL_STAT OffsetGpErrorCB(msgMESSAGE &msg, void *udata);
00100 virtual evhCB_COMPL_STAT OffsetGpStepCB(evtEVENT_MSG &msg, void *udata);
00101
00102
00103 virtual evhCB_COMPL_STAT OffsetAdgStopOkCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00104 virtual evhCB_COMPL_STAT OffsetAdgReplyCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00105
00106 virtual evhCB_COMPL_STAT GpInPosOkCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00107 virtual evhCB_COMPL_STAT GpInPosErrorCB(msgMESSAGE &msg, agwsCMD_HANDLER &handler);
00108
00109 virtual vltLOGICAL CheckProbePos(vltDOUBLE alpha,
00110 vltDOUBLE delta,
00111 vltLOGICAL usedMargin,
00112 vltDOUBLE rotAngle );
00113
00114 virtual ccsCOMPL_STAT StopOffsAdg();
00115
00116 virtual ccsCOMPL_STAT GetProbeMagicScaleDB(vltDOUBLE *scaleX,
00117 vltDOUBLE *scaleY);
00118 virtual ccsCOMPL_STAT EnableAdRotEvents();
00119 virtual ccsCOMPL_STAT DisableAdRotEvents();
00120
00121 virtual ccsCOMPL_STAT UpdateVignettingLimits();
00122
00123 protected:
00124 virtual ccsCOMPL_STAT ProbeCmdSend (const msgCMD cmd,
00125 const char *buffer,
00126 ccsTIMEVAL timeout,
00127 agwsCMD_HANDLER &handler,
00128 vltINT32 startState = agwsSTATE_OPERATING,
00129 vltINT32 endState = agwsSTATE_IDLE);
00130 virtual ccsCOMPL_STAT LoadSearchCrit(vltDOUBLE *minMag, vltDOUBLE *maxMag,
00131 vltDOUBLE *minRad, vltDOUBLE *maxRad,
00132 char *vignettingLimit);
00133
00134 virtual evhCB_COMPL_STAT InsDataChangedCB(msgMESSAGE &msg, void *);
00135 virtual ccsCOMPL_STAT EvtRegister(evtEVENT *evt, const char *dbAttr,
00136 evhCB_METHOD DbEventCB, evtFILTER filter = evtANY_WRITE);
00137 virtual ccsCOMPL_STAT EvtDetach(evtEVENT *evt, evhCB_METHOD DbEventCB);
00138
00139 agwsCMD_HANDLER prAbsCmdHandler;
00140 agwsCMD_HANDLER prChkCmdHandler;
00141 agwsCMD_HANDLER prCntCmdHandler;
00142 agwsCMD_HANDLER prDObjCmdHandler;
00143 agwsCMD_HANDLER prGsCmdHandler;
00144 agwsCMD_HANDLER prParkCmdHandler;
00145 agwsCMD_HANDLER offsAdCmdHandler;
00146 agwsCMD_HANDLER offsGpCmdHandler;
00147 agwsCMD_HANDLER offsAdgCmdHandler;
00148 agwsCMD_HANDLER offsXyCmdHandler;
00149 agwsCMD_HANDLER startMcCmdHandler;
00150 agwsCMD_HANDLER stopMcCmdHandler;
00151 agwsCMD_HANDLER prStopCmdHandler;
00152
00153 agwsTRANSFER probeCmd;
00154 agwsTRANSFER checkCmd;
00155 agwsTRANSFER trkoffCmd;
00156 agwsTRANSFER gpInPosCmd;
00157
00158 agwsCON_CAT &gsCatalogue;
00159 agwsCON_SERVER &agServer;
00160 agwsCON_SETUP *gsSetupObj;
00161
00162 ccsTIMEVAL prAbsTimeout;
00163 ccsTIMEVAL prChkTimeout;
00164 ccsTIMEVAL prCntTimeout;
00165 ccsTIMEVAL prParkTimeout;
00166 ccsTIMEVAL offsAdTimeout;
00167 ccsTIMEVAL offsAdgTimeout;
00168 ccsTIMEVAL offsXyTimeout;
00169 ccsTIMEVAL startMcTimeout;
00170 ccsTIMEVAL stopMcTimeout;
00171 ccsTIMEVAL gpInPosTimeout;
00172
00173 vltLOGICAL alreadyGuiding;
00174 msgMESSAGE adOffset;
00175 evhCOMMAND offsadCmd;
00176 evhCOMMAND offsadGpCmd;
00177 mswINS_DATA_MONITOR insConfigData;
00178 evtEVENT evtOffsAlpha;
00179
00180 private:
00181 };
00182
00183 #endif // !agwsCON_ADAPTER_H
00184
00185