/** * This is a generic controller for devices in SICS. In its default configuration it * will be configurable via Tcl scripts and used AsynqQueue for communication. But * it is suitably generic to support other mechanisms as well. * * copyright: see file COPYRIGHT * * Mark Koennecke, November 2007 */ #ifndef GENERICCONTROLLER_H_ #define GENERICCONTROLLER_H_ #include #include #define GCTIMEOUT 5001 #define GCDISCONNECT 5002 #define GCOK 5000 #define GCRECONNECT 5003 #define GCRETRY 5004 typedef struct { int (*enqueueNode) (pSICSOBJ self, SConnection * pCon, pHdb node); int (*enqueueNodeHead) (pSICSOBJ self, SConnection * pCon, pHdb node); int (*replyCallback) (pSICSOBJ self, SConnection * pCon, pHdb node, char *replyCommand, char *reply, int replylen); void *comContext; void (*killComContext) (void *data); int comError; } GenController, *pGenController; /*---------------------------------------------------------------------------*/ int GenControllerFactory(SConnection * pCon, SicsInterp * pSics, void *pData, int argc, char *argv[]); /*---------------------------------------------------------------------------*/ int GenControllerConfigure(SConnection * pCon, SicsInterp * pSics, void *pData, int argc, char *argv[]); #endif /*GENERICCONTROLLER_H_ */