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

ag.h

Go to the documentation of this file.
00001 /*******************************************************************************
00002 * E.S.O. - VLT project
00003 *
00004 * "@(#) $Id: ag.h,v 1.98 2003/11/11 14:58:39 vltsccm Exp $" 
00005 *
00006 * ag.h
00007 *
00008 * who       when      what
00009 * --------  --------  ----------------------------------------------
00010 * rkarban 2002-02-11 make agDbReadTrkAxisList public
00011 * rkarban 2002-02-11 add agSendOffsetMsgPublic
00012 * rkarban 2002-02-11 make agPixSize public
00013 * rkarban 2002-02-11 make agDbReadRotAngle public
00014 * rkarban 2002-02-11 move GetAgId from agInternal.h
00015 * gchiozzi  19/02/99  Removed possibility of writing to logFile (spr 990011)
00016 * tcsmgr  18/10/98  Common defines are in agDefines.h
00017 * tcsmgr  09/10/98  Added PII_PARMS structure
00018 * gchiozzi  01/10/98  Created new agPII_HISTORY structure
00019 * gchiozzi  30/09/98  PII controller is now frequency dependent.
00020 * tcsmgr    17/09/98  Added database definitions for ccdip checking configuration.
00021 * tcsmgr    10/05/98  Added setting of exposure time structure in agUfBuff
00022 * tphan     10/03/96  First version
00023 * tphan     13/11/96  Delete CCD db definition
00024 *-----------------------------------------------------------------------------*/
00025 
00026 #ifndef AG_H
00027 #define AG_H
00028 
00029 #include "ccdip.h"
00030 #include "agDefines.h"
00031 /*
00032  * Object ag - Public Definitions File
00033  */
00034 
00035 /*
00036  * Constants
00037  */
00038 
00039 #define agCMD_OFFSAG    "OFFSAG"
00040 #define agCMD_GETAGID   "GETAGID"
00041 
00042 #define agCMD_OFFSAG    "OFFSAG"
00043 
00044 static const char *agErrorVectorValues[] = 
00045 {
00046     "LAST",
00047     "MEAN",
00048 };
00049 
00050 /*
00051  * Types
00052  */
00053 typedef struct
00054 {
00055     vltDOUBLE      ipCenIntensity;
00056     ccdipAGBUF     ipBuff;
00057     ccdIPEXPOSURE  exposure;
00058 } agCcdipAGBUF;
00059 
00060 typedef enum      /* for error vector Values */
00061     {
00062     agLAST,
00063     agMEAN,
00064 } agERROR_VECTOR_VALUES;
00065     
00066     
00067 typedef struct
00068     {
00069     vltDOUBLE ipXCen;
00070     vltDOUBLE ipYCen;
00071     vltDOUBLE ipCenIntensity;
00072 } agERROR_VECTOR;
00073 
00074 typedef struct
00075     {
00076     vltDOUBLE alpha;
00077     vltDOUBLE delta;
00078 } agOFFSET;
00079 
00080 typedef struct
00081     {
00082     ccsENVNAME  envName;
00083     ccsPROCNAME procName;
00084 } agTRK_AXIS;
00085 
00086 typedef struct
00087     {
00088     vltINT32   nbrAxisDefined;
00089     agTRK_AXIS   axis[agMAX_DESTINATION];
00090     msgPROCESSID destId[agMAX_DESTINATION];
00091     ccsERROR     errMsg;      /* For Replies to alt/az */
00092 } agTRK_AXIS_LIST;
00093 
00094 
00095 /*
00096  *  PII controller configuration structures
00097  *  =======================================
00098  */
00099 
00100 /*
00101  * PII Configuration as on the DB
00102  */
00103 typedef struct
00104 {
00105     vltDOUBLE Kp;
00106     vltDOUBLE Ki;
00107     vltDOUBLE Kii;
00108     vltDOUBLE MaxI;
00109     vltDOUBLE MaxII;
00110     vltINT32    freqDep;
00111 } agPII;
00112 
00113 /*
00114  * PII parameters that can be modified via SETPII command
00115  */
00116 typedef struct
00117 {
00118     vltDOUBLE Kp;
00119     vltDOUBLE Ki;
00120     vltDOUBLE Kii;
00121     vltDOUBLE MaxI;
00122     vltDOUBLE MaxII;
00123 } agPII_CMD;
00124 
00125 /*
00126  * PII history structure with I and II 
00127  *     values updated at any iteration
00128  *     and corresponding calculated correction
00129  */
00130 typedef struct
00131 {
00132     vltDOUBLE   correction;
00133     vltDOUBLE   I;
00134     vltDOUBLE   II;
00135 } agPII_HISTORY;
00136 
00137 
00138 /*
00139  * Data
00140  */
00141 
00142 /*
00143  * Function
00144  */
00145 
00146 ccsCOMPL_STAT agInitAll(char *ccdName, char *dbRoot);
00147 
00148 ccsCOMPL_STAT agDbReadTrkAxisList (
00149   OUT agTRK_AXIS_LIST *axisList,
00150   OUT ccsERROR    *error);
00151  
00152 ccsCOMPL_STAT agDbWriteTrkAxisList (
00153   IN  agTRK_AXIS_LIST *axisList,
00154   OUT ccsERROR    *error);
00155  
00156 ccsCOMPL_STAT agNoticeErrorVector (
00157   OUT ccsERROR    *error
00158   );
00159 /*
00160  * agStartAg.c
00161  */
00162 ccsCOMPL_STAT agStartAg (
00163       IN  msgMSG  *msg,
00164   IN  vltDOUBLE rotAngle,
00165   IN  vltDOUBLE repFrq,
00166   IN  char  *at,
00167   OUT ccsERROR  *error);
00168 
00169 ccsCOMPL_STAT agStopAg (OUT ccsERROR  *error);
00170 
00171 ccsCOMPL_STAT agSendOffsetMsgPublic (
00172   IN  agOFFSET    *offset,
00173   OUT ccsERROR    *error
00174     );
00175 
00176 ccsCOMPL_STAT agDbReadRotAngle (OUT vltDOUBLE *rotAngle,
00177         OUT ccsERROR    *error);
00178 
00179 ccsCOMPL_STAT agPixSize (
00180   OUT vltDOUBLE *pixSize, 
00181   OUT ccsERROR  *error
00182     );
00183 
00184 ccsCOMPL_STAT agDbReadTrkAxisList (
00185   OUT agTRK_AXIS_LIST *axisList,
00186   OUT ccsERROR    *error);
00187 
00188 /*
00189  * agGetAgId.c
00190  */
00191 
00192 ccsCOMPL_STAT agGetAgId (IN  agTRK_AXIS_LIST *trkAxisList,
00193        OUT ccsERROR        *error);
00194 
00195 /*
00196  * agRms.c
00197  */
00198 ccsCOMPL_STAT agRmsInit (OUT ccsERROR  *error);
00199 
00200 /*
00201  * agFindSymbol.c
00202  */
00203 ccsCOMPL_STAT agFindSymbol(
00204         IN  char        *symName,
00205         OUT FUNCPTR *sym,
00206         OUT ccsERROR    *error);
00207 
00208 /*
00209  *  User functions
00210  */
00211 ccsCOMPL_STAT agUfBase (
00212   IN  ccdIPIMAGE *img, 
00213   IN  void       *notUsed, 
00214   OUT ccsERROR   *err);
00215 
00216 ccsCOMPL_STAT agUf1 (
00217   IN  ccdIPIMAGE *img, 
00218   IN  void       *notUsed, 
00219   OUT ccsERROR   *err);
00220 
00221 
00222 #endif /* !AG_H */

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