- Fixes to make SL6 work

- New NeXus libraries
- Added new raw binary transfer mode for mass data
- Added a check script option to configurable virtual motor
This commit is contained in:
koennecke
2012-03-29 08:41:06 +00:00
parent b50f0bca13
commit fc94ead280
5 changed files with 20 additions and 6 deletions

View File

@ -13,7 +13,7 @@
int DumProtHandler(Ascon *a) int DumProtHandler(Ascon *a)
{ {
Tcl_Interp *pTcl = InterpGetTcl(pServ->pSics); Tcl_Interp *pTcl = InterpGetTcl(pServ->pSics);
int ret, l; int ret, l = -1;
char *result = NULL; char *result = NULL;
int iRet = 1; int iRet = 1;

View File

@ -23,7 +23,8 @@ OBJ=psi.o buffer.o ruli.o sps.o pimotor.o charbychar.o\
dgrambroadcast.o sinq.o tabledrive.o julcho.o sinqhttpopt.o\ dgrambroadcast.o sinq.o tabledrive.o julcho.o sinqhttpopt.o\
ritastorage.o poldizug.o audinelib.o delcam.o el737hpdrivsps.o \ ritastorage.o poldizug.o audinelib.o delcam.o el737hpdrivsps.o \
rebin.o sanslirebin.o lmd200.o slsvme.o julprot.o sinqhttpprot.o \ rebin.o sanslirebin.o lmd200.o slsvme.o julprot.o sinqhttpprot.o \
pmacprot.o pfeifferprot.o termprot.o phytron.o autowin.o eigera2.o pmacprot.o pfeifferprot.o termprot.o phytron.o autowin.o eigera2.o \
tclClock.o tclDate.o tclUnixTime.o
.SECONDARY.: sanslirebin.c .SECONDARY.: sanslirebin.c

12
psi.c
View File

@ -80,6 +80,11 @@ void SiteInit(void)
static pSite sitePSI = NULL; static pSite sitePSI = NULL;
/*
* from tclClock.c
*/
int Tcl_ClockObjCmd (ClientData client, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]);
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
static void AddPsiCommands(SicsInterp * pInter) static void AddPsiCommands(SicsInterp * pInter)
{ {
@ -126,6 +131,13 @@ static void AddPsiCommands(SicsInterp * pInter)
SCMD("SerialInit", SerialInit); SCMD("SerialInit", SerialInit);
SCMD("MakeEiger", InitEiger); SCMD("MakeEiger", InitEiger);
PCMD("cnvrt", CnvrtAction); PCMD("cnvrt", CnvrtAction);
/*
* Tcl 8.5 has implemented the clock command in tcl rather then C.
* This includes the same command, backported from Tcl 8.4
*/
Tcl_CreateObjCommand(InterpGetTcl(pServ->pSics), "clock", Tcl_ClockObjCmd, NULL, NULL);
/* /*
SCMD("MakeDifrac",MakeDifrac); SCMD("MakeDifrac",MakeDifrac);
*/ */

View File

@ -24,7 +24,7 @@ static int checkPoint(pNXDS target, double x, double y)
} }
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
static void addNXDatasetValue(pNXDS target, int iPos[], double value) static void addNXDatasetValue(pNXDS target, int64_t iPos[], double value)
{ {
double val; double val;
@ -35,7 +35,7 @@ static void addNXDatasetValue(pNXDS target, int iPos[], double value)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void roundPoint(pNXDS target, double x, double y, double value) static void roundPoint(pNXDS target, double x, double y, double value)
{ {
int iDim[2]; int64_t iDim[2];
iDim[0] = (int) floor(x + .5); iDim[0] = (int) floor(x + .5);
iDim[1] = (int) floor(y + 0.5); iDim[1] = (int) floor(y + 0.5);
@ -63,7 +63,7 @@ static double dist(double x1, double y1, double x2, double y2)
static void distribute(pNXDS target, double x, double y, double value) static void distribute(pNXDS target, double x, double y, double value)
{ {
double lldist, lrdist, uldist, urdist, totalDist, ix, iy, frac; double lldist, lrdist, uldist, urdist, totalDist, ix, iy, frac;
int iPos[2]; int64_t iPos[2];
ix = floor(x); ix = floor(x);
iy = floor(y); iy = floor(y);

View File

@ -97,8 +97,9 @@ int SansliRebin(SConnection * pCon, SicsInterp * pSics, void *pData,
{ {
pSICSData target = NULL, hmData = NULL; pSICSData target = NULL, hmData = NULL;
pNXDS dataset = NULL, weights = NULL; pNXDS dataset = NULL, weights = NULL;
int iDim[2], ix, iy, pos, ival, xDetDim[2], yDetDim[2], nDetX, nDetY, int ix, iy, pos, ival, xDetDim[2], yDetDim[2], nDetX, nDetY,
posIdx; posIdx;
int64_t iDim[2];
long totalCounts = 0; long totalCounts = 0;
double x, y, val, *xPos = NULL, *yPos = NULL, corrSum = .0, doubleCounts, sumFrac; double x, y, val, *xPos = NULL, *yPos = NULL, corrSum = .0, doubleCounts, sumFrac;
double low, frac; double low, frac;