- Adapted indenation to new agreed upon system

- Fixed bad status in poldi zug driver
This commit is contained in:
koennecke
2009-02-13 09:01:03 +00:00
parent 6c7bb14fad
commit eb72d5c486
151 changed files with 38234 additions and 38208 deletions

View File

@ -25,317 +25,313 @@
#define CAPSIZED -8090
#define ABS(x) (x < 0 ? -(x) : (x))
#define ABS(x) (x < 0 ? -(x) : (x))
/*-----------------------------------------------------------------------*/
typedef struct {
void *pData;
char *pHost;
int iPort;
int iChannel;
int iIndex;
int iLastError;
int iCapCount;
} EL755Driv, *pEL755Driv;
typedef struct {
void *pData;
char *pHost;
int iPort;
int iChannel;
int iIndex;
int iLastError;
int iCapCount;
} EL755Driv, *pEL755Driv;
/*---------------------------------------------------------------------------*/
static int GetEL755Pos(pEVDriver self, float *fPos)
{
pEL755Driv pMe = NULL;
int iRet;
float fSoll;
assert(self);
pMe = (pEL755Driv)self->pPrivate;
assert(pMe);
static int GetEL755Pos(pEVDriver self, float *fPos)
{
pEL755Driv pMe = NULL;
int iRet;
float fSoll;
iRet = EL755_GetCurrents(&(pMe->pData),&fSoll,fPos);
if(iRet != 1)
{
return 0;
}
assert(self);
pMe = (pEL755Driv) self->pPrivate;
assert(pMe);
iRet = EL755_GetCurrents(&(pMe->pData), &fSoll, fPos);
if (iRet != 1) {
return 0;
}
/**
* This here is a check for the condition when the current breaks down.
* This situation is characterized by the fSoll being something and the
* fPos being 0.
*/
if(ABS(*fPos) < .1 && ABS(fSoll) > .1 ){
pMe->iCapCount++;
if(pMe->iCapCount > 3){
pMe->iLastError = CAPSIZED;
return 0;
}
}
else
{
pMe->iCapCount = 0;
}
return 1;
}
/*----------------------------------------------------------------------------*/
static int EL755Run(pEVDriver self, float fVal)
{
pEL755Driv pMe = NULL;
int iRet;
assert(self);
pMe = (pEL755Driv )self->pPrivate;
assert(pMe);
iRet = EL755_SetCurrent(&(pMe->pData),fVal);
pMe->iCapCount = 0;
if(iRet != 1)
{
return 0;
}
return 1;
}
/*--------------------------------------------------------------------------*/
static int EL755Error(pEVDriver self, int *iCode, char *error, int iErrLen)
{
pEL755Driv pMe = NULL;
char *pPtr = NULL;
int i1, i2;
char pBueffel[132];
assert(self);
pMe = (pEL755Driv)self->pPrivate;
assert(pMe);
/* retrieve error */
EL755_ErrInfo(&pPtr,iCode,&i1,&i2);
switch(*iCode)
{
case CAPSIZED:
strncpy(error,"Powersupply has capsized, try lower current", iErrLen);
break;
case EL755__TURNED_OFF:
strncpy(error,"EL755__TURNED_OF",iErrLen);
break;
case EL755__TOO_MANY:
strncpy(error,"EL755__TO_MANY",iErrLen);
break;
case EL755__TOO_LARGE:
strncpy(error,"EL755__TOO_LARGE",iErrLen);
break;
case EL755__OVFLOW:
strncpy(error,"EL755_OVFLOW",iErrLen);
break;
case EL755__OUT_OF_RANGE:
strncpy(error,"EL755_OUT_OF_RANGE",iErrLen);
break;
case EL755__OFFLINE:
strncpy(error,"EL755_OFFLINE",iErrLen);
break;
case EL755__NO_SOCKET:
strncpy(error,"EL755__NO_SOCKET",iErrLen);
break;
case EL755__NOT_OPEN:
strncpy(error,"EL755__NOT_OPEN",iErrLen);
break;
case EL755__FORCED_CLOSED:
strncpy(error,"EL755__FORCED_CLOSED",iErrLen);
break;
case EL755__BAD_TMO:
strncpy(error,"EL755__BAD_TMO",iErrLen);
break;
case EL755__BAD_SOCKET:
strncpy(error,"EL755__BAD_SOCKET",iErrLen);
break;
case EL755__BAD_PAR:
strncpy(error,"EL755__BAD_PAR",iErrLen);
break;
case EL755__BAD_OFL:
strncpy(error,"EL755__BAD_OFL",iErrLen);
break;
case EL755__BAD_MALLOC:
strncpy(error,"EL755__BAD_MALLOC",iErrLen);
break;
case EL755__BAD_ILLG:
strncpy(error,"EL755__BAD_ILLG",iErrLen);
break;
case EL755__BAD_DEV:
strncpy(error,"EL755__BAD_DEV",iErrLen);
break;
case EL755__BAD_CMD:
strncpy(error,"EL755__BAD_CMD",iErrLen);
break;
case EL755__BAD_ASYNSRV:
strncpy(error,"EL755__BAD_ASYNSRV",iErrLen);
break;
default:
sprintf(pBueffel,"Unknown error %d found",*iCode);
strncpy(error,pBueffel,iErrLen);
break;
}
return 1;
if (ABS(*fPos) < .1 && ABS(fSoll) > .1) {
pMe->iCapCount++;
if (pMe->iCapCount > 3) {
pMe->iLastError = CAPSIZED;
return 0;
}
} else {
pMe->iCapCount = 0;
}
return 1;
}
/*----------------------------------------------------------------------------*/
static int EL755Run(pEVDriver self, float fVal)
{
pEL755Driv pMe = NULL;
int iRet;
assert(self);
pMe = (pEL755Driv) self->pPrivate;
assert(pMe);
iRet = EL755_SetCurrent(&(pMe->pData), fVal);
pMe->iCapCount = 0;
if (iRet != 1) {
return 0;
}
return 1;
}
/*--------------------------------------------------------------------------*/
static int EL755Error(pEVDriver self, int *iCode, char *error, int iErrLen)
{
pEL755Driv pMe = NULL;
char *pPtr = NULL;
int i1, i2;
char pBueffel[132];
assert(self);
pMe = (pEL755Driv) self->pPrivate;
assert(pMe);
/* retrieve error */
EL755_ErrInfo(&pPtr, iCode, &i1, &i2);
switch (*iCode) {
case CAPSIZED:
strncpy(error, "Powersupply has capsized, try lower current", iErrLen);
break;
case EL755__TURNED_OFF:
strncpy(error, "EL755__TURNED_OF", iErrLen);
break;
case EL755__TOO_MANY:
strncpy(error, "EL755__TO_MANY", iErrLen);
break;
case EL755__TOO_LARGE:
strncpy(error, "EL755__TOO_LARGE", iErrLen);
break;
case EL755__OVFLOW:
strncpy(error, "EL755_OVFLOW", iErrLen);
break;
case EL755__OUT_OF_RANGE:
strncpy(error, "EL755_OUT_OF_RANGE", iErrLen);
break;
case EL755__OFFLINE:
strncpy(error, "EL755_OFFLINE", iErrLen);
break;
case EL755__NO_SOCKET:
strncpy(error, "EL755__NO_SOCKET", iErrLen);
break;
case EL755__NOT_OPEN:
strncpy(error, "EL755__NOT_OPEN", iErrLen);
break;
case EL755__FORCED_CLOSED:
strncpy(error, "EL755__FORCED_CLOSED", iErrLen);
break;
case EL755__BAD_TMO:
strncpy(error, "EL755__BAD_TMO", iErrLen);
break;
case EL755__BAD_SOCKET:
strncpy(error, "EL755__BAD_SOCKET", iErrLen);
break;
case EL755__BAD_PAR:
strncpy(error, "EL755__BAD_PAR", iErrLen);
break;
case EL755__BAD_OFL:
strncpy(error, "EL755__BAD_OFL", iErrLen);
break;
case EL755__BAD_MALLOC:
strncpy(error, "EL755__BAD_MALLOC", iErrLen);
break;
case EL755__BAD_ILLG:
strncpy(error, "EL755__BAD_ILLG", iErrLen);
break;
case EL755__BAD_DEV:
strncpy(error, "EL755__BAD_DEV", iErrLen);
break;
case EL755__BAD_CMD:
strncpy(error, "EL755__BAD_CMD", iErrLen);
break;
case EL755__BAD_ASYNSRV:
strncpy(error, "EL755__BAD_ASYNSRV", iErrLen);
break;
default:
sprintf(pBueffel, "Unknown error %d found", *iCode);
strncpy(error, pBueffel, iErrLen);
break;
}
return 1;
}
/*-----------------------------------------------------------------------*/
int EL755_Send(void **handle, char *pCom, char *reply, int iLen);
int EL755_Send(void **handle, char *pCom, char *reply, int iLen);
/*
* added to el755_utility by M.K.
*/
*/
/*--------------------------------------------------------------------------*/
static int EL755Send(pEVDriver self, char *pCommand, char *pReply, int iLen)
{
pEL755Driv pMe = NULL;
char *pPtr = NULL;
char pBueffel[132];
int iRet;
assert(self);
pMe = (pEL755Driv)self->pPrivate;
assert(pMe);
if(strlen(pCommand) > 130)
return 0;
static int EL755Send(pEVDriver self, char *pCommand, char *pReply,
int iLen)
{
pEL755Driv pMe = NULL;
char *pPtr = NULL;
char pBueffel[132];
int iRet;
/* make sure that we have a \r at the end */
strcpy(pBueffel,pCommand);
if(strrchr(pBueffel,(int)'\r') == NULL)
{
strcat(pBueffel,"\r");
}
assert(self);
pMe = (pEL755Driv) self->pPrivate;
assert(pMe);
if (strlen(pCommand) > 130)
return 0;
/* make sure that we have a \r at the end */
strcpy(pBueffel, pCommand);
if (strrchr(pBueffel, (int) '\r') == NULL) {
strcat(pBueffel, "\r");
}
return EL755_Send(&(pMe->pData), pBueffel, pReply, iLen);
}
return EL755_Send(&(pMe->pData),pBueffel,pReply,iLen);
}
/*--------------------------------------------------------------------------*/
static int EL755Init(pEVDriver self)
{
pEL755Driv pMe = NULL;
int iRet;
assert(self);
pMe = (pEL755Driv )self->pPrivate;
assert(pMe);
static int EL755Init(pEVDriver self)
{
pEL755Driv pMe = NULL;
int iRet;
assert(self);
pMe = (pEL755Driv) self->pPrivate;
assert(pMe);
pMe->pData = NULL;
iRet = EL755_Open(&(pMe->pData), pMe->pHost, pMe->iPort, pMe->iChannel,
pMe->iIndex);
return iRet;
}
pMe->pData = NULL;
iRet = EL755_Open(&(pMe->pData),pMe->pHost,pMe->iPort,pMe->iChannel,
pMe->iIndex);
return iRet;
}
/*--------------------------------------------------------------------------*/
static int EL755Close(pEVDriver self)
{
pEL755Driv pMe = NULL;
int iRet;
assert(self);
pMe = (pEL755Driv )self->pPrivate;
assert(pMe);
static int EL755Close(pEVDriver self)
{
pEL755Driv pMe = NULL;
int iRet;
assert(self);
pMe = (pEL755Driv) self->pPrivate;
assert(pMe);
EL755_Close(&(pMe->pData), 0);
return 1;
}
EL755_Close(&(pMe->pData),0);
return 1;
}
/*---------------------------------------------------------------------------*/
static int EL755Fix(pEVDriver self, int iError)
{
pEL755Driv pMe = NULL;
int iRet;
assert(self);
pMe = (pEL755Driv )self->pPrivate;
assert(pMe);
static int EL755Fix(pEVDriver self, int iError)
{
pEL755Driv pMe = NULL;
int iRet;
switch(iError)
{
case CAPSIZED:
case EL755__TURNED_OFF:
case EL755__TOO_MANY:
case EL755__TOO_LARGE:
case EL755__OUT_OF_RANGE:
case EL755__BAD_PAR:
case EL755__BAD_SOCKET:
case EL755__BAD_MALLOC:
case EL755__BAD_DEV:
case EL755__BAD_CMD:
case EL755__BAD_ASYNSRV:
return DEVFAULT;
break;
case EL755__OVFLOW:
case EL755__BAD_TMO:
case EL755__BAD_ILLG:
return DEVREDO;
break;
case EL755__OFFLINE:
case EL755__BAD_OFL:
EL755_PutOnline(&(pMe->pData),2);
return DEVREDO;
break;
case EL755__NO_SOCKET:
case EL755__NOT_OPEN:
case EL755__FORCED_CLOSED:
EL755_Open(&(pMe->pData),pMe->pHost,pMe->iPort,
pMe->iChannel,pMe->iIndex);
return DEVREDO;
break;
default:
return DEVFAULT;
break;
}
assert(self);
pMe = (pEL755Driv) self->pPrivate;
assert(pMe);
switch (iError) {
case CAPSIZED:
case EL755__TURNED_OFF:
case EL755__TOO_MANY:
case EL755__TOO_LARGE:
case EL755__OUT_OF_RANGE:
case EL755__BAD_PAR:
case EL755__BAD_SOCKET:
case EL755__BAD_MALLOC:
case EL755__BAD_DEV:
case EL755__BAD_CMD:
case EL755__BAD_ASYNSRV:
return DEVFAULT;
break;
case EL755__OVFLOW:
case EL755__BAD_TMO:
case EL755__BAD_ILLG:
return DEVREDO;
break;
case EL755__OFFLINE:
case EL755__BAD_OFL:
EL755_PutOnline(&(pMe->pData), 2);
return DEVREDO;
break;
case EL755__NO_SOCKET:
case EL755__NOT_OPEN:
case EL755__FORCED_CLOSED:
EL755_Open(&(pMe->pData), pMe->pHost, pMe->iPort,
pMe->iChannel, pMe->iIndex);
return DEVREDO;
break;
default:
return DEVFAULT;
break;
}
}
/*--------------------------------------------------------------------------*/
static int EL755Halt(pEVDriver *self)
{
assert(self);
return 1;
static int EL755Halt(pEVDriver * self)
{
assert(self);
return 1;
}
/*------------------------------------------------------------------------*/
void KillEL755(void *pData)
{
pEL755Driv pMe = NULL;
pMe = (pEL755Driv) pData;
assert(pMe);
if (pMe->pHost) {
free(pMe->pHost);
}
/*------------------------------------------------------------------------*/
void KillEL755(void *pData)
{
pEL755Driv pMe = NULL;
pMe = (pEL755Driv)pData;
assert(pMe);
if(pMe->pHost)
{
free(pMe->pHost);
}
free(pMe);
}
/*------------------------------------------------------------------------*/
pEVDriver CreateEL755Driv(int argc, char *argv[])
{
pEVDriver pNew = NULL;
pEL755Driv pSim = NULL;
/* check for arguments */
if(argc < 4)
{
return NULL;
}
pNew = CreateEVDriver(argc,argv);
pSim = (pEL755Driv)malloc(sizeof(EL755Driv));
memset(pSim,0,sizeof(EL755Driv));
if(!pNew || !pSim)
{
return NULL;
}
pNew->pPrivate = pSim;
pNew->KillPrivate = KillEL755;
pSim->iLastError = 0;
pSim->pHost = strdup(argv[0]);
pSim->iPort = atoi(argv[1]);
pSim->iChannel = atoi(argv[2]);
pSim->iIndex = atoi(argv[3]);
/* initialise function pointers */
pNew->SetValue = EL755Run;
pNew->GetValue = GetEL755Pos;
pNew->Send = EL755Send;
pNew->GetError = EL755Error;
pNew->TryFixIt = EL755Fix;
pNew->Init = EL755Init;
pNew->Close = EL755Close;
return pNew;
}
free(pMe);
}
/*------------------------------------------------------------------------*/
pEVDriver CreateEL755Driv(int argc, char *argv[])
{
pEVDriver pNew = NULL;
pEL755Driv pSim = NULL;
/* check for arguments */
if (argc < 4) {
return NULL;
}
pNew = CreateEVDriver(argc, argv);
pSim = (pEL755Driv) malloc(sizeof(EL755Driv));
memset(pSim, 0, sizeof(EL755Driv));
if (!pNew || !pSim) {
return NULL;
}
pNew->pPrivate = pSim;
pNew->KillPrivate = KillEL755;
pSim->iLastError = 0;
pSim->pHost = strdup(argv[0]);
pSim->iPort = atoi(argv[1]);
pSim->iChannel = atoi(argv[2]);
pSim->iIndex = atoi(argv[3]);
/* initialise function pointers */
pNew->SetValue = EL755Run;
pNew->GetValue = GetEL755Pos;
pNew->Send = EL755Send;
pNew->GetError = EL755Error;
pNew->TryFixIt = EL755Fix;
pNew->Init = EL755Init;
pNew->Close = EL755Close;
return pNew;
}