Created anstoutil to share the getParam function.
Modified motor_dmc2280 and counterdiv to use anstoutil r1033 | ffr | 2006-07-25 16:48:14 +1000 (Tue, 25 Jul 2006) | 3 lines
This commit is contained in:
committed by
Douglas Clowes
parent
36f76e9486
commit
a7ebdff308
@@ -1,14 +1,31 @@
|
||||
/** \file motor_dmc2280.c
|
||||
* \brief Driver for Galil DMC2280 motor controller.
|
||||
*
|
||||
* Implements a SICS motor object with a MotorDriver interface.
|
||||
*
|
||||
* Copyright: see file Copyright.txt
|
||||
*
|
||||
* Ferdi Franceschini July 2006
|
||||
*
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
#include <time.h>
|
||||
#include "fortify.h"
|
||||
#include <string.h>
|
||||
#include "sics.h"
|
||||
#include "countdriv.h"
|
||||
#include <sics.h>
|
||||
#include <rs232controller.h>
|
||||
#include <countdriv.h>
|
||||
#include "anstoutil.h"
|
||||
|
||||
/*@-incondefs@*/
|
||||
/*@observer@*//*@dependent@*/ Tcl_Interp *InterpGetTcl(SicsInterp *pSics);
|
||||
/*@observer@*//*@dependent@*/ pCounterDriver CreateCounterDriver(char *name, char *type);
|
||||
/*@+incondefs@*/
|
||||
|
||||
#if 0
|
||||
typedef struct __COUNTDRIV {
|
||||
/* variables */
|
||||
char *name;
|
||||
char *type;
|
||||
CounterMode eMode;
|
||||
@@ -19,58 +36,136 @@ typedef struct __COUNTDRIV {
|
||||
long lCounts[MAXCOUNT];
|
||||
int iPause;
|
||||
int iErrorCode;
|
||||
/* functions */
|
||||
int (*GetStatus)(CounterDriver *self, float *fControl);
|
||||
int (*Start)(CounterDriver *self);
|
||||
int (*Pause)(CounterDriver *self);
|
||||
int (*Continue)(CounterDriver *self);
|
||||
int (*Halt)(CounterDriver *self);
|
||||
int (*ReadValues)(CounterDriver *self);
|
||||
int (*GetError)(CounterDriver *self, int *iCode, char *error, int iErrLen);
|
||||
int (*TryAndFixIt)(CounterDriver *self, int iCode);
|
||||
int (*Set)(CounterDriver *self,char *name, int iCter, float fVal);
|
||||
int (*Get)(CounterDriver *self,char *name, int iCter, float *fVal);
|
||||
int (*Send)(CounterDriver *self, char *pText, char *pReply, int iReplyLen);
|
||||
void (*KillPrivate)(CounterDriver *self);
|
||||
void *pData; /* counter specific data goes here, ONLY for
|
||||
internal driver use!
|
||||
*/
|
||||
} CountDriv, *pCountDriv;
|
||||
|
||||
int (*GetStatus)(CounterDriver *cntrData, float *fControl);
|
||||
int (*Start)(CounterDriver *cntrData);
|
||||
int (*Pause)(CounterDriver *cntrData);
|
||||
int (*Continue)(CounterDriver *cntrData);
|
||||
int (*Halt)(CounterDriver *cntrData);
|
||||
int (*ReadValues)(CounterDriver *cntrData);
|
||||
int (*GetError)(CounterDriver *cntrData, int *iCode, char *error, int iErrLen);
|
||||
int (*TryAndFixIt)(CounterDriver *cntrData, int iCode);
|
||||
int (*Set)(CounterDriver *cntrData,char *name, int iCter, float fVal);
|
||||
int (*Get)(CounterDriver *cntrData,char *name, int iCter, float *fVal);
|
||||
int (*Send)(CounterDriver *cntrData, char *pText, char *pReply, int iReplyLen);
|
||||
void (*KillPrivate)(CounterDriver *cntrData);
|
||||
void *pData; /* counter specific data */
|
||||
|
||||
/*@observer@*//*@dependent@*/SConnection *pCon;
|
||||
prs232 controller;
|
||||
|
||||
} CountDriv, *BeamMon;
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
char *host;
|
||||
int iPort;
|
||||
int iChannel;
|
||||
void *pData;
|
||||
int finishCount;
|
||||
} BeamMon;
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static int MonGetStatus(CounterDriver *self, float *fControl) {
|
||||
static int MonGetStatus(CounterDriver *cntrData, float *fControl) {
|
||||
BeamMon *self = NULL;
|
||||
|
||||
self = (BeamMon *) cntrData;
|
||||
}
|
||||
|
||||
static int MonStart(CounterDriver *self) {
|
||||
static int MonStart(CounterDriver *cntrData) {
|
||||
BeamMon *self = NULL;
|
||||
|
||||
self = (BeamMon *) cntrData;
|
||||
}
|
||||
|
||||
static int MonPause(CounterDriver *self) {
|
||||
static int MonPause(CounterDriver *cntrData) {
|
||||
BeamMon *self = NULL;
|
||||
|
||||
self = (BeamMon *) cntrData;
|
||||
}
|
||||
|
||||
static int MonContinue(CounterDriver *self) {
|
||||
static int MonContinue(CounterDriver *cntrData) {
|
||||
BeamMon *self = NULL;
|
||||
|
||||
self = (BeamMon *) cntrData;
|
||||
}
|
||||
|
||||
static int MonHalt(CounterDriver *self) {
|
||||
static int MonHalt(CounterDriver *cntrData) {
|
||||
BeamMon *self = NULL;
|
||||
|
||||
self = (BeamMon *) cntrData;
|
||||
}
|
||||
|
||||
static int MonReadValues(CounterDriver *self) {
|
||||
static int MonReadValues(CounterDriver *cntrData) {
|
||||
BeamMon *self = NULL;
|
||||
|
||||
self = (BeamMon *) cntrData;
|
||||
}
|
||||
|
||||
static int MonGetError(CounterDriver *self, int *iCode, char *error, int iErrLen) {
|
||||
static int MonGetError(CounterDriver *cntrData, int *iCode, char *error, int iErrLen) {
|
||||
BeamMon *self = NULL;
|
||||
|
||||
self = (BeamMon *) cntrData;
|
||||
}
|
||||
|
||||
static int MonTryAndFixIt(CounterDriver *self, int iCode) {
|
||||
static int MonTryAndFixIt(CounterDriver *cntrData, int iCode) {
|
||||
BeamMon *self = NULL;
|
||||
|
||||
self = (BeamMon *) cntrData;
|
||||
}
|
||||
|
||||
static int MonSet(CounterDriver *self, char *name, int iCter, float FVal) {
|
||||
static int MonSet(CounterDriver *cntrData, char *name, int iCter, float FVal) {
|
||||
BeamMon *self = NULL;
|
||||
|
||||
self = (BeamMon *) cntrData;
|
||||
}
|
||||
|
||||
static int MonGet(CounterDriver *self, char *name, int iCter, float *fVal) {
|
||||
static int MonGet(CounterDriver *cntrData, char *name, int iCter, float *fVal) {
|
||||
BeamMon *self = NULL;
|
||||
|
||||
self = (BeamMon *) cntrData;
|
||||
}
|
||||
|
||||
static int MonSend(CounterDriver *self, char *pText, char *pReply, int iReplyLen) {
|
||||
static int MonSend(CounterDriver *cntrData, char *pText, char *pReply, int iReplyLen) {
|
||||
BeamMon *self = NULL;
|
||||
|
||||
self = (BeamMon *) cntrData;
|
||||
}
|
||||
|
||||
pCountDriv CreateMonCounter(char *name, float fFail) {
|
||||
static void KillMon(pCounterDriver self) {
|
||||
}
|
||||
|
||||
/*@observer@*//*@null@*/ pCounterDriver CreateMonCounter(/*@observer@*/SConnection *pCon, /*@observer@*/char *name, char *params) {
|
||||
BeamMon *newCtr = NULL;
|
||||
pCounterDriver pCntDriv = NULL;
|
||||
char *pPtr = NULL;
|
||||
char buffer[132];
|
||||
int port;
|
||||
Tcl_Interp *interp;
|
||||
|
||||
interp = InterpGetTcl(pServ->pSics);
|
||||
|
||||
newCtr = (BeamMon *)malloc(sizeof(BeamMon));
|
||||
if(NULL == newCtr){
|
||||
(void) SCWrite(pCon,"ERROR: no memory to allocate counter driver",
|
||||
eError);
|
||||
return NULL;
|
||||
}
|
||||
pCntDriv = CreateCounterDriver(name, "MONITOR");
|
||||
if(!pCntDriv) {
|
||||
return NULL;
|
||||
}
|
||||
/* Get hostname and port from the list of named parameters */
|
||||
if ((pPtr=getParam(pCon, interp, params,"port",1)) == NULL) {
|
||||
KillMon(pCntDriv);
|
||||
return NULL;
|
||||
}
|
||||
sscanf(pPtr,"%d",&port);
|
||||
if ((pPtr=getParam(pCon, interp, params,"host",1)) == NULL) {
|
||||
KillMon(pCntDriv);
|
||||
return NULL;
|
||||
}
|
||||
strncpy(buffer,pPtr, 131);
|
||||
|
||||
return pCntDriv;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user