PSI sics-cvs-psi_pre-ansto
This commit is contained in:
130
interface.h
Normal file
130
interface.h
Normal file
@@ -0,0 +1,130 @@
|
||||
|
||||
#line 359 "interface.w"
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
I N T E R F A C E S
|
||||
|
||||
Any object in SICS has to adhere to the object descriptor interface (see
|
||||
file obdes.h). Furthermore SICS objects may choose to support other
|
||||
interfaces as well. These interfaces are defined.
|
||||
|
||||
Mark Koennecke, June 1997
|
||||
|
||||
For more documentation see interface.w, interface.tex
|
||||
|
||||
copyright: see SICS impelementation files
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef SICSINTERFACES
|
||||
#define SICSINTERFACES
|
||||
|
||||
/* interface ID's used to recognize an interface */
|
||||
#define DRIVEID 513
|
||||
#define COUNTID 713
|
||||
#define CALLBACKINTERFACE 947
|
||||
#define ENVIRINTERFACE 949
|
||||
|
||||
/* ----------------------- The drivable interface -----------------------*/
|
||||
|
||||
#line 117 "interface.w"
|
||||
|
||||
|
||||
typedef struct {
|
||||
int ID;
|
||||
int (*Halt)(void *self);
|
||||
int (*CheckLimits)(void *self, float fVal,
|
||||
char *error, int iErrLen);
|
||||
long (*SetValue)(void *self, SConnection *pCon,
|
||||
float fVal);
|
||||
int (*CheckStatus)(void *self, SConnection *pCon);
|
||||
float (*GetValue)(void *self, SConnection *pCon);
|
||||
int iErrorCount;
|
||||
} IDrivable, *pIDrivable;
|
||||
|
||||
pIDrivable GetDrivableInterface(void *pObject);
|
||||
|
||||
|
||||
#line 384 "interface.w"
|
||||
|
||||
|
||||
pIDrivable CreateDrivableInterface(void);
|
||||
|
||||
/* ------------------------ The countable interface ---------------------*/
|
||||
|
||||
#line 177 "interface.w"
|
||||
|
||||
typedef struct {
|
||||
int ID;
|
||||
int (*Halt)(void *self);
|
||||
void (*SetCountParameters)(void *self, float fPreset,
|
||||
CounterMode eMode);\
|
||||
int (*StartCount)(void *self, SConnection *pCon);
|
||||
int (*CheckCountStatus)(void *self, SConnection *pCon);
|
||||
int (*Pause)(void *self, SConnection *pCon);
|
||||
int (*Continue)(void *self, SConnection *pCon);
|
||||
int (*TransferData)(void *self, SConnection *pCon);
|
||||
} ICountable, *pICountable;
|
||||
|
||||
pICountable GetCountableInterface(void *pObject);
|
||||
|
||||
|
||||
#line 389 "interface.w"
|
||||
|
||||
|
||||
pICountable CreateCountableInterface(void);
|
||||
|
||||
/* ------------------------- The CallBack Interface --------------------*/
|
||||
|
||||
#line 230 "interface.w"
|
||||
|
||||
typedef void (*KillFuncIT)(void *pData);
|
||||
typedef int (*SICSCallBack)(int iEvent, void *pEventData,
|
||||
void *pUserData);
|
||||
|
||||
#line 394 "interface.w"
|
||||
|
||||
|
||||
#line 252 "interface.w"
|
||||
|
||||
typedef struct __ICallBack *pICallBack;
|
||||
|
||||
/* event source side */
|
||||
pICallBack CreateCallBackInterface(void);
|
||||
void DeleteCallBackInterface(pICallBack self);
|
||||
int InvokeCallBack(pICallBack pInterface, int iEvent, void *pEventData);
|
||||
|
||||
/* callback client side */
|
||||
long RegisterCallback(pICallBack pInterface, int iEvent, SICSCallBack pFunc,
|
||||
void *pUserData, KillFuncIT pKill);
|
||||
int RemoveCallback(pICallBack pInterface, long iID);
|
||||
int RemoveCallback2(pICallBack pInterface, void *pUserData);
|
||||
|
||||
int CallbackScript(SConnection *pCon, SicsInterp *pSics, void *pData,
|
||||
int argc, char *argv[]);
|
||||
|
||||
pICallBack GetCallbackInterface(void *pData);
|
||||
|
||||
#line 395 "interface.w"
|
||||
|
||||
/*---------------------- The Environment Interface --------------------*/
|
||||
|
||||
#line 323 "interface.w"
|
||||
|
||||
typedef enum { EVIdle, EVDrive, EVMonitor, EVError } EVMode;
|
||||
typedef struct {
|
||||
int iID;
|
||||
EVMode (*GetMode)(void *self);
|
||||
int (*IsInTolerance)(void *self);
|
||||
int (*HandleError)(void *self);
|
||||
} EVInterface, *pEVInterface;
|
||||
|
||||
#line 397 "interface.w"
|
||||
|
||||
|
||||
#line 349 "interface.w"
|
||||
|
||||
pEVInterface CreateEVInterface(void);
|
||||
|
||||
#line 398 "interface.w"
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user