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

lsfServer.h

Go to the documentation of this file.
00001 #ifndef LSF_SERVER_H
00002 #define LSF_SERVER_H
00003 /*******************************************************************************
00004 * E.S.O. - VLT project
00005 *
00006 * "@(#) $Id: lsfServer.h,v 1.101 2003/11/18 13:47:40 vltsccm Exp $"
00007 *
00008 * who       when        what
00009 * --------  ----------  ----------------------------------------------
00010 * pduhoux   2000-04-18  created
00011 */
00012 
00013 /************************************************************************
00014  *
00015  *----------------------------------------------------------------------
00016  */
00017 #include "lsfDevice.h"
00018 
00019 /*
00020  * Task spawn parameters for lsfServer
00021  */ 
00022 #define lsfSERVER_PRIORITY  80
00023 #define lsfSERVER_OPTIONS   VX_FP_TASK
00024 #define lsfSERVER_STACK     60
00025 
00026 #define lsfMONITOR_PRIORITY 75
00027 #define lsfMONITOR_STACK    30
00028 
00029 typedef struct
00030 {
00031     void        *ctrlData;
00032     lsfSTATE     state;        /* module state                   */
00033     lsfSUBSTATE  subState;     /* module sub-state               */
00034     vltLOGICAL   init;         /* flag if initialized            */
00035     vltLOGICAL   simulation;   /* flag if in simulation          */
00036     vltINT32     numDevices;   /* number of devices              */
00037     SEM_ID       cmdSem;       /* semaphore for sending commands */
00038     vltINT32     cmdTimeout;   /* timeout for sending commands   */
00039     SEM_ID       initSem;      /* semaphore for init command     */
00040     vltLOGICAL   lccDevice;    /* SW device is a LCC device      */
00041     int          monTid;       /* Monitoring Task Id             */
00042     SEM_ID       monSem;       /* semaphore for monitor period   */
00043     int          monPeriod;    /* Monitoring Task Period (ticks) */
00044     ccsERROR     error;        /* error stack for cmdInit()      */
00045     char        *attrTable;    /* cai DB attribute table         */
00046     vltBYTES20   swdName;      /* Name of the SW device          */
00047     void        *fctHook[10][3];
00048     vltLOGICAL   serverInit;
00049     void        *userData;
00050 } lsfSERVER_DATA;
00051 
00052 typedef enum
00053 {
00054     lsfHOOK_INIT = 0,
00055     lsfHOOK_STANDBY,
00056     lsfHOOK_ONLINE,
00057     lsfHOOK_STOP,
00058     lsfHOOK_OFF,
00059     lsfHOOK_EXIT,
00060     lsfHOOK_SIMULAT,
00061     lsfHOOK_STOPSIM,
00062     lsfHOOK_SELFTST,
00063     lsfHOOK_TEST,
00064     lsfHOOK_LAST
00065 } lsfHOOKFUNC_IDX;
00066 
00067 typedef enum
00068 {
00069     lsfHOOK_PRO = 0,
00070     lsfHOOK_MID,
00071     lsfHOOK_EPI
00072 } lsfHOOKTYPE_IDX;
00073 
00074 typedef ccsCOMPL_STAT lsfSTD_FUNCTION_HOOK ( IN  lsfSERVER_DATA *serverData, 
00075                OUT ccsERROR       *error);
00076 
00077 #define lsfSTD_COMMAND_HOOK(m,c,h) \
00078     ccsCOMPL_STAT m ## Std ## c ## h ## Hook ( \
00079          IN  lsfSERVER_DATA *srvData, OUT ccsERROR *error)
00080 
00081 void          lsfServerGetHooks       ( IN  lsfSERVER_DATA *serverData );
00082 ccsCOMPL_STAT lsfServerCallHook       ( IN  lsfSERVER_DATA *serverData,
00083           IN  lsfHOOKFUNC_IDX cmd, 
00084           IN  lsfHOOKTYPE_IDX typ,
00085           OUT ccsERROR       *error );
00086 
00087 ccsCOMPL_STAT lsfServerInitDb         ( IN  const char      *swdName, 
00088           OUT ccsERROR        *error );
00089 
00090 ccsCOMPL_STAT lsfInitAll              ( IN  const char      *swdName, 
00091           OUT lsfSERVER_DATA **pServerData );
00092 
00093 void          lsfServerDestructor     ( IN  lsfSERVER_DATA *serverData );
00094 
00095 ccsCOMPL_STAT lsfServerReadConfig     ( IN  lsfSERVER_DATA *serverData,
00096           OUT ccsERROR       *error );
00097 
00098 vltLOGICAL    lsfServerGetInit        ( IN  lsfSERVER_DATA *serverData );
00099 ccsCOMPL_STAT lsfServerSetInit        ( IN  lsfSERVER_DATA *serverData,
00100           IN  vltLOGICAL      value, 
00101           OUT ccsERROR       *error );
00102 
00103 vltLOGICAL    lsfServerGetSim         ( IN  lsfSERVER_DATA *serverData ); 
00104 ccsCOMPL_STAT lsfServerSetSim         ( IN  lsfSERVER_DATA *serverData,
00105           IN  vltLOGICAL      value, 
00106           OUT ccsERROR       *error );
00107 
00108 lsfSTATE      lsfServerGetState       ( IN  lsfSERVER_DATA *serverData );
00109 const char   *lsfServerGetStateName   ( IN  lsfSERVER_DATA *serverData );
00110 
00111 lsfSUBSTATE   lsfServerGetSubState    ( IN  lsfSERVER_DATA *serverData );
00112 const char   *lsfServerGetSubStateName( IN  lsfSERVER_DATA *serverData );
00113 
00114 ccsCOMPL_STAT lsfServerTakeInitSem    ( IN  lsfSERVER_DATA *serverData );
00115 void          lsfServerGiveInitSem    ( IN  lsfSERVER_DATA *serverData );
00116 
00117 ccsCOMPL_STAT lsfServerTakeCmdSem     ( IN  lsfSERVER_DATA *serverData );
00118 void          lsfServerGiveCmdSem     ( IN  lsfSERVER_DATA *serverData );
00119 
00120 void          lsfServerWakeupMonitor  ( IN  lsfSERVER_DATA *serverData );
00121 
00122 vltINT32      lsfServerGetCmdTimeout  ( IN  lsfSERVER_DATA *serverData );
00123 void          lsfServerSetCmdTimeout  ( IN  lsfSERVER_DATA *serverData,
00124           IN  vltINT32        timeout );
00125 
00126 ccsCOMPL_STAT lsfServerSwitchState    ( IN  lsfSERVER_DATA *serverData,
00127           IN  lsfSTATE        newDevState,
00128           OUT ccsERROR       *error );
00129 
00130 ccsCOMPL_STAT lsfServerCheckOnline    ( IN  lsfSERVER_DATA *serverData,
00131           OUT vltLOGICAL     *online,
00132           OUT ccsERROR       *error );
00133 
00134 typedef void  lsfTASK_FUNCTION        ( IN  void           *parameter,
00135           IN  SEM_ID         *syncSem,
00136           IN  ccsCOMPL_STAT  *status,
00137           OUT ccsERROR       *error );
00138 
00139 int           lsfStartupTask          ( IN  char           *name,
00140           IN  vltINT32        priority,
00141           IN  vltINT32        stackSize,
00142           IN  FUNCPTR         entryPoint,
00143           IN  void           *param,
00144           OUT ccsERROR       *error );
00145 
00146 lsfSERVER_DATA *lsfServerGetGlobalData( IN  const char     *swdName,
00147           OUT ccsERROR       *error );
00148 ccsCOMPL_STAT lsfServerGetSwDeviceName( OUT char           *swdName,
00149           OUT ccsERROR       *error );
00150 vltLOGICAL    lsfServerIsALccDevice   ( IN  lsfSERVER_DATA *serverData );
00151 
00152 void          lsfVersion              ( OUT vltBYTES80      version, 
00153           IN  const char     *modName, 
00154           IN  const char     *modTitle, 
00155           IN  const char     *date, 
00156           IN  const char     *time, 
00157           IN  const char     *modRcs );
00158 #endif 

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