- 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:
15
alpha_def
Normal file
15
alpha_def
Normal 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
|
2
danu.dat
2
danu.dat
@ -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
|
@ -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 \
|
||||
|
@ -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
142
motor.c
@ -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)
|
||||
|
4
motor.h
4
motor.h
@ -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;
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
11
network.c
11
network.c
@ -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! */
|
||||
|
4
nread.c
4
nread.c
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
@ -301,6 +301,8 @@
|
||||
|
||||
/* shut tasker down */
|
||||
TaskerDelete(&self->pTasker);
|
||||
self->pTasker = NULL;
|
||||
self->pReader = NULL;
|
||||
|
||||
/* save status */
|
||||
if(!self->simMode)
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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@>
|
||||
|
205
sicsstatus.tcl
205
sicsstatus.tcl
@ -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.
|
||||
#----- 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
|
||||
# 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
|
||||
|
7
test.tcl
7
test.tcl
@ -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
3
velo.c
@ -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);
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user