- New drivers for EL737 and EL734 high performance

- Changes to makefiles


SKIPPED:
	psi/dornier2.c
	psi/el734hp.c
	psi/el737driv.c
	psi/el737hpdriv.c
	psi/make_gen
	psi/makefile_alpha
	psi/psi.c
	psi/velodorn.c
	psi/velodorn.h
	psi/velodorn.w
	psi/hardsup/el737_utility.c
	psi/hardsup/makefile_alpha
	psi/tecs/makefile_alpha
This commit is contained in:
cvs
2003-07-08 13:26:53 +00:00
parent e52bd5d937
commit f7abbe6aa5
17 changed files with 473 additions and 143 deletions

15
alpha_def Normal file
View File

@ -0,0 +1,15 @@
#------------------------------------------------------------------------
# Some defines used further up in the makefile hierarchy of the PSI SICS
# universe.
#-------------------------------------------------------------------------
#==========================================================================
# the following lines only for fortified version
#DFORTIFY=-DFORTIFY
#FORTIFYOBJ=strdup.o fortify.o
#----------------select proper Makefile
MFLAGS= -f makefile_alpha
#------------- path to HDF installation
HDFROOT=/data/lnslib

View File

@ -5,7 +5,7 @@
The SICS Interface to a single detector and his associated The SICS Interface to a single detector and his associated
monitors. monitors.
Mark Koennecke, January 1997 Mark Koennecke, January 1997
Copyright: Copyright:

View File

@ -1,3 +1,3 @@
288 290
NEVER, EVER modify or delete this file NEVER, EVER modify or delete this file
You'll risk eternal damnation and a reincarnation as a cockroach!|n You'll risk eternal damnation and a reincarnation as a cockroach!|n

View File

@ -5,10 +5,6 @@
# Mark Koennecke 1996-2001 # Mark Koennecke 1996-2001
# Markus Zolliker, March 2003 # Markus Zolliker, March 2003
#========================================================================== #==========================================================================
# the following lines only for fortified version
#DFORTIFY=-DFORTIFY
#FORTIFYOBJ=strdup.o fortify.o
#==========================================================================
# assign if the National Instrument GPIB driver is available # assign if the National Instrument GPIB driver is available
#NI= -DHAVENI #NI= -DHAVENI
#NIOBJ= nigpib.o #NIOBJ= nigpib.o
@ -22,10 +18,7 @@
#DIFIL= difrac.o #DIFIL= difrac.o
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
#----------------select proper Makefile include alpha_def
MFLAGS= -f makefile_alpha
HDFROOT=/data/lnslib
CC = cc CC = cc
CFLAGS = -I$(HDFROOT)/include -I. $(DFORTIFY) -DHDF4 -DHDF5 -Ipsi/hardsup \ CFLAGS = -I$(HDFROOT)/include -I. $(DFORTIFY) -DHDF4 -DHDF5 -Ipsi/hardsup \

View File

@ -5,9 +5,8 @@
# Mark Koennecke, November 1996 # Mark Koennecke, November 1996
# Markus Zolliker, March 2003 # Markus Zolliker, March 2003
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# the following line only for fortified version
#DFORTIFY=-DFORTIFY -I$(SRC).. include ../alpha_def
#==========================================================================
CC = cc CC = cc
CFLAGS = -std1 -g $(DFORTIFY) CFLAGS = -std1 -g $(DFORTIFY)

142
motor.c
View File

@ -74,6 +74,7 @@
#define SPEED 9 #define SPEED 9
#define SIGN 10 #define SIGN 10
#define ECOUNT 11 #define ECOUNT 11
#define POSCOUNT 12
/*------------------------------------------------------------------------ /*------------------------------------------------------------------------
a tiny structure used in CallBack work a tiny structure used in CallBack work
*/ */
@ -173,6 +174,9 @@
fputs(pBueffel,fd); fputs(pBueffel,fd);
sprintf(pBueffel,"%s AccessCode %f\n",name,ObVal(self->ParArray,USRIGHTS)); sprintf(pBueffel,"%s AccessCode %f\n",name,ObVal(self->ParArray,USRIGHTS));
fputs(pBueffel,fd); fputs(pBueffel,fd);
sprintf(pBueffel,"%s poscount %f\n",name,
ObVal(self->ParArray,POSCOUNT));
fputs(pBueffel,fd);
return 1; return 1;
} }
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
@ -195,18 +199,145 @@
SCSetInterrupt(pCon,iVal); SCSetInterrupt(pCon,iVal);
} }
} }
/*-----------------------------------------------------------------------*/
static int evaluateStatus(pMotor self, SConnection *pCon)
{
int iRet, iCode;
MotCallback sCall;
char pBueffel[256], pError[132];
float fHard;
iRet = self->pDriver->GetStatus(self->pDriver);
if( (iRet == OKOK) || (iRet == HWIdle))
{
MotorGetSoftPosition(self,pCon,&sCall.fVal);
sCall.pName = self->name;
InvokeCallBack(self->pCall, MOTEND, &sCall);
MotorGetHardPosition(self,pCon,&fHard);
self->fPosition = fHard;
if(absf(fHard - self->fTarget) > ObVal(self->ParArray,PREC))
{
snprintf(pBueffel,131,"WARNING: %s off position by %f",
self->name, absf(fHard - self->fTarget));
SCWrite(pCon,pBueffel, eWarning);
MotorInterrupt(pCon,ObVal(self->ParArray,INT));
self->retryCount = 0;
return HWPosFault;
}
self->retryCount = 0;
return HWIdle;
}
/* motor suggests a fault */
else if(iRet == HWFault)
{
self->pDriver->GetError(self->pDriver,&iCode, pError,131);
iRet = self->pDriver->TryAndFixIt(self->pDriver,iCode, self->fTarget);
if(iRet == MOTFAIL)
{
snprintf(pBueffel,255,"ERROR: %s on %s",pError,self->name);
SCWrite(pCon,pBueffel,eError);
MotorInterrupt(pCon,ObVal(self->ParArray,INT));
self->retryCount = 0;
return HWFault;
}
else if(iRet == MOTREDO)
{
self->pDriver->RunTo(self->pDriver,self->fTarget);
self->retryCount++;
if(self->retryCount >= 3)
{
self->retryCount = 0;
return HWFault;
}
return HWBusy;
}
else
{
self->retryCount = 0;
return HWBusy;
}
}
/* a positioning fault */
else if(iRet == HWPosFault)
{
self->pDriver->GetError(self->pDriver,&iCode, pError,131);
iRet = self->pDriver->TryAndFixIt(self->pDriver,iCode, self->fTarget);
if(iRet == MOTFAIL)
{
snprintf(pBueffel,255,"ERROR: %s on %s",pError,self->name);
SCWrite(pCon,pBueffel,eError);
MotorInterrupt(pCon,ObVal(self->ParArray,INT));
self->retryCount = 0;
return HWFault;
}
else if(iRet == MOTREDO)
{
self->posFaultCount++;
if(self->posFaultCount >= 4)
{
self->posFaultCount = 0;
self->retryCount = 0;
return HWPosFault;
}
self->pDriver->RunTo(self->pDriver,self->fTarget);
return HWBusy;
}
else
{
return HWBusy;
}
}
else if(iRet == HWWarn)
{
self->pDriver->GetError(self->pDriver,&iCode,pError,131);
snprintf(pBueffel,255,"WARNING: %s on %s",pError,self->name);
SCWrite(pCon,pBueffel,eStatus);
return HWIdle;
}
self->retryCount = 0;
return iRet;
}
/*---------------------------------------------------------------------*/
static void handleMoveCallback(pMotor self, SConnection *pCon)
{
MotCallback sCall;
self->posCount++;
if(self->posCount >= ObVal(self->ParArray,POSCOUNT))
{
MotorGetSoftPosition(self,pCon,&sCall.fVal);
sCall.pName = self->name;
InvokeCallBack(self->pCall, MOTDRIVE, &sCall);
self->posCount = 0;
}
}
/*-----------------------------------------------------------------------*/
static int MotorStatus(void *sulf, SConnection *pCon)
{
pMotor self = NULL;
int status;
assert(sulf);
self = (pMotor)sulf;
status = evaluateStatus(self,pCon);
if(status == HWBusy)
{
handleMoveCallback(self,pCon);
}
return status;
}
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
Refactor Refactor
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
static int MotorStatus(void *sulf, SConnection *pCon) static int MotorStatus2(void *sulf, SConnection *pCon)
{ {
float fHard; float fHard;
pMotor self; pMotor self;
int iRet,i, iCode; int iRet,i, iCode;
static int iRetry = 0;
char pError[132]; char pError[132];
char pBueffel[256]; char pBueffel[256];
static int iPosFault = 0; static int iPosFault = 0, iRetry = 0;
MotCallback sCall; MotCallback sCall;
@ -354,7 +485,7 @@
/* create and initialize parameters */ /* create and initialize parameters */
pM->ParArray = ObParCreate(12); pM->ParArray = ObParCreate(13);
if(!pM->ParArray) if(!pM->ParArray)
{ {
free(pM); free(pM);
@ -372,6 +503,7 @@
ObParInit(pM->ParArray,SPEED,"speed",0.02,usInternal); ObParInit(pM->ParArray,SPEED,"speed",0.02,usInternal);
ObParInit(pM->ParArray,SIGN,"sign",1.0,usMugger); ObParInit(pM->ParArray,SIGN,"sign",1.0,usMugger);
ObParInit(pM->ParArray,ECOUNT,"failafter",3.0,usMugger); ObParInit(pM->ParArray,ECOUNT,"failafter",3.0,usMugger);
ObParInit(pM->ParArray,POSCOUNT,"poscount",20.0,usMugger);
pDriv->GetPosition(pDriv,&(pM->fPosition)); pDriv->GetPosition(pDriv,&(pM->fPosition));
pM->fTarget = pM->fPosition; pM->fTarget = pM->fPosition;
pM->endScriptID = 0; pM->endScriptID = 0;
@ -696,6 +828,8 @@ extern void KillPiPiezo(void *pData);
} }
/* Boundaries OK, send command */ /* Boundaries OK, send command */
self->posFaultCount = 0;
self->retryCount = 0;
self->fTarget = fHard; self->fTarget = fHard;
iRet = self->pDriver->RunTo(self->pDriver,fHard); iRet = self->pDriver->RunTo(self->pDriver,fHard);
if(iRet != OKOK) if(iRet != OKOK)

View File

@ -25,6 +25,10 @@
float fTarget; float fTarget;
float fPosition; float fPosition;
long endScriptID; long endScriptID;
int posCount; /* counter for calling the
motor callback */
int retryCount; /* for retries in status */
int posFaultCount;
} Motor; } Motor;
typedef Motor *pMotor; typedef Motor *pMotor;
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/

View File

@ -472,7 +472,7 @@ CreateSocketAdress(
/* /*
how may cycles to read in order to have a timeout how may cycles to read in order to have a timeout
*/ */
nLoop = timeout/10; nLoop = timeout/5;
if(nLoop <= 0) if(nLoop <= 0)
{ {
nLoop = 1; nLoop = 1;
@ -480,7 +480,7 @@ CreateSocketAdress(
for(i = 0; i < nLoop; i++) for(i = 0; i < nLoop; i++)
{ {
iRet = NETAvailable(self,10); iRet = NETAvailable(self,5);
if(iRet < 0) if(iRet < 0)
{ {
return iRet; return iRet;
@ -521,6 +521,13 @@ CreateSocketAdress(
return 1; return 1;
} }
} }
if(read >= iBufLen)
{
/*
we have filled the buffer but not found a terminator
*/
return -1;
}
} }
} }
return 0; /* timeout! */ return 0; /* timeout! */

View File

@ -957,7 +957,7 @@ extern VerifyChannel(mkChannel *self); /* defined in network.c */
assert(self); assert(self);
/* find the entry to remove */ /* find the entry to read */
iRet = LLDnodePtr2First(self->iList); iRet = LLDnodePtr2First(self->iList);
while(iRet != 0) while(iRet != 0)
{ {
@ -1006,3 +1006,5 @@ extern VerifyChannel(mkChannel *self); /* defined in network.c */
} }
return 0; return 0;
} }

View File

@ -301,7 +301,9 @@
/* shut tasker down */ /* shut tasker down */
TaskerDelete(&self->pTasker); TaskerDelete(&self->pTasker);
self->pTasker = NULL;
self->pReader = NULL;
/* save status */ /* save status */
if(!self->simMode) if(!self->simMode)
{ {

View File

@ -16,15 +16,9 @@
#include "fortify.h" #include "fortify.h"
#include "sics.h" #include "sics.h"
#include "splitter.h" #include "splitter.h"
#include "nread.h"
#include "rs232controller.h" #include "rs232controller.h"
/*
own error codes
*/
#define NOTCONNECTED -2700
#define BADMEMORY -2701
#define TIMEOUT -2702
#define FAILEDCONNECT -2703
/*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*/
void setRS232SendTerminator(prs232 self, char *term) void setRS232SendTerminator(prs232 self, char *term)
@ -70,6 +64,12 @@ void setRS232Timeout(prs232 self, int timeout)
assert(self); assert(self);
self->timeout = timeout; self->timeout = timeout;
} }
/*---------------------------------------------------------------------*/
void setRS232Debug(prs232 self, int deb)
{
assert(self);
self->debug = deb;
}
/*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*/
int writeRS232(prs232 self, void *data, int dataLen) int writeRS232(prs232 self, void *data, int dataLen)
{ {
@ -121,6 +121,11 @@ int writeRS232(prs232 self, void *data, int dataLen)
send send
*/ */
iRet = NETWrite(self->pSock,data,dataLen); iRet = NETWrite(self->pSock,data,dataLen);
if(self->debug > 0)
{
printf("RS232 OUT: %s",(char *)data);
fflush(stdout);
}
if(pPtr != NULL) if(pPtr != NULL)
free(pPtr); free(pPtr);
@ -164,6 +169,11 @@ int readRS232(prs232 self, void *data, int *dataLen)
lRead = recv(self->pSock->sockid, data,rLength,0); lRead = recv(self->pSock->sockid, data,rLength,0);
if(lRead >= 0) if(lRead >= 0)
{ {
if(self->debug > 0)
{
printf("RS232 IN: %s",(char *)data);
fflush(stdout);
}
*dataLen = lRead; *dataLen = lRead;
return 1; return 1;
} }
@ -172,11 +182,45 @@ int readRS232(prs232 self, void *data, int *dataLen)
return (int)lRead; return (int)lRead;
} }
} }
/* /*
not reached not reached
*/ */
return 0; return 0;
} }
/*--------------------------------------------------------------------*/
int readRS232TillTerm(prs232 self, void *data, int *datalen){
int iRet, replylen;
assert(self);
/*
catch an unconnected socket
*/
if(!self->pSock)
{
return NOTCONNECTED;
}
memset(data,0,*datalen);
replylen = *datalen;
iRet = NETReadTillTerm(self->pSock,self->timeout,self->replyTerminator,
(char *)data, replylen);
if(self->debug > 0)
{
printf("RS232 IN/TERM: %s",(char *)data);
fflush(stdout);
}
if(iRet == 0)
{
return TIMEOUT;
}
else if(iRet == -1)
{
return INCOMPLETE;
}
*datalen = strlen((char *)data);
return 1;
}
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/
int availableRS232(prs232 self) int availableRS232(prs232 self)
{ {
@ -190,7 +234,32 @@ int availableRS232(prs232 self)
return NOTCONNECTED; return NOTCONNECTED;
} }
return NETAvailable(self->pSock,self->timeout); return NETAvailable(self->pSock,3);
}
/*-----------------------------------------------------------------------*/
int availableNetRS232(prs232 self)
{
int status;
assert(self);
/*
catch an unconnected socket
*/
if(!self->pSock)
{
return NOTCONNECTED;
}
if(!self->registered){
if(pServ->pReader != NULL){
NetReadRegisterUserSocket(pServ->pReader,self->pSock->sockid);
self->registered = 1;
return 0;
}
}
status = NetReadReadable(pServ->pReader,self->pSock->sockid);
NetReadResetUser(pServ->pReader, self->pSock->sockid);
return status;
} }
/*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/
int transactRS232(prs232 self, void *send, int sendLen, int transactRS232(prs232 self, void *send, int sendLen,
@ -223,10 +292,19 @@ int transactRS232(prs232 self, void *send, int sendLen,
memset(reply,0,replyLen); memset(reply,0,replyLen);
iRet = NETReadTillTerm(self->pSock,self->timeout,self->replyTerminator, iRet = NETReadTillTerm(self->pSock,self->timeout,self->replyTerminator,
reply, replyLen); reply, replyLen);
if(self->debug > 0)
{
printf("RS232 IN/TRANS: %s",(char *)reply);
fflush(stdout);
}
if(iRet == 0) if(iRet == 0)
{ {
return TIMEOUT; return TIMEOUT;
} }
else if(iRet == -1)
{
return INCOMPLETE;
}
else else
{ {
return iRet; return iRet;
@ -262,6 +340,10 @@ void getRS232Error(int iCode, char *errorBuffer,
"Failed to connect to terminal server", "Failed to connect to terminal server",
errorBufferLen); errorBufferLen);
break; break;
case INCOMPLETE:
strncpy(errorBuffer,"Did not find terminator in read buffer",
errorBufferLen);
break;
default: default:
strncpy(errorBuffer,strerror(errno), strncpy(errorBuffer,strerror(errno),
errorBufferLen); errorBufferLen);
@ -277,17 +359,53 @@ int initRS232(prs232 self)
if(self->pSock != NULL) if(self->pSock != NULL)
{ {
if(pServ->pReader != NULL){
NetReadRemoveUserSocket(pServ->pReader,self->pSock->sockid);
}
NETClosePort(self->pSock); NETClosePort(self->pSock);
self->pSock = NULL; self->pSock = NULL;
} }
self->pSock = NETConnect(self->pHost, self->iPort); self->pSock = NETConnect(self->pHost, self->iPort);
if(!self->pSock) if(!self->pSock){
return FAILEDCONNECT; return FAILEDCONNECT;
else } else{
if(pServ->pReader != NULL){
NetReadRegisterUserSocket(pServ->pReader,self->pSock->sockid);
self->registered = 1;
}
return 1; return 1;
}
}
/*------------------------------------------------------------------*/
prs232 createRS232(char *host, int iPort)
{
prs232 pNew = NULL;
/*
create data structure
*/
pNew = (prs232)malloc(sizeof(rs232));
if(!pNew)
{
return NULL;
}
memset(pNew, 0, sizeof(rs232));
pNew->pHost = strdup(host);
pNew->iPort = iPort;
pNew->sendTerminator = strdup("\r");
pNew->replyTerminator = strdup("\n");
pNew->timeout = 1000;
pNew->pDes = CreateDescriptor("RS232 Controller");
if(!pNew->pDes || !pNew->pHost ||
!pNew->replyTerminator || !pNew->sendTerminator)
{
return NULL;
}
return pNew;
} }
/*-------------------------------------------------------------------*/ /*-------------------------------------------------------------------*/
static void KillRS232(void *pData) void KillRS232(void *pData)
{ {
prs232 self = (prs232)pData; prs232 self = (prs232)pData;
if(!self) if(!self)
@ -309,6 +427,9 @@ static void KillRS232(void *pData)
} }
if(self->pSock) if(self->pSock)
{ {
if(pServ->pReader != NULL){
NetReadRemoveUserSocket(pServ->pReader,self->pSock->sockid);
}
NETClosePort(self->pSock); NETClosePort(self->pSock);
} }
if(self->pHost) if(self->pHost)
@ -590,7 +711,7 @@ int RS232Factory(SConnection *pCon, SicsInterp *pSics,
void *pData, int argc, char *argv[]) void *pData, int argc, char *argv[])
{ {
prs232 pNew = NULL; prs232 pNew = NULL;
int iRet; int iRet, status;
char pError[256]; char pError[256];
if(argc < 4) if(argc < 4)
@ -623,8 +744,8 @@ int RS232Factory(SConnection *pCon, SicsInterp *pSics,
SCWrite(pCon,"ERROR: out of memory in RS232Factory",eError); SCWrite(pCon,"ERROR: out of memory in RS232Factory",eError);
return 0; return 0;
} }
pNew->pSock = NETConnect(pNew->pHost, pNew->iPort); status = initRS232(pNew);
if(!pNew->pSock) if(status != 1)
{ {
sprintf(pError,"ERROR: failed to connect to %s at port %d", sprintf(pError,"ERROR: failed to connect to %s at port %d",
pNew->pHost, pNew->iPort); pNew->pHost, pNew->iPort);

View File

@ -14,6 +14,14 @@
#ifndef RS232CONTROLLER #ifndef RS232CONTROLLER
#define RS232CONTROLLER #define RS232CONTROLLER
#include "network.h" #include "network.h"
/*
own error codes
*/
#define NOTCONNECTED -2700
#define BADMEMORY -2701
#define TIMEOUT -2702
#define FAILEDCONNECT -2703
#define INCOMPLETE -2704
/*----------------------- a data structure ----------------------------*/ /*----------------------- a data structure ----------------------------*/
@ -25,6 +33,8 @@
mkChannel *pSock; mkChannel *pSock;
char *pHost; char *pHost;
int iPort; int iPort;
int debug;
int registered;
} rs232, *prs232; } rs232, *prs232;
@ -39,14 +49,22 @@
void setRS232SendTerminator(prs232 self, char *term); void setRS232SendTerminator(prs232 self, char *term);
void setRS232ReplyTerminator(prs232 self, char *term); void setRS232ReplyTerminator(prs232 self, char *term);
void setRS232Timeout(prs232 self, int timeout); void setRS232Timeout(prs232 self, int timeout);
void setRS232Debug(prs232 self, int deb);
int writeRS232(prs232 self, void *data, int dataLen); int writeRS232(prs232 self, void *data, int dataLen);
int readRS232(prs232 self, void *data, int *dataLen); int readRS232(prs232 self, void *data, int *dataLen);
int readRS232TillTerm(prs232 self, void *data, int *datalen);
int availableRS232(prs232 self); int availableRS232(prs232 self);
int availableNetRS232(prs232 self);
int transactRS232(prs232 self, void *send, int sendLen, int transactRS232(prs232 self, void *send, int sendLen,
void *reply, int replylen); void *reply, int replylen);
void getRS232Error(int iCode, char *errorBuffer, void getRS232Error(int iCode, char *errorBuffer,
int errorBufferLen); int errorBufferLen);
int initRS232(prs232 self); int initRS232(prs232 self);
prs232 createRS232(char *host, int iPort);
void KillRS232(void *pData);
#endif #endif

View File

@ -23,6 +23,8 @@ This class provides the basic communication facilities for an arbitrary
mkChannel *pSock; mkChannel *pSock;
char *pHost; char *pHost;
int iPort; int iPort;
int debug;
int registered;
} rs232, *prs232; } rs232, *prs232;
@} @}
@ -36,6 +38,10 @@ The fields are:
\item[mkChannel] Our very own structure for a network connection. \item[mkChannel] Our very own structure for a network connection.
\item[pHost]The host (mostly the terminal server) to connect to. \item[pHost]The host (mostly the terminal server) to connect to.
\item[iPort] The port at host to which to connect. \item[iPort] The port at host to which to connect.
\item[debug] a flag which switches logging of the communication to
stdout on.
\item[registered] a flag which is set if the registration of the rs232
controllers network port has succeeded.
\end{description} \end{description}
The following interface functions are provided: The following interface functions are provided:
@ -49,14 +55,22 @@ The following interface functions are provided:
void setRS232SendTerminator(prs232 self, char *term); void setRS232SendTerminator(prs232 self, char *term);
void setRS232ReplyTerminator(prs232 self, char *term); void setRS232ReplyTerminator(prs232 self, char *term);
void setRS232Timeout(prs232 self, int timeout); void setRS232Timeout(prs232 self, int timeout);
void setRS232Debug(prs232 self, int deb);
int writeRS232(prs232 self, void *data, int dataLen); int writeRS232(prs232 self, void *data, int dataLen);
int readRS232(prs232 self, void *data, int *dataLen); int readRS232(prs232 self, void *data, int *dataLen);
int readRS232TillTerm(prs232 self, void *data, int *datalen);
int availableRS232(prs232 self); int availableRS232(prs232 self);
int availableNetRS232(prs232 self);
int transactRS232(prs232 self, void *send, int sendLen, int transactRS232(prs232 self, void *send, int sendLen,
void *reply, int replylen); void *reply, int replylen);
void getRS232Error(int iCode, char *errorBuffer, void getRS232Error(int iCode, char *errorBuffer,
int errorBufferLen); int errorBufferLen);
int initRS232(prs232 self); int initRS232(prs232 self);
prs232 createRS232(char *host, int iPort);
void KillRS232(void *pData);
@} @}
All functions take a pointer to their daat structure as a parameter. All functions take a pointer to their daat structure as a parameter.
@ -80,10 +94,16 @@ The functions have the following meanings:
replyLen bytes of reply are copied to reply. replyLen bytes of reply are copied to reply.
\item[availableRS232] returns 1 if data is available, o if none is available \item[availableRS232] returns 1 if data is available, o if none is available
and a negative value if an error occurs. and a negative value if an error occurs.
\item[availableNetRS232] returns 1 when data is pending at the network
reader for this port, else 0. This function also resets the network reader for
further use. This could lead to trouble if pending data is not
directly followed by a read.
\item[getRS232Error] gets a string representation for the error code \item[getRS232Error] gets a string representation for the error code
iCode. iCode.
\item[initRS232] tries to close and reopen the RS232 connection. This is \item[initRS232] tries to close and reopen the RS232 connection. This is
useful for the automatic fixing of communication problems encountered. useful for the automatic fixing of communication problems encountered.
\item[createRS232] creates a new rs232 data structure with all
parameters at default values. The connection is NOT opened.
\end{description} \end{description}
@o rs232controller.h @{ @o rs232controller.h @{
@ -102,6 +122,14 @@ The functions have the following meanings:
#ifndef RS232CONTROLLER #ifndef RS232CONTROLLER
#define RS232CONTROLLER #define RS232CONTROLLER
#include "network.h" #include "network.h"
/*
own error codes
*/
#define NOTCONNECTED -2700
#define BADMEMORY -2701
#define TIMEOUT -2702
#define FAILEDCONNECT -2703
#define INCOMPLETE -2704
/*----------------------- a data structure ----------------------------*/ /*----------------------- a data structure ----------------------------*/
@<rs232dat@> @<rs232dat@>

View File

@ -1,80 +1,50 @@
# naff was here , best wishes a5l.length 80.000000
# naff was here , best wishes flightpathlength 0.000000
# naff was here , best wishes flightpathlength setAccess 1
yfactor 1.420000 flightpath 0.000000
yfactor setAccess 1 flightpath setAccess 1
xfactor 0.715000 delay 2500.000000
xfactor setAccess 1 delay setAccess 1
ps.listfile peaksearch.dat hm CountMode timer
ps.listfile setAccess 2 hm preset 100.000000
ps.scansteps 24 hm genbin 120.000000 35.000000 512
ps.scansteps setAccess 2 hm init
ps.scanpreset 1000000.000000 datafile focus-1001848.hdf
ps.scanpreset setAccess 2 datafile setAccess 3
ps.preset 1000.000000
ps.preset setAccess 2
ps.countmode monitor
ps.countmode setAccess 2
ps.cogcontour 0.200000
ps.cogcontour setAccess 2
ps.cogwindow 60
ps.cogwindow setAccess 2
ps.window 7
ps.window setAccess 2
ps.steepness 3
ps.steepness setAccess 2
ps.threshold 30
ps.threshold setAccess 2
ps.sttstep 3.000000
ps.sttstep setAccess 2
ps.sttend 70.000000
ps.sttend setAccess 2
ps.sttstart 5.000000
ps.sttstart setAccess 2
ps.omstep 3.000000
ps.omstep setAccess 2
ps.omend 30.000000
ps.omend setAccess 2
ps.omstart 0.000000
ps.omstart setAccess 2
ps.chistep 12.000000
ps.chistep setAccess 2
ps.chiend 180.000000
ps.chiend setAccess 2
ps.chistart 0.000000
ps.chistart setAccess 2
ps.phistep 3.000000
ps.phistep setAccess 2
ps.phiend 180.000000
ps.phiend setAccess 2
ps.phistart 0.000000
ps.phistart setAccess 2
hm3 CountMode timer
hm3 preset 10.000000
hm2 CountMode timer hm2 CountMode timer
hm2 preset 10.000000 hm2 preset 10.000000
banana CountMode timer
banana preset 2.000000
hm1 CountMode timer hm1 CountMode timer
hm1 preset 2.000000 hm1 preset 100.000000
dbfile UNKNOWN
dbfile setAccess 2
# Motor th
th sign 1.000000
th SoftZero 0.000000
th SoftLowerLim -120.000000
th SoftUpperLim 120.000000
th Fixed -1.000000
th InterruptMode 0.000000
th precision 0.010000
th AccessCode 2.000000
th poscount 20.000000
#Crystallographic Settings #Crystallographic Settings
hkl lambda 1.179000 hkl lambda 0.703790
hkl setub -0.017880 -0.074923 0.028280 -0.007008 -0.036800 -0.057747 0.160912 -0.009928 0.000627 hkl setub -0.124702 0.001618 -0.041357 -0.104448 -0.001326 0.049388 0.000751 0.084094 0.001574
hkl hm 0 hkl hm 0
detdist3 0.000000 det3dist 300.000000
detdist3 setAccess 1 det3dist setAccess 1
det3zeroy 128.000000 det3zeroy 128.000000
det3zeroy setAccess 1 det3zeroy setAccess 1
det3zerox 128.000000 det3zerox 128.000000
det3zerox setAccess 1 det3zerox setAccess 1
detdist2 0.000000 det2dist 300.000000
detdist2 setAccess 1 det2dist setAccess 1
det2zeroy 128.000000 det2zeroy 128.000000
det2zeroy setAccess 1 det2zeroy setAccess 1
det2zerox 128.000000 det2zerox 128.000000
det2zerox setAccess 1 det2zerox setAccess 1
detdist1 0.000000 det1dist 300.000000
detdist1 setAccess 1 det1dist setAccess 1
det1zeroy 128.000000 det1zeroy 128.000000
det1zeroy setAccess 1 det1zeroy setAccess 1
det1zerox 128.000000 det1zerox 128.000000
@ -92,24 +62,27 @@ om Fixed -1.000000
om InterruptMode 0.000000 om InterruptMode 0.000000
om precision 0.010000 om precision 0.010000
om AccessCode 2.000000 om AccessCode 2.000000
om poscount 20.000000
# Motor stt # Motor stt
stt sign 1.000000 stt sign 1.000000
stt SoftZero 0.000000 stt SoftZero 0.000000
stt SoftLowerLim 4.000000 stt SoftLowerLim -120.000000
stt SoftUpperLim 113.000000 stt SoftUpperLim 120.000000
stt Fixed -1.000000 stt Fixed -1.000000
stt InterruptMode 0.000000 stt InterruptMode 0.000000
stt precision 0.010000 stt precision 0.010000
stt AccessCode 2.000000 stt AccessCode 2.000000
stt poscount 20.000000
# Motor ch # Motor ch
ch sign 1.000000 ch sign 1.000000
ch SoftZero 0.000000 ch SoftZero 0.000000
ch SoftLowerLim 0.000000 ch SoftLowerLim 0.000000
ch SoftUpperLim 190.000000 ch SoftUpperLim 360.000000
ch Fixed -1.000000 ch Fixed -1.000000
ch InterruptMode 0.000000 ch InterruptMode 0.000000
ch precision 0.010000 ch precision 0.010000
ch AccessCode 1.000000 ch AccessCode 2.000000
ch poscount 20.000000
# Motor ph # Motor ph
ph sign 1.000000 ph sign 1.000000
ph SoftZero 0.000000 ph SoftZero 0.000000
@ -119,6 +92,7 @@ ph Fixed -1.000000
ph InterruptMode 0.000000 ph InterruptMode 0.000000
ph precision 0.010000 ph precision 0.010000
ph AccessCode 2.000000 ph AccessCode 2.000000
ph poscount 20.000000
# Motor dg3 # Motor dg3
dg3 sign 1.000000 dg3 sign 1.000000
dg3 SoftZero 0.000000 dg3 SoftZero 0.000000
@ -128,6 +102,7 @@ dg3 Fixed -1.000000
dg3 InterruptMode 0.000000 dg3 InterruptMode 0.000000
dg3 precision 0.010000 dg3 precision 0.010000
dg3 AccessCode 2.000000 dg3 AccessCode 2.000000
dg3 poscount 20.000000
# Motor dg2 # Motor dg2
dg2 sign 1.000000 dg2 sign 1.000000
dg2 SoftZero 0.000000 dg2 SoftZero 0.000000
@ -137,6 +112,7 @@ dg2 Fixed -1.000000
dg2 InterruptMode 0.000000 dg2 InterruptMode 0.000000
dg2 precision 0.010000 dg2 precision 0.010000
dg2 AccessCode 2.000000 dg2 AccessCode 2.000000
dg2 poscount 20.000000
# Motor dg1 # Motor dg1
dg1 sign 1.000000 dg1 sign 1.000000
dg1 SoftZero 0.000000 dg1 SoftZero 0.000000
@ -146,6 +122,7 @@ dg1 Fixed -1.000000
dg1 InterruptMode 0.000000 dg1 InterruptMode 0.000000
dg1 precision 0.010000 dg1 precision 0.010000
dg1 AccessCode 2.000000 dg1 AccessCode 2.000000
dg1 poscount 20.000000
# Motor muca # Motor muca
muca sign 1.000000 muca sign 1.000000
muca SoftZero 0.000000 muca SoftZero 0.000000
@ -155,6 +132,7 @@ muca Fixed -1.000000
muca InterruptMode 0.000000 muca InterruptMode 0.000000
muca precision 0.010000 muca precision 0.010000
muca AccessCode 2.000000 muca AccessCode 2.000000
muca poscount 20.000000
# Motor phi # Motor phi
phi sign 1.000000 phi sign 1.000000
phi SoftZero 0.000000 phi SoftZero 0.000000
@ -164,15 +142,17 @@ phi Fixed -1.000000
phi InterruptMode 0.000000 phi InterruptMode 0.000000
phi precision 0.010000 phi precision 0.010000
phi AccessCode 2.000000 phi AccessCode 2.000000
phi poscount 20.000000
# Motor chi # Motor chi
chi sign 1.000000 chi sign 1.000000
chi SoftZero 0.000000 chi SoftZero 0.000000
chi SoftLowerLim 0.000000 chi SoftLowerLim 0.000000
chi SoftUpperLim 190.000000 chi SoftUpperLim 360.000000
chi Fixed -1.000000 chi Fixed -1.000000
chi InterruptMode 0.000000 chi InterruptMode 0.000000
chi precision 0.010000 chi precision 0.010000
chi AccessCode 1.000000 chi AccessCode 2.000000
chi poscount 20.000000
# Motor omega # Motor omega
omega sign 1.000000 omega sign 1.000000
omega SoftZero 0.000000 omega SoftZero 0.000000
@ -182,17 +162,21 @@ omega Fixed -1.000000
omega InterruptMode 0.000000 omega InterruptMode 0.000000
omega precision 0.010000 omega precision 0.010000
omega AccessCode 2.000000 omega AccessCode 2.000000
omega poscount 20.000000
# Motor twotheta # Motor twotheta
twotheta sign 1.000000 twotheta sign 1.000000
twotheta SoftZero 0.000000 twotheta SoftZero 0.000000
twotheta SoftLowerLim 4.000000 twotheta SoftLowerLim -120.000000
twotheta SoftUpperLim 113.000000 twotheta SoftUpperLim 120.000000
twotheta Fixed -1.000000 twotheta Fixed -1.000000
twotheta InterruptMode 0.000000 twotheta InterruptMode 0.000000
twotheta precision 0.010000 twotheta precision 0.010000
twotheta AccessCode 2.000000 twotheta AccessCode 2.000000
lastscancommand sscan a3 100 110 10 1 twotheta poscount 20.000000
lastscancommand cscan a4 0. .2 10 2
lastscancommand setAccess 2 lastscancommand setAccess 2
banana CountMode timer
banana preset 100.000000
sample_mur 0.000000 sample_mur 0.000000
sample_mur setAccess 2 sample_mur setAccess 2
email UNKNOWN email UNKNOWN
@ -204,17 +188,18 @@ phone setAccess 2
adress UNKNOWN adress UNKNOWN
adress setAccess 2 adress setAccess 2
# Counter counter # Counter counter
counter SetPreset 1.000000 counter SetPreset 2.000000
counter SetMode Monitor counter SetMode Monitor
# Motor som # Motor som
som sign 1.000000 som sign 1.000000
som SoftZero -20.000000 som SoftZero 0.000000
som SoftLowerLim -340.000000 som SoftLowerLim -360.000000
som SoftUpperLim 380.000000 som SoftUpperLim 360.000000
som Fixed -1.000000 som Fixed -1.000000
som InterruptMode 0.000000 som InterruptMode 0.000000
som precision 0.010000 som precision 0.010000
som AccessCode 2.000000 som AccessCode 2.000000
som poscount 20.000000
# Motor sax # Motor sax
sax sign 1.000000 sax sign 1.000000
sax SoftZero 0.000000 sax SoftZero 0.000000
@ -224,6 +209,7 @@ sax Fixed -1.000000
sax InterruptMode 0.000000 sax InterruptMode 0.000000
sax precision 0.010000 sax precision 0.010000
sax AccessCode 2.000000 sax AccessCode 2.000000
sax poscount 20.000000
# Motor tilt # Motor tilt
tilt sign 1.000000 tilt sign 1.000000
tilt SoftZero 0.000000 tilt SoftZero 0.000000
@ -233,28 +219,11 @@ tilt Fixed -1.000000
tilt InterruptMode 0.000000 tilt InterruptMode 0.000000
tilt precision 0.010000 tilt precision 0.010000
tilt AccessCode 0.000000 tilt AccessCode 0.000000
tilt poscount 20.000000
#----- MultiMotor st #----- MultiMotor st
st recovernampos henry d1r 5. d1l -5. d1t 0. st recovernampos henry d1r 5. d1l -5. d1t 0.
#----- MultiMotor sampletable #----- MultiMotor sampletable
sampletable recovernampos henry d1r 5. d1l -5. d1t 0. sampletable recovernampos henry d1r 5. d1l -5. d1t 0.
# Motor cex2
cex2 sign 1.000000
cex2 SoftZero 0.000000
cex2 SoftLowerLim -360.000000
cex2 SoftUpperLim 360.000000
cex2 Fixed -1.000000
cex2 InterruptMode 0.000000
cex2 precision 0.010000
cex2 AccessCode 2.000000
# Motor cex1
cex1 sign 1.000000
cex1 SoftZero 0.000000
cex1 SoftLowerLim -360.000000
cex1 SoftUpperLim 360.000000
cex1 Fixed -1.000000
cex1 InterruptMode 0.000000
cex1 precision 0.010000
cex1 AccessCode 2.000000
# Motor detectorrotation # Motor detectorrotation
detectorrotation sign 1.000000 detectorrotation sign 1.000000
detectorrotation SoftZero 0.000000 detectorrotation SoftZero 0.000000
@ -264,6 +233,7 @@ detectorrotation Fixed -1.000000
detectorrotation InterruptMode 0.000000 detectorrotation InterruptMode 0.000000
detectorrotation precision 0.010000 detectorrotation precision 0.010000
detectorrotation AccessCode 2.000000 detectorrotation AccessCode 2.000000
detectorrotation poscount 20.000000
# Motor detectory # Motor detectory
detectory sign 1.000000 detectory sign 1.000000
detectory SoftZero 0.000000 detectory SoftZero 0.000000
@ -273,6 +243,7 @@ detectory Fixed -1.000000
detectory InterruptMode 0.000000 detectory InterruptMode 0.000000
detectory precision 0.010000 detectory precision 0.010000
detectory AccessCode 2.000000 detectory AccessCode 2.000000
detectory poscount 20.000000
# Motor detectorx # Motor detectorx
detectorx sign 1.000000 detectorx sign 1.000000
detectorx SoftZero 0.000000 detectorx SoftZero 0.000000
@ -282,6 +253,7 @@ detectorx Fixed -1.000000
detectorx InterruptMode 0.000000 detectorx InterruptMode 0.000000
detectorx precision 0.010000 detectorx precision 0.010000
detectorx AccessCode 2.000000 detectorx AccessCode 2.000000
detectorx poscount 20.000000
# Motor beamstopy # Motor beamstopy
beamstopy sign 1.000000 beamstopy sign 1.000000
beamstopy SoftZero 0.000000 beamstopy SoftZero 0.000000
@ -291,6 +263,7 @@ beamstopy Fixed -1.000000
beamstopy InterruptMode 0.000000 beamstopy InterruptMode 0.000000
beamstopy precision 0.010000 beamstopy precision 0.010000
beamstopy AccessCode 2.000000 beamstopy AccessCode 2.000000
beamstopy poscount 20.000000
# Motor beamstopx # Motor beamstopx
beamstopx sign 1.000000 beamstopx sign 1.000000
beamstopx SoftZero 0.000000 beamstopx SoftZero 0.000000
@ -300,6 +273,7 @@ beamstopx Fixed -1.000000
beamstopx InterruptMode 0.000000 beamstopx InterruptMode 0.000000
beamstopx precision 0.010000 beamstopx precision 0.010000
beamstopx AccessCode 2.000000 beamstopx AccessCode 2.000000
beamstopx poscount 20.000000
# Motor d2t # Motor d2t
d2t sign 1.000000 d2t sign 1.000000
d2t SoftZero 0.000000 d2t SoftZero 0.000000
@ -309,6 +283,7 @@ d2t Fixed -1.000000
d2t InterruptMode 0.000000 d2t InterruptMode 0.000000
d2t precision 0.010000 d2t precision 0.010000
d2t AccessCode 2.000000 d2t AccessCode 2.000000
d2t poscount 20.000000
# Motor d2l # Motor d2l
d2l sign 1.000000 d2l sign 1.000000
d2l SoftZero 0.000000 d2l SoftZero 0.000000
@ -318,6 +293,7 @@ d2l Fixed -1.000000
d2l InterruptMode 0.000000 d2l InterruptMode 0.000000
d2l precision 0.010000 d2l precision 0.010000
d2l AccessCode 2.000000 d2l AccessCode 2.000000
d2l poscount 20.000000
# Motor d2r # Motor d2r
d2r sign 1.000000 d2r sign 1.000000
d2r SoftZero 0.000000 d2r SoftZero 0.000000
@ -327,6 +303,7 @@ d2r Fixed -1.000000
d2r InterruptMode 0.000000 d2r InterruptMode 0.000000
d2r precision 0.010000 d2r precision 0.010000
d2r AccessCode 2.000000 d2r AccessCode 2.000000
d2r poscount 20.000000
# Motor d1t # Motor d1t
d1t sign 1.000000 d1t sign 1.000000
d1t SoftZero 0.000000 d1t SoftZero 0.000000
@ -336,6 +313,7 @@ d1t Fixed -1.000000
d1t InterruptMode 0.000000 d1t InterruptMode 0.000000
d1t precision 0.010000 d1t precision 0.010000
d1t AccessCode 2.000000 d1t AccessCode 2.000000
d1t poscount 20.000000
# Motor d1l # Motor d1l
d1l sign 1.000000 d1l sign 1.000000
d1l SoftZero 0.000000 d1l SoftZero 0.000000
@ -345,6 +323,7 @@ d1l Fixed -1.000000
d1l InterruptMode 0.000000 d1l InterruptMode 0.000000
d1l precision 0.010000 d1l precision 0.010000
d1l AccessCode 2.000000 d1l AccessCode 2.000000
d1l poscount 20.000000
# Motor d1r # Motor d1r
d1r sign 1.000000 d1r sign 1.000000
d1r SoftZero 0.000000 d1r SoftZero 0.000000
@ -354,6 +333,7 @@ d1r Fixed -1.000000
d1r InterruptMode 0.000000 d1r InterruptMode 0.000000
d1r precision 0.010000 d1r precision 0.010000
d1r AccessCode 2.000000 d1r AccessCode 2.000000
d1r poscount 20.000000
# Motor monochi # Motor monochi
monochi sign 1.000000 monochi sign 1.000000
monochi SoftZero 0.000000 monochi SoftZero 0.000000
@ -363,6 +343,7 @@ monochi Fixed -1.000000
monochi InterruptMode 0.000000 monochi InterruptMode 0.000000
monochi precision 0.010000 monochi precision 0.010000
monochi AccessCode 2.000000 monochi AccessCode 2.000000
monochi poscount 20.000000
# Motor monophi # Motor monophi
monophi sign 1.000000 monophi sign 1.000000
monophi SoftZero 0.000000 monophi SoftZero 0.000000
@ -372,6 +353,7 @@ monophi Fixed -1.000000
monophi InterruptMode 0.000000 monophi InterruptMode 0.000000
monophi precision 0.010000 monophi precision 0.010000
monophi AccessCode 2.000000 monophi AccessCode 2.000000
monophi poscount 20.000000
# Motor monoy # Motor monoy
monoy sign 1.000000 monoy sign 1.000000
monoy SoftZero 0.000000 monoy SoftZero 0.000000
@ -381,6 +363,7 @@ monoy Fixed -1.000000
monoy InterruptMode 0.000000 monoy InterruptMode 0.000000
monoy precision 0.010000 monoy precision 0.010000
monoy AccessCode 2.000000 monoy AccessCode 2.000000
monoy poscount 20.000000
# Motor monox # Motor monox
monox sign 1.000000 monox sign 1.000000
monox SoftZero 0.000000 monox SoftZero 0.000000
@ -390,6 +373,7 @@ monox Fixed -1.000000
monox InterruptMode 0.000000 monox InterruptMode 0.000000
monox precision 0.010000 monox precision 0.010000
monox AccessCode 2.000000 monox AccessCode 2.000000
monox poscount 20.000000
# Motor tasse # Motor tasse
tasse sign 1.000000 tasse sign 1.000000
tasse SoftZero 0.000000 tasse SoftZero 0.000000
@ -399,6 +383,7 @@ tasse Fixed -1.000000
tasse InterruptMode 0.000000 tasse InterruptMode 0.000000
tasse precision 0.010000 tasse precision 0.010000
tasse AccessCode 2.000000 tasse AccessCode 2.000000
tasse poscount 20.000000
# Motor sdm # Motor sdm
sdm sign 1.000000 sdm sign 1.000000
sdm SoftZero 0.000000 sdm SoftZero 0.000000
@ -408,6 +393,7 @@ sdm Fixed -1.000000
sdm InterruptMode 0.000000 sdm InterruptMode 0.000000
sdm precision 0.010000 sdm precision 0.010000
sdm AccessCode 2.000000 sdm AccessCode 2.000000
sdm poscount 20.000000
# Motor sgu # Motor sgu
sgu sign 1.000000 sgu sign 1.000000
sgu SoftZero 0.000000 sgu SoftZero 0.000000
@ -417,6 +403,7 @@ sgu Fixed -1.000000
sgu InterruptMode 0.000000 sgu InterruptMode 0.000000
sgu precision 0.010000 sgu precision 0.010000
sgu AccessCode 2.000000 sgu AccessCode 2.000000
sgu poscount 20.000000
# Motor sgl # Motor sgl
sgl sign 1.000000 sgl sign 1.000000
sgl SoftZero 0.000000 sgl SoftZero 0.000000
@ -426,6 +413,7 @@ sgl Fixed -1.000000
sgl InterruptMode 0.000000 sgl InterruptMode 0.000000
sgl precision 0.010000 sgl precision 0.010000
sgl AccessCode 2.000000 sgl AccessCode 2.000000
sgl poscount 20.000000
# Motor mgu # Motor mgu
mgu sign 1.000000 mgu sign 1.000000
mgu SoftZero 0.000000 mgu SoftZero 0.000000
@ -435,6 +423,7 @@ mgu Fixed -1.000000
mgu InterruptMode 0.000000 mgu InterruptMode 0.000000
mgu precision 0.010000 mgu precision 0.010000
mgu AccessCode 2.000000 mgu AccessCode 2.000000
mgu poscount 20.000000
# Motor stu # Motor stu
stu sign 1.000000 stu sign 1.000000
stu SoftZero 0.000000 stu SoftZero 0.000000
@ -444,6 +433,7 @@ stu Fixed -1.000000
stu InterruptMode 0.000000 stu InterruptMode 0.000000
stu precision 0.010000 stu precision 0.010000
stu AccessCode 2.000000 stu AccessCode 2.000000
stu poscount 20.000000
# Motor stl # Motor stl
stl sign 1.000000 stl sign 1.000000
stl SoftZero 0.000000 stl SoftZero 0.000000
@ -453,6 +443,7 @@ stl Fixed -1.000000
stl InterruptMode 0.000000 stl InterruptMode 0.000000
stl precision 0.010000 stl precision 0.010000
stl AccessCode 2.000000 stl AccessCode 2.000000
stl poscount 20.000000
# Motor mtu # Motor mtu
mtu sign 1.000000 mtu sign 1.000000
mtu SoftZero 0.000000 mtu SoftZero 0.000000
@ -462,6 +453,7 @@ mtu Fixed -1.000000
mtu InterruptMode 0.000000 mtu InterruptMode 0.000000
mtu precision 0.010000 mtu precision 0.010000
mtu AccessCode 2.000000 mtu AccessCode 2.000000
mtu poscount 20.000000
# Motor mtl # Motor mtl
mtl sign 1.000000 mtl sign 1.000000
mtl SoftZero 0.000000 mtl SoftZero 0.000000
@ -471,6 +463,7 @@ mtl Fixed -1.000000
mtl InterruptMode 0.000000 mtl InterruptMode 0.000000
mtl precision 0.010000 mtl precision 0.010000
mtl AccessCode 2.000000 mtl AccessCode 2.000000
mtl poscount 20.000000
# Motor a6 # Motor a6
a6 sign 1.000000 a6 sign 1.000000
a6 SoftZero 0.000000 a6 SoftZero 0.000000
@ -480,6 +473,7 @@ a6 Fixed -1.000000
a6 InterruptMode 0.000000 a6 InterruptMode 0.000000
a6 precision 0.010000 a6 precision 0.010000
a6 AccessCode 2.000000 a6 AccessCode 2.000000
a6 poscount 20.000000
# Motor a5 # Motor a5
a5 sign 1.000000 a5 sign 1.000000
a5 SoftZero 0.000000 a5 SoftZero 0.000000
@ -489,6 +483,7 @@ a5 Fixed -1.000000
a5 InterruptMode 0.000000 a5 InterruptMode 0.000000
a5 precision 0.010000 a5 precision 0.010000
a5 AccessCode 2.000000 a5 AccessCode 2.000000
a5 poscount 20.000000
# Motor a4 # Motor a4
a4 sign 1.000000 a4 sign 1.000000
a4 SoftZero 0.000000 a4 SoftZero 0.000000
@ -498,15 +493,17 @@ a4 Fixed -1.000000
a4 InterruptMode 0.000000 a4 InterruptMode 0.000000
a4 precision 0.010000 a4 precision 0.010000
a4 AccessCode 2.000000 a4 AccessCode 2.000000
a4 poscount 20.000000
# Motor a3 # Motor a3
a3 sign 1.000000 a3 sign 1.000000
a3 SoftZero -20.000000 a3 SoftZero 0.000000
a3 SoftLowerLim -340.000000 a3 SoftLowerLim -360.000000
a3 SoftUpperLim 380.000000 a3 SoftUpperLim 360.000000
a3 Fixed -1.000000 a3 Fixed -1.000000
a3 InterruptMode 0.000000 a3 InterruptMode 0.000000
a3 precision 0.010000 a3 precision 0.010000
a3 AccessCode 2.000000 a3 AccessCode 2.000000
a3 poscount 20.000000
# Motor a2 # Motor a2
a2 sign 1.000000 a2 sign 1.000000
a2 SoftZero 0.000000 a2 SoftZero 0.000000
@ -516,6 +513,7 @@ a2 Fixed -1.000000
a2 InterruptMode 0.000000 a2 InterruptMode 0.000000
a2 precision 0.010000 a2 precision 0.010000
a2 AccessCode 2.000000 a2 AccessCode 2.000000
a2 poscount 20.000000
# Motor a1 # Motor a1
a1 sign 1.000000 a1 sign 1.000000
a1 SoftZero 0.000000 a1 SoftZero 0.000000
@ -525,11 +523,14 @@ a1 Fixed -1.000000
a1 InterruptMode 0.000000 a1 InterruptMode 0.000000
a1 precision 0.010000 a1 precision 0.010000
a1 AccessCode 2.000000 a1 AccessCode 2.000000
user Uwe Filges a1 poscount 20.000000
batchroot /data/koenneck/src/sics
batchroot setAccess 2
user Daniel_the_Clementine
user setAccess 2 user setAccess 2
sample D20 30K SNP Okt 2001 GS sample DanielOxid
sample setAccess 2 sample setAccess 2
title endtest called with 23.000000 :Driving: title TopsiTupsiTapsi
title setAccess 2 title setAccess 2
starttime 2002-08-07 08:09:45 starttime UNKNOWN
starttime setAccess 2 starttime setAccess 2

View File

@ -169,7 +169,12 @@ set dornen(Port) 4000
set dornen(Channel) 6 set dornen(Channel) 6
set dornen(Timeout) 5000 set dornen(Timeout) 5000
#VelocitySelector nvs tilt DORNIER dornen #VelocitySelector nvs tilt DORNIER dornen
VelocitySelector nvs tilt SIM set d2003(Host) psts233
set d2003(Port) 3004
set d2003(Timeout) 20000
VelocitySelector nvs tilt dornier2003 d2003
#VelocitySelector nvs tilt SIM
nvs add -20 28800 nvs add -20 28800
nvs add 3800 4500 nvs add 3800 4500
nvs add 5900 6700 nvs add 5900 6700

3
velo.c
View File

@ -173,7 +173,8 @@
/* if we are here we tried three times and failed to get it /* if we are here we tried three times and failed to get it
work work
*/ */
sprintf(pBueffel,"ERRROR: Failed 3 times to vary rotation speed. Failing."); sprintf(pBueffel,
"ERRROR: Failed 3 times to vary rotation speed. Failing.");
SCWrite(pCon,pBueffel,eError); SCWrite(pCon,pBueffel,eError);
SCSetInterrupt(pCon,(int)ObVal(self->pPar,INT)); SCSetInterrupt(pCon,(int)ObVal(self->pPar,INT));
EVCSetMode(self->pMonitor,EVIdle); EVCSetMode(self->pMonitor,EVIdle);

View File

@ -1,4 +1,4 @@
#!/data/koenneck/bin/wish #!/usr/bin/wish
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# A semi visual command line client for SICS # A semi visual command line client for SICS
# #
@ -11,7 +11,7 @@ lappend auto_path /data/koenneck/bin/tcl
set INI(DefUser) Spy set INI(DefUser) Spy
set INI(DefPasswd) 007 set INI(DefPasswd) 007
set INI(ServerPort) 2910 set INI(ServerPort) 3006
set INI(InterruptPort) 2913 set INI(InterruptPort) 2913
set INI(box) localhost set INI(box) localhost
set INI(usPasswd) Rosy set INI(usPasswd) Rosy