- 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
monitors.
Mark Koennecke, January 1997
Copyright:

View File

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

View File

@ -5,10 +5,6 @@
# Mark Koennecke 1996-2001
# 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
#NI= -DHAVENI
#NIOBJ= nigpib.o
@ -22,10 +18,7 @@
#DIFIL= difrac.o
#---------------------------------------------------------------------------
#----------------select proper Makefile
MFLAGS= -f makefile_alpha
HDFROOT=/data/lnslib
include alpha_def
CC = cc
CFLAGS = -I$(HDFROOT)/include -I. $(DFORTIFY) -DHDF4 -DHDF5 -Ipsi/hardsup \

View File

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

142
motor.c
View File

@ -74,6 +74,7 @@
#define SPEED 9
#define SIGN 10
#define ECOUNT 11
#define POSCOUNT 12
/*------------------------------------------------------------------------
a tiny structure used in CallBack work
*/
@ -173,6 +174,9 @@
fputs(pBueffel,fd);
sprintf(pBueffel,"%s AccessCode %f\n",name,ObVal(self->ParArray,USRIGHTS));
fputs(pBueffel,fd);
sprintf(pBueffel,"%s poscount %f\n",name,
ObVal(self->ParArray,POSCOUNT));
fputs(pBueffel,fd);
return 1;
}
/*-------------------------------------------------------------------------*/
@ -195,18 +199,145 @@
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
--------------------------------------------------------------------------*/
static int MotorStatus(void *sulf, SConnection *pCon)
static int MotorStatus2(void *sulf, SConnection *pCon)
{
float fHard;
pMotor self;
int iRet,i, iCode;
static int iRetry = 0;
char pError[132];
char pBueffel[256];
static int iPosFault = 0;
static int iPosFault = 0, iRetry = 0;
MotCallback sCall;
@ -354,7 +485,7 @@
/* create and initialize parameters */
pM->ParArray = ObParCreate(12);
pM->ParArray = ObParCreate(13);
if(!pM->ParArray)
{
free(pM);
@ -372,6 +503,7 @@
ObParInit(pM->ParArray,SPEED,"speed",0.02,usInternal);
ObParInit(pM->ParArray,SIGN,"sign",1.0,usMugger);
ObParInit(pM->ParArray,ECOUNT,"failafter",3.0,usMugger);
ObParInit(pM->ParArray,POSCOUNT,"poscount",20.0,usMugger);
pDriv->GetPosition(pDriv,&(pM->fPosition));
pM->fTarget = pM->fPosition;
pM->endScriptID = 0;
@ -696,6 +828,8 @@ extern void KillPiPiezo(void *pData);
}
/* Boundaries OK, send command */
self->posFaultCount = 0;
self->retryCount = 0;
self->fTarget = fHard;
iRet = self->pDriver->RunTo(self->pDriver,fHard);
if(iRet != OKOK)

View File

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

View File

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

View File

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

View File

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

View File

@ -16,15 +16,9 @@
#include "fortify.h"
#include "sics.h"
#include "splitter.h"
#include "nread.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)
@ -70,6 +64,12 @@ void setRS232Timeout(prs232 self, int timeout)
assert(self);
self->timeout = timeout;
}
/*---------------------------------------------------------------------*/
void setRS232Debug(prs232 self, int deb)
{
assert(self);
self->debug = deb;
}
/*--------------------------------------------------------------------*/
int writeRS232(prs232 self, void *data, int dataLen)
{
@ -121,6 +121,11 @@ int writeRS232(prs232 self, void *data, int dataLen)
send
*/
iRet = NETWrite(self->pSock,data,dataLen);
if(self->debug > 0)
{
printf("RS232 OUT: %s",(char *)data);
fflush(stdout);
}
if(pPtr != NULL)
free(pPtr);
@ -164,6 +169,11 @@ int readRS232(prs232 self, void *data, int *dataLen)
lRead = recv(self->pSock->sockid, data,rLength,0);
if(lRead >= 0)
{
if(self->debug > 0)
{
printf("RS232 IN: %s",(char *)data);
fflush(stdout);
}
*dataLen = lRead;
return 1;
}
@ -172,11 +182,45 @@ int readRS232(prs232 self, void *data, int *dataLen)
return (int)lRead;
}
}
/*
not reached
*/
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)
{
@ -190,7 +234,32 @@ int availableRS232(prs232 self)
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,
@ -223,10 +292,19 @@ int transactRS232(prs232 self, void *send, int sendLen,
memset(reply,0,replyLen);
iRet = NETReadTillTerm(self->pSock,self->timeout,self->replyTerminator,
reply, replyLen);
if(self->debug > 0)
{
printf("RS232 IN/TRANS: %s",(char *)reply);
fflush(stdout);
}
if(iRet == 0)
{
return TIMEOUT;
}
else if(iRet == -1)
{
return INCOMPLETE;
}
else
{
return iRet;
@ -262,6 +340,10 @@ void getRS232Error(int iCode, char *errorBuffer,
"Failed to connect to terminal server",
errorBufferLen);
break;
case INCOMPLETE:
strncpy(errorBuffer,"Did not find terminator in read buffer",
errorBufferLen);
break;
default:
strncpy(errorBuffer,strerror(errno),
errorBufferLen);
@ -277,17 +359,53 @@ int initRS232(prs232 self)
if(self->pSock != NULL)
{
if(pServ->pReader != NULL){
NetReadRemoveUserSocket(pServ->pReader,self->pSock->sockid);
}
NETClosePort(self->pSock);
self->pSock = NULL;
}
self->pSock = NETConnect(self->pHost, self->iPort);
if(!self->pSock)
if(!self->pSock){
return FAILEDCONNECT;
else
} else{
if(pServ->pReader != NULL){
NetReadRegisterUserSocket(pServ->pReader,self->pSock->sockid);
self->registered = 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;
if(!self)
@ -309,6 +427,9 @@ static void KillRS232(void *pData)
}
if(self->pSock)
{
if(pServ->pReader != NULL){
NetReadRemoveUserSocket(pServ->pReader,self->pSock->sockid);
}
NETClosePort(self->pSock);
}
if(self->pHost)
@ -590,7 +711,7 @@ int RS232Factory(SConnection *pCon, SicsInterp *pSics,
void *pData, int argc, char *argv[])
{
prs232 pNew = NULL;
int iRet;
int iRet, status;
char pError[256];
if(argc < 4)
@ -623,8 +744,8 @@ int RS232Factory(SConnection *pCon, SicsInterp *pSics,
SCWrite(pCon,"ERROR: out of memory in RS232Factory",eError);
return 0;
}
pNew->pSock = NETConnect(pNew->pHost, pNew->iPort);
if(!pNew->pSock)
status = initRS232(pNew);
if(status != 1)
{
sprintf(pError,"ERROR: failed to connect to %s at port %d",
pNew->pHost, pNew->iPort);

View File

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

View File

@ -23,6 +23,8 @@ This class provides the basic communication facilities for an arbitrary
mkChannel *pSock;
char *pHost;
int iPort;
int debug;
int registered;
} rs232, *prs232;
@}
@ -36,6 +38,10 @@ The fields are:
\item[mkChannel] Our very own structure for a network connection.
\item[pHost]The host (mostly the terminal server) to connect to.
\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}
The following interface functions are provided:
@ -49,14 +55,22 @@ The following interface functions are provided:
void setRS232SendTerminator(prs232 self, char *term);
void setRS232ReplyTerminator(prs232 self, char *term);
void setRS232Timeout(prs232 self, int timeout);
void setRS232Debug(prs232 self, int deb);
int writeRS232(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 availableNetRS232(prs232 self);
int transactRS232(prs232 self, void *send, int sendLen,
void *reply, int replylen);
void getRS232Error(int iCode, char *errorBuffer,
int errorBufferLen);
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.
@ -80,10 +94,16 @@ The functions have the following meanings:
replyLen bytes of reply are copied to reply.
\item[availableRS232] returns 1 if data is available, o if none is available
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
iCode.
\item[initRS232] tries to close and reopen the RS232 connection. This is
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}
@o rs232controller.h @{
@ -102,6 +122,14 @@ The functions have the following meanings:
#ifndef RS232CONTROLLER
#define RS232CONTROLLER
#include "network.h"
/*
own error codes
*/
#define NOTCONNECTED -2700
#define BADMEMORY -2701
#define TIMEOUT -2702
#define FAILEDCONNECT -2703
#define INCOMPLETE -2704
/*----------------------- a data structure ----------------------------*/
@<rs232dat@>

View File

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

View File

@ -169,7 +169,12 @@ set dornen(Port) 4000
set dornen(Channel) 6
set dornen(Timeout) 5000
#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 3800 4500
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
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);
SCSetInterrupt(pCon,(int)ObVal(self->pPar,INT));
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
#
@ -11,7 +11,7 @@ lappend auto_path /data/koenneck/bin/tcl
set INI(DefUser) Spy
set INI(DefPasswd) 007
set INI(ServerPort) 2910
set INI(ServerPort) 3006
set INI(InterruptPort) 2913
set INI(box) localhost
set INI(usPasswd) Rosy