- Removed automatic loading of status file on startup

- make soft motor values the default all over
- Introduced nxscript putSlab
- Fixed a bug in polldriv
This commit is contained in:
koennecke
2007-02-23 14:31:43 +00:00
parent 8987f54bed
commit 6eb387654e
23 changed files with 710 additions and 439 deletions

View File

@ -11,7 +11,7 @@
<arguments> <arguments>
<dictionary> <dictionary>
<key>org.eclipse.cdt.make.core.build.arguments</key> <key>org.eclipse.cdt.make.core.build.arguments</key>
<value>-f makefile_linux</value> <value>-f makefile_slinux</value>
</dictionary> </dictionary>
<dictionary> <dictionary>
<key>org.eclipse.cdt.core.errorOutputParser</key> <key>org.eclipse.cdt.core.errorOutputParser</key>
@ -26,7 +26,7 @@
<value>all</value> <value>all</value>
</dictionary> </dictionary>
<dictionary> <dictionary>
<key>org.eclipse.cdt.make.core.buildLocation</key> <key>org.eclipse.cdt.make.core.environment</key>
<value></value> <value></value>
</dictionary> </dictionary>
<dictionary> <dictionary>
@ -34,17 +34,17 @@
<value>false</value> <value>false</value>
</dictionary> </dictionary>
<dictionary> <dictionary>
<key>org.eclipse.cdt.make.core.environment</key> <key>org.eclipse.cdt.make.core.buildLocation</key>
<value></value> <value></value>
</dictionary> </dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
<value>true</value>
</dictionary>
<dictionary> <dictionary>
<key>org.eclipse.cdt.make.core.build.target.inc</key> <key>org.eclipse.cdt.make.core.build.target.inc</key>
<value>all</value> <value>all</value>
</dictionary> </dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
<value>true</value>
</dictionary>
<dictionary> <dictionary>
<key>org.eclipse.cdt.make.core.enabledIncrementalBuild</key> <key>org.eclipse.cdt.make.core.enabledIncrementalBuild</key>
<value>true</value> <value>true</value>
@ -53,14 +53,14 @@
<key>org.eclipse.cdt.make.core.build.location</key> <key>org.eclipse.cdt.make.core.build.location</key>
<value></value> <value></value>
</dictionary> </dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.build.command</key>
<value>make</value>
</dictionary>
<dictionary> <dictionary>
<key>org.eclipse.cdt.make.core.build.target.clean</key> <key>org.eclipse.cdt.make.core.build.target.clean</key>
<value>clean</value> <value>clean</value>
</dictionary> </dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.build.command</key>
<value>make</value>
</dictionary>
<dictionary> <dictionary>
<key>org.eclipse.cdt.make.core.enableCleanBuild</key> <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
<value>true</value> <value>true</value>

View File

@ -134,7 +134,11 @@ typedef struct __SINTER
*/ */
char *FindAlias(SicsInterp *pSics, void *pData); char *FindAlias(SicsInterp *pSics, void *pData);
/*----------------------------------------------------------------------
FindAliases locates alle aliases related to a gibe name. The result
is returned as a komma separated list.
*/
char *FindAliases(SicsInterp *pSics, char *name);
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
FindCommandData finds a command with the name given. It tests the name in the FindCommandData finds a command with the name given. It tests the name in the
ObjectDescriptor to be of name class. If all this succeeds a pointer ObjectDescriptor to be of name class. If all this succeeds a pointer

View File

@ -101,21 +101,6 @@
GetScanVar(self->pScan,0,self->fAxis,self->iNP); GetScanVar(self->pScan,0,self->fAxis,self->iNP);
GetScanVarName(self->pScan,0,self->pName,131); GetScanVarName(self->pScan,0,self->pName,131);
/* correct fAxis for softzero points and sign
when the scan variable is a motor
*/
if(!isScanVarSoft(self->pScan))
{
pMot = FindMotor(pServ->pSics,self->pName);
if(pMot)
{
for(i = 0; i < self->iNP; i++)
{
self->fAxis[i] = MotorHardToSoftPosition(pMot,self->fAxis[i]);
}
}
}
return 1; return 1;
} }
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/

View File

@ -145,14 +145,7 @@
pDriv = GetDrivableInterface(pVar); pDriv = GetDrivableInterface(pVar);
assert(pDriv != NULL); assert(pDriv != NULL);
if(strcmp(pDum->pDescriptor->name,"Motor") == 0) value = pDriv->GetValue(pVar,pCon);
{
MotorGetSoftPosition((pMotor)pVar,pCon,&value);
}
else
{
value = pDriv->GetValue(pVar,pCon);
}
return value; return value;
} }
/*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/

View File

@ -135,7 +135,7 @@
float fVal = 0.; float fVal = 0.;
assert(pData); assert(pData);
iRet = MotorGetHardPosition((pMotor)pData,pCon,&fVal); iRet = MotorGetSoftPosition((pMotor)pData,pCon,&fVal);
if(iRet != OKOK) if(iRet != OKOK)
{ {
fVal = -9999999.99; fVal = -9999999.99;

View File

@ -132,6 +132,7 @@
} }
return 0; return 0;
} }
self->dummyCon = SCCreateDummyConnection(self->pSics);
/* /*
check for option RedirectFile and redirect stout/sterr to it check for option RedirectFile and redirect stout/sterr to it
@ -258,30 +259,6 @@
NULL, NULL,
self->pMonitor,1); self->pMonitor,1);
/* initialize the last saved status of the system */
strcpy(pBueffel,"Restore ");
pText = IFindOption(pSICSOptions,"statusfile");
if(pText)
{
strcat(pBueffel,pText);
}
else
{
strcat(pBueffel,DEFAULTSTATUSFILE);
IFAddOption(pSICSOptions,"statusfile",
DEFAULTSTATUSFILE);
}
self->dummyCon = pCon = SCCreateDummyConnection(self->pSics);
if(pCon)
{
InterpExecute(self->pSics,pCon,pBueffel);
}
else
{
printf("ERROR: Cannot allocate dummy connection, status NOT loaded");
}
/* install performance monitor */ /* install performance monitor */
pMon = CreatePerfMon(20); pMon = CreatePerfMon(20);
AddCommand(self->pSics,"Performance",PerfMonWrapper,DeletePerfMon,pMon); AddCommand(self->pSics,"Performance",PerfMonWrapper,DeletePerfMon,pMon);

View File

@ -1350,18 +1350,7 @@
return NX_ERROR; return NX_ERROR;
} }
return iRet;
/* try rewinding the hierarchy */
if(pParse.iTerminal == TERMSDS)
{
iStat = NXDIUnwind(hfil,pParse.iDepth);
if(iStat != NX_OK)
{
return NX_ERROR;
}
}
/* do not rewind on links */
return iRet;
} }
/*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/
NXstatus NXDopenalias(NXhandle hfil, NXdict dict, char *pAlias) NXstatus NXDopenalias(NXhandle hfil, NXdict dict, char *pAlias)

View File

@ -396,6 +396,7 @@ static void putAttribute(SConnection *pCon, SicsInterp *pSics,
sprintf(buffer,"ERROR: failed to write attribute %s", argv[3]); sprintf(buffer,"ERROR: failed to write attribute %s", argv[3]);
SCWrite(pCon,buffer,eError); SCWrite(pCon,buffer,eError);
} }
NXopenpath(self->fileHandle,"/");
} }
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
static void updateHMDim(NXScript *self, pHistMem mem){ static void updateHMDim(NXScript *self, pHistMem mem){
@ -595,9 +596,6 @@ static void putHistogramMemoryChunked(SConnection *pCon, SicsInterp *pSics,
return; return;
} }
/* /*
read HM read HM
*/ */
@ -647,6 +645,95 @@ static void putHistogramMemoryChunked(SConnection *pCon, SicsInterp *pSics,
return; return;
} }
/*----------------------------------------------------------------------*/
static int listToArray(SicsInterp *pSics, char *list,
int intar[NX_MAXRANK]){
int argc, status, i, val;
CONST char **argv;
Tcl_Interp *pTcl = InterpGetTcl(pSics);
status = Tcl_SplitList(pTcl, list, &argc, &argv);
if(status != TCL_OK){
return status;
}
for(i = 0; i < argc; i++){
status = Tcl_GetInt(pTcl,argv[i],&val);
if(status != TCL_OK){
return status;
}
intar[i] = val;
}
Tcl_Free((char *)argv);
return TCL_OK;
}
/*----------------------------------------------------------------------*/
static void putSlab(SConnection *pCon, SicsInterp *pSics, pNXScript self,
int argc, char *argv[]){
int start[NX_MAXRANK], size[NX_MAXRANK];
int status, written = 0;
pHistMem mem = NULL;
HistInt *histData = NULL;
pSICSData data = NULL;
if(argc < 6){
SCWrite(pCon,"ERROR: insufficient number of arguments to putslab",
eError);
return;
}
status = NXDopenalias(self->fileHandle, self->dictHandle,argv[2]);
if(status != NX_OK){
SCPrintf(pCon,eError,"ERROR: failed to open alias %s", argv[2]);
return;
}
status = listToArray(pSics,argv[3],start);
if(status != TCL_OK){
SCWrite(pCon,"ERROR: failed to convert start value list", eError);
return;
}
status = listToArray(pSics,argv[4],size);
if(status != TCL_OK){
SCWrite(pCon,"ERROR: failed to convert size value list", eError);
return;
}
/*
* try to write HM data
*/
mem = (pHistMem)FindCommandData(pSics,argv[5],"HistMem");
if(mem != NULL){
histData = GetHistogramPointer(mem,pCon);
if(histData){
status = NXputslab(self->fileHandle, histData, start, size);
if(status == NX_OK){
written = 1;
}
}
}
/*
* try to look for sicsdata
*/
data = (pSICSData)FindCommandData(pSics,argv[5],"SICSData");
if(data != NULL){
status = NXputslab(self->fileHandle,data->data,start,size);
if(status == NX_OK){
written = 1;
}
}
/*
* drop out of hierarchy
*/
NXopenpath(self->fileHandle,"/");
if(written == 0){
SCWrite(pCon,"ERROR: failed to write data, data not recognised",
eError);
}
}
/*-------------------------------------------------------------------*/ /*-------------------------------------------------------------------*/
static void putTimeBinning(SConnection *pCon, SicsInterp *pSics, static void putTimeBinning(SConnection *pCon, SicsInterp *pSics,
pNXScript self, pNXScript self,
@ -659,7 +746,7 @@ static void putTimeBinning(SConnection *pCon, SicsInterp *pSics,
if(argc < 4){ if(argc < 4){
SCWrite(pCon,"ERROR: insufficient number of arguments to puttimebinning", SCWrite(pCon,"ERROR: insufficient number of arguments to puttimebinning",
eError); eError);
return; return;
} }
@ -1024,6 +1111,9 @@ static int handlePut(SConnection *pCon, SicsInterp *pSics, pNXScript self,
}else if(strcmp(argv[1],"putattribute") == 0){ }else if(strcmp(argv[1],"putattribute") == 0){
/*===============*/ /*===============*/
putAttribute(pCon,pSics,self,argc,argv); putAttribute(pCon,pSics,self,argc,argv);
}else if(strcmp(argv[1],"putslab") == 0){
/*===============*/
putSlab(pCon,pSics,self,argc,argv);
} else { } else {
SCWrite(pCon,"ERROR: put command not recognised",eError); SCWrite(pCon,"ERROR: put command not recognised",eError);
} }

191
nxxml.c
View File

@ -2,7 +2,7 @@
* This is the implementation file for the XML file driver * This is the implementation file for the XML file driver
* for NeXus * for NeXus
* *
* Copyright (C) 2004 Mark Koennecke * Copyright (C) 2006 Mark Koennecke
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -18,7 +18,7 @@
* License along with this library; if not, write to the Free Software * License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* *
* For further information, see <http://www.neutron.anl.gov/NeXus/> * For further information, see <http://www.nexusformat.org>
*/ */
#include <stdio.h> #include <stdio.h>
#include <napi.h> #include <napi.h>
@ -243,6 +243,7 @@ static mxml_node_t *searchGroupLinks(pXMLNexus xmlHandle, CONSTCHAR *name,
mxml_node_t *current; mxml_node_t *current;
mxml_node_t *test = NULL; mxml_node_t *test = NULL;
const char *linkTarget; const char *linkTarget;
const char *linkName = NULL;
current = xmlHandle->stack[xmlHandle->stackPointer].current; current = xmlHandle->stack[xmlHandle->stackPointer].current;
linkNode = current; linkNode = current;
@ -257,6 +258,17 @@ static mxml_node_t *searchGroupLinks(pXMLNexus xmlHandle, CONSTCHAR *name,
} }
} }
} }
/*
test for named links
*/
linkName = mxmlElementGetAttr(linkNode,"name");
if(test != NULL && linkName != NULL){
if(strcmp(test->value.element.name,nxclass) == 0){
if(strcmp(linkName, name) == 0){
return test;
}
}
}
} }
return NULL; return NULL;
} }
@ -374,8 +386,10 @@ NXstatus NXXmakedata (NXhandle fid,
return NX_ERROR; return NX_ERROR;
} }
if(dimensions[0] < 0){ if(dimensions[0] < 0){
NXIReportError(NXpData, dimensions[0] = 1;
"NeXus XML-API does not support unlimited dimensions"); }
if ((datatype == NX_CHAR) && (rank > 1)) {
NXIReportError(NXpData,"NeXus XML-API does not yet support multi-dimensional character arrays");
return NX_ERROR; return NX_ERROR;
} }
@ -419,6 +433,7 @@ static mxml_node_t *searchSDSLinks(pXMLNexus xmlHandle, CONSTCHAR *name){
mxml_node_t *current; mxml_node_t *current;
mxml_node_t *test = NULL; mxml_node_t *test = NULL;
const char *linkTarget; const char *linkTarget;
const char *linkName = NULL;
current = xmlHandle->stack[xmlHandle->stackPointer].current; current = xmlHandle->stack[xmlHandle->stackPointer].current;
linkNode = current; linkNode = current;
@ -431,6 +446,15 @@ static mxml_node_t *searchSDSLinks(pXMLNexus xmlHandle, CONSTCHAR *name){
return test; return test;
} }
} }
/*
test for named links
*/
linkName = mxmlElementGetAttr(linkNode,"name");
if(test != NULL && linkName != NULL){
if(strcmp(linkName,name) == 0){
return test;
}
}
} }
return NULL; return NULL;
} }
@ -670,6 +694,38 @@ static void putSlabData(pNXDS dataset, pNXDS slabData, int dim,
} }
} }
} }
/*----------------------------------------------------------------------
This is in order to support unlimited dimensions along the first axis
-----------------------------------------------------------------------*/
static int checkAndExtendDataset(mxml_node_t *node, pNXDS dataset,
int start[], int size[]){
int dim0, byteLength;
void *oldData = NULL;
char *typestring = NULL;
dim0 = start[0] + size[0];
if(dim0 > dataset->dim[0]){
byteLength = getNXDatasetByteLength(dataset);
oldData = dataset->u.ptr;
dataset->dim[0] = dim0;
dataset->u.ptr = malloc(getNXDatasetByteLength(dataset));
if(dataset->u.ptr == NULL){
return 0;
}
memset(dataset->u.ptr,0,getNXDatasetByteLength(dataset));
memcpy(dataset->u.ptr,oldData,byteLength);
free(oldData);
typestring = buildTypeString(dataset->type,dataset->rank,dataset->dim);
if(typestring != NULL){
mxmlElementSetAttr(node,TYPENAME,typestring);
free(typestring);
} else {
NXIReportError(NXpData,"Failed to allocate typestring");
return 0;
}
}
return 1;
}
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
NXstatus NXXputslab (NXhandle fid, void *data, NXstatus NXXputslab (NXhandle fid, void *data,
int iStart[], int iSize[]){ int iStart[], int iSize[]){
@ -678,7 +734,7 @@ NXstatus NXXputslab (NXhandle fid, void *data,
mxml_node_t *userData = NULL; mxml_node_t *userData = NULL;
mxml_node_t *current = NULL; mxml_node_t *current = NULL;
pNXDS dataset, slabData; pNXDS dataset, slabData;
int sourcePos[NX_MAXRANK], targetPos[NX_MAXRANK]; int sourcePos[NX_MAXRANK], targetPos[NX_MAXRANK], status;
xmlHandle = (pXMLNexus)fid; xmlHandle = (pXMLNexus)fid;
assert(xmlHandle); assert(xmlHandle);
@ -697,11 +753,20 @@ NXstatus NXXputslab (NXhandle fid, void *data,
} }
dataset = (pNXDS)userData->value.custom.data; dataset = (pNXDS)userData->value.custom.data;
assert(dataset); assert(dataset);
status = checkAndExtendDataset(current,dataset,iStart,iSize);
if(status == 0){
NXIReportError(NXpData,"Out of memory extending dataset");
return NX_ERROR;
}
slabData = makeSlabData(dataset, data, iSize); slabData = makeSlabData(dataset, data, iSize);
if(slabData == NULL){ if(slabData == NULL){
NXIReportError(NXpData,"Failed to allocate slab data"); NXIReportError(NXpData,"Failed to allocate slab data");
return NX_ERROR; return NX_ERROR;
} }
putSlabData(dataset,slabData,0,iStart,sourcePos,targetPos); putSlabData(dataset,slabData,0,iStart,sourcePos,targetPos);
free(slabData->dim); free(slabData->dim);
free(slabData); free(slabData);
@ -882,16 +947,8 @@ NXstatus NXXputattr (NXhandle fid, CONSTCHAR *name, void *data,
xmlHandle = (pXMLNexus)fid; xmlHandle = (pXMLNexus)fid;
assert(xmlHandle); assert(xmlHandle);
if(!isDataNode(xmlHandle->stack[xmlHandle->stackPointer].current)){ current = xmlHandle->stack[xmlHandle->stackPointer].current;
/* if(isDataNode(xmlHandle->stack[xmlHandle->stackPointer].current)){
global attribute
*/
current = xmlHandle->stack[0].current;
} else {
/*
dataset attribute
*/
current = xmlHandle->stack[xmlHandle->stackPointer].current;
if(strcmp(name,TYPENAME) == 0){ if(strcmp(name,TYPENAME) == 0){
NXIReportError(NXpData,"type is a reserved attribute name, rejected"); NXIReportError(NXpData,"type is a reserved attribute name, rejected");
return NX_ERROR; return NX_ERROR;
@ -922,17 +979,7 @@ NXstatus NXXgetattr (NXhandle fid, char *name,
xmlHandle = (pXMLNexus)fid; xmlHandle = (pXMLNexus)fid;
assert(xmlHandle); assert(xmlHandle);
if(!isDataNode(xmlHandle->stack[xmlHandle->stackPointer].current)){ current = xmlHandle->stack[xmlHandle->stackPointer].current;
/*
global attribute
*/
current = xmlHandle->stack[0].current;
} else {
/*
dataset attribute
*/
current = xmlHandle->stack[xmlHandle->stackPointer].current;
}
attribute = mxmlElementGetAttr(current,name); attribute = mxmlElementGetAttr(current,name);
if(!attribute){ if(!attribute){
@ -1014,6 +1061,7 @@ NXstatus NXXgetnextentry (NXhandle fid,NXname name,
const char *target = NULL, *attname = NULL; const char *target = NULL, *attname = NULL;
pNXDS dataset; pNXDS dataset;
char pBueffel[256]; char pBueffel[256];
const char *linkName = NULL;
xmlHandle = (pXMLNexus)fid; xmlHandle = (pXMLNexus)fid;
assert(xmlHandle); assert(xmlHandle);
@ -1045,6 +1093,7 @@ NXstatus NXXgetnextentry (NXhandle fid,NXname name,
} }
if(strcmp(next->value.element.name,"NAPIlink") == 0){ if(strcmp(next->value.element.name,"NAPIlink") == 0){
target = mxmlElementGetAttr(next,"target"); target = mxmlElementGetAttr(next,"target");
linkName = mxmlElementGetAttr(next,"name");
if(target == NULL){ if(target == NULL){
NXIReportError(NXpData,"Corrupted file, NAPIlink without target"); NXIReportError(NXpData,"Corrupted file, NAPIlink without target");
return NX_ERROR; return NX_ERROR;
@ -1078,6 +1127,12 @@ NXstatus NXXgetnextentry (NXhandle fid,NXname name,
attname = mxmlElementGetAttr(next,"name"); attname = mxmlElementGetAttr(next,"name");
strcpy(name,attname); strcpy(name,attname);
} }
/*
this is for named links
*/
if(linkName != NULL){
strcpy(name,linkName);
}
return NX_OK; return NX_OK;
} }
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
@ -1108,17 +1163,7 @@ NXstatus NXXgetnextattr (NXhandle fid, NXname pName,
xmlHandle = (pXMLNexus)fid; xmlHandle = (pXMLNexus)fid;
assert(xmlHandle); assert(xmlHandle);
if(isDataNode(xmlHandle->stack[xmlHandle->stackPointer].current)){ stackPtr = xmlHandle->stackPointer;
/*
dataset attribute
*/
stackPtr = xmlHandle->stackPointer;
} else {
/*
global attribute
*/
stackPtr = 0;
}
current = xmlHandle->stack[stackPtr].current; current = xmlHandle->stack[stackPtr].current;
currentAtt = xmlHandle->stack[stackPtr].currentAttribute; currentAtt = xmlHandle->stack[stackPtr].currentAttribute;
@ -1128,10 +1173,20 @@ NXstatus NXXgetnextattr (NXhandle fid, NXname pName,
return NX_EOD; return NX_EOD;
} }
/*
hide group name attribute
*/
if(strcmp(current->value.element.attrs[currentAtt].name,"name") == 0
&& !isDataNode(current) ){
xmlHandle->stack[stackPtr].currentAttribute++;
return NXXgetnextattr(fid,pName,iLength,iType);
}
/* /*
hide type attribute hide type attribute
*/ */
if(strcmp(current->value.element.attrs[currentAtt].name,TYPENAME) == 0){ if(strcmp(current->value.element.attrs[currentAtt].name,TYPENAME) == 0
&& isDataNode(current)){
xmlHandle->stack[stackPtr].currentAttribute++; xmlHandle->stack[stackPtr].currentAttribute++;
return NXXgetnextattr(fid,pName,iLength,iType); return NXXgetnextattr(fid,pName,iLength,iType);
} }
@ -1161,18 +1216,7 @@ extern NXstatus NXXinitattrdir(NXhandle fid){
xmlHandle = (pXMLNexus)fid; xmlHandle = (pXMLNexus)fid;
assert(xmlHandle); assert(xmlHandle);
if(isDataNode(xmlHandle->stack[xmlHandle->stackPointer].current)){ stackPtr = xmlHandle->stackPointer;
/*
dataset attribute
*/
stackPtr = xmlHandle->stackPointer;
} else {
/*
global attribute
*/
stackPtr = 0;
}
xmlHandle->stack[stackPtr].currentAttribute = 0; xmlHandle->stack[stackPtr].currentAttribute = 0;
return NX_OK; return NX_OK;
} }
@ -1218,22 +1262,17 @@ NXstatus NXXgetattrinfo (NXhandle fid, int *iN){
xmlHandle = (pXMLNexus)fid; xmlHandle = (pXMLNexus)fid;
assert(xmlHandle); assert(xmlHandle);
if(isDataNode(xmlHandle->stack[xmlHandle->stackPointer].current)){ stackPtr = xmlHandle->stackPointer;
/*
dataset attribute
*/
stackPtr = xmlHandle->stackPointer;
} else {
/*
global attribute
*/
stackPtr = 0;
}
current = xmlHandle->stack[stackPtr].current; current = xmlHandle->stack[stackPtr].current;
/* /*
hide type attribute hide type and group name attributes
*/ */
if(!isDataNode(current)) {
*iN = current->value.element.num_attrs -1;
return NX_OK;
}
if(mxmlElementGetAttr(current,TYPENAME) != NULL){ if(mxmlElementGetAttr(current,TYPENAME) != NULL){
*iN = current->value.element.num_attrs -1; *iN = current->value.element.num_attrs -1;
} else { } else {
@ -1413,6 +1452,34 @@ NXstatus NXXmakelink (NXhandle fid, NXlink* sLink){
} }
return NX_OK; return NX_OK;
} }
/*-----------------------------------------------------------------------*/
NXstatus NXXmakenamedlink (NXhandle fid, char *name, NXlink* sLink){
pXMLNexus xmlHandle = NULL;
mxml_node_t *current = NULL, *linkNode = NULL;
mxml_node_t *linkedNode = NULL;
xmlHandle = (pXMLNexus)fid;
assert(xmlHandle);
if(isDataNode(xmlHandle->stack[xmlHandle->stackPointer].current)){
NXIReportError(NXpData,"No group to link to open");
return NX_ERROR;
}
current = xmlHandle->stack[xmlHandle->stackPointer].current;
linkNode = mxmlNewElement(current,"NAPIlink");
if(!linkNode){
NXIReportError(NXpData,"Failed to allocate new link element");
return NX_ERROR;
}
mxmlElementSetAttr(linkNode,"target",sLink->targetPath);
mxmlElementSetAttr(linkNode,"name",name);
linkedNode = getLinkTarget(xmlHandle,sLink->targetPath);
if(linkedNode != NULL){
mxmlElementSetAttr(linkedNode,"target",sLink->targetPath);
}
return NX_OK;
}
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
NXstatus NXXsameID (NXhandle fileid, NXlink* pFirstID, NXstatus NXXsameID (NXhandle fileid, NXlink* pFirstID,
NXlink* pSecondID){ NXlink* pSecondID){

View File

@ -308,22 +308,7 @@
{ {
DynarGet(self->pVariables,i,&pData); DynarGet(self->pVariables,i,&pData);
pOVar = (pOVarEntry)pData; pOVar = (pOVarEntry)pData;
if(FindMotor(pServ->pSics,pOVar->pName) != NULL) pOVar->fCenter = pOVar->pDriv->GetValue(pOVar->pData,pCon);
{
iRet = MotorGetSoftPosition(pOVar->pData,pCon,&fVal);
if(iRet == 1)
{
pOVar->fCenter = fVal;
}
else
{
pOVar->fCenter = -1000.;
}
}
else
{
pOVar->fCenter = pOVar->pDriv->GetValue(pOVar->pData,pCon);
}
if(pOVar->fCenter < -900.) if(pOVar->fCenter < -900.)
{ {
return SCANERROR; return SCANERROR;

View File

@ -38,6 +38,7 @@ static int pollHdb(struct __POLLDRIV *self, SConnection *pCon){
if(!compareHdbValue(old,newVal)){ if(!compareHdbValue(old,newVal)){
UpdateHipadabaPar(node,newVal,pCon); UpdateHipadabaPar(node,newVal,pCon);
} }
ReleaseHdbValue(&newVal);
return 1; return 1;
} else { } else {
return 0; return 0;

View File

@ -34,6 +34,7 @@ static int pollHdb(struct __POLLDRIV *self, SConnection *pCon){
if(!compareHdbValue(old,newVal)){ if(!compareHdbValue(old,newVal)){
UpdateHipadabaPar(node,newVal,pCon); UpdateHipadabaPar(node,newVal,pCon);
} }
ReleaseHdbValue(&newVal);
return 1; return 1;
} else { } else {
return 0; return 0;

28
scan.c
View File

@ -209,8 +209,6 @@ static void ConfigureScanDict(pStringDict dict)
self->ScanDrive = ScanDrive; self->ScanDrive = ScanDrive;
self->ScanCount = ScanCount; self->ScanCount = ScanCount;
self->CollectScanData = CollectScanData; self->CollectScanData = CollectScanData;
self->posSoft = 0;
return 1; return 1;
} }
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
@ -1068,10 +1066,6 @@ CountEntry CollectCounterData(pScanData self)
} }
} }
/*---------------------------------------------------------------------*/ /*---------------------------------------------------------------------*/
int isScanVarSoft(pScanData self){
return self->posSoft;
}
/*-------------------------------------------------------------------------*/
int GetScanVarStep(pScanData self, int iWhich, float *fStep) int GetScanVarStep(pScanData self, int iWhich, float *fStep)
{ {
pVarEntry pVar = NULL; pVarEntry pVar = NULL;
@ -2101,14 +2095,6 @@ static int DumpScan(pScanData self, SConnection *pCon)
SCSendOK(pCon); SCSendOK(pCon);
return 1; return 1;
} }
else if(strcmp(argv[2],"soft") == 0)
{
ResetScanFunctions(self);
self->CollectScanData = CollectScanDataJochen;
self->posSoft = 1;
SCSendOK(pCon);
return 1;
}
else else
{ {
site = getSite(); site = getSite();
@ -2415,20 +2401,6 @@ static int DumpScan(pScanData self, SConnection *pCon)
} }
return AppendVarPos(pCon,self,i,(float)fStep); return AppendVarPos(pCon,self,i,(float)fStep);
} }
else if(strcmp(argv[1],"softpos") == 0){
if(argc > 2) {
if(!SCMatchRights(pCon,usMugger)){
return 0;
}
self->posSoft = atoi(argv[2]);
SCSendOK(pCon);
return 1;
} else {
sprintf(pBueffel,"%s.softpos = %d", argv[0],self->posSoft);
SCWrite(pCon,pBueffel,eValue);
return 1;
}
}
/*------- savecounter */ /*------- savecounter */
else if(strcmp(argv[1],"savecounter") == 0) else if(strcmp(argv[1],"savecounter") == 0)
{ {

1
scan.h
View File

@ -39,7 +39,6 @@
char *pName, int iLength); char *pName, int iLength);
int GetScanVarStep(pScanData self, int iWhich, int GetScanVarStep(pScanData self, int iWhich,
float *fStep); float *fStep);
int isScanVarSoft(pScanData self);
int GetScanMonitor(pScanData self, int iWhich, int GetScanMonitor(pScanData self, int iWhich,
long *lData, int iDataLen); long *lData, int iDataLen);
int GetScanNP(pScanData self); int GetScanNP(pScanData self);

1
scan.i
View File

@ -46,7 +46,6 @@
int iP); int iP);
pStringDict scanFunctions; pStringDict scanFunctions;
long lPos; long lPos;
int posSoft;
void *pCounterData; void *pCounterData;
char pCounterName[512]; char pCounterName[512];
int iChannel; int iChannel;

View File

@ -222,7 +222,6 @@ $\langle$scandata {\footnotesize ?}$\rangle\equiv$
\mbox{}\verb@ int iP);@\\ \mbox{}\verb@ int iP);@\\
\mbox{}\verb@ pStringDict scanFunctions;@\\ \mbox{}\verb@ pStringDict scanFunctions;@\\
\mbox{}\verb@ long lPos;@\\ \mbox{}\verb@ long lPos;@\\
\mbox{}\verb@ int posSoft;@\\
\mbox{}\verb@ void *pCounterData;@\\ \mbox{}\verb@ void *pCounterData;@\\
\mbox{}\verb@ char pCounterName[512];@\\ \mbox{}\verb@ char pCounterName[512];@\\
\mbox{}\verb@ int iChannel;@\\ \mbox{}\verb@ int iChannel;@\\
@ -353,7 +352,6 @@ $\langle$scaninter {\footnotesize ?}$\rangle\equiv$
\mbox{}\verb@ char *pName, int iLength);@\\ \mbox{}\verb@ char *pName, int iLength);@\\
\mbox{}\verb@ int GetScanVarStep(pScanData self, int iWhich, @\\ \mbox{}\verb@ int GetScanVarStep(pScanData self, int iWhich, @\\
\mbox{}\verb@ float *fStep);@\\ \mbox{}\verb@ float *fStep);@\\
\mbox{}\verb@ int isScanVarSoft(pScanData self);@\\
\mbox{}\verb@ int GetScanMonitor(pScanData self, int iWhich, @\\ \mbox{}\verb@ int GetScanMonitor(pScanData self, int iWhich, @\\
\mbox{}\verb@ long *lData, int iDataLen);@\\ \mbox{}\verb@ long *lData, int iDataLen);@\\
\mbox{}\verb@ int GetScanNP(pScanData self);@\\ \mbox{}\verb@ int GetScanNP(pScanData self);@\\

2
scan.w
View File

@ -192,7 +192,6 @@ Scan variables have an interface:
int iP); int iP);
pStringDict scanFunctions; pStringDict scanFunctions;
long lPos; long lPos;
int posSoft;
void *pCounterData; void *pCounterData;
char pCounterName[512]; char pCounterName[512];
int iChannel; int iChannel;
@ -312,7 +311,6 @@ functions:
char *pName, int iLength); char *pName, int iLength);
int GetScanVarStep(pScanData self, int iWhich, int GetScanVarStep(pScanData self, int iWhich,
float *fStep); float *fStep);
int isScanVarSoft(pScanData self);
int GetScanMonitor(pScanData self, int iWhich, int GetScanMonitor(pScanData self, int iWhich,
long *lData, int iDataLen); long *lData, int iDataLen);
int GetScanNP(pScanData self); int GetScanNP(pScanData self);

View File

@ -23,7 +23,7 @@
#include "rs232c_def.h" #include "rs232c_def.h"
#include "el734_def.h" #include "el734_def.h"
#include "psi/hardsup/serialsinq.h" #include "psi/hardsup/serialsinq.h"
#include "sics.h" #include <sics.h>
#define False 0 #define False 0
#define True 1 #define True 1

2
sics.h
View File

@ -17,7 +17,7 @@
/* the following line suppresses const declarations in tcl.h. /* the following line suppresses const declarations in tcl.h.
-> makes the compiler happy M.Z. */ -> makes the compiler happy M.Z. */
/* #define NO_CONST */ #define NO_CONST
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>

View File

@ -37,7 +37,7 @@ typedef struct __STATEMON {
eventCode = STEND; eventCode = STEND;
} else { } else {
printf("Unrecognized event text from devexec in statemon.c: %s\n", printf("Unrecognized event text from devexec in statemon.c: %s\n",
text); (char *)text);
return 0; return 0;
} }
if(self != NULL){ if(self != NULL){

View File

@ -787,16 +787,8 @@ int prepareDataFile(pScanData self){
pVar = (pVarEntry)pDings; pVar = (pVarEntry)pDings;
if(pVar) if(pVar)
{ {
if(jochenFlag == 1 && fVal = pVar->pInter->GetValue(pVar->pObject,self->pCon);
strcmp(pVar->pObject->pDescriptor->name, "Motor") == 0) AppendScanVar(pVar,fVal);
{
MotorGetSoftPosition((pMotor)pVar->pObject,self->pCon,&fVal);
}
else
{
fVal = pVar->pInter->GetValue(pVar->pObject,self->pCon);
}
AppendScanVar(pVar,fVal);
sprintf(pItem,"%-9.9s ",ScanVarName(pVar)); sprintf(pItem,"%-9.9s ",ScanVarName(pVar));
strcat(pHead,pItem); strcat(pHead,pItem);
sprintf(pItem,"%-9.3f ",fVal); sprintf(pItem,"%-9.3f ",fVal);
@ -841,11 +833,6 @@ int prepareDataFile(pScanData self){
{ {
return CollectScanDataIntern(self,iPoint,0); return CollectScanDataIntern(self,iPoint,0);
} }
/*--------------------------------------------------------------------------*/
int CollectScanDataJochen(pScanData self, int iPoint)
{
return CollectScanDataIntern(self,iPoint,1);
}
/*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/
int CollectSilent(pScanData self, int iPoint) int CollectSilent(pScanData self, int iPoint)
{ {
@ -867,15 +854,7 @@ int prepareDataFile(pScanData self){
pVar = (pVarEntry)pDings; pVar = (pVarEntry)pDings;
if(pVar) if(pVar)
{ {
if(jochenFlag == 1 && fVal = pVar->pInter->GetValue(pVar->pObject,self->pCon);
strcmp(pVar->pObject->pDescriptor->name, "Motor") == 0)
{
MotorGetSoftPosition((pMotor)pVar->pObject,self->pCon,&fVal);
}
else
{
fVal = pVar->pInter->GetValue(pVar->pObject,self->pCon);
}
AppendScanVar(pVar,fVal); AppendScanVar(pVar,fVal);
} }
} }

View File

@ -142,16 +142,7 @@ static float readDrivable(char *val, SConnection *pCon){
float fVal; float fVal;
/* /*
if motor: read motor read general drivable
*/
pMot = FindMotor(pServ->pSics,val);
if(pMot != NULL){
MotorGetSoftPosition(pMot,pCon,&fVal);
return fVal;
}
/*
else: read general drivable
*/ */
pCom = FindCommand(pServ->pSics,val); pCom = FindCommand(pServ->pSics,val);
if(pCom != NULL){ if(pCom != NULL){

667
val.lis
View File

@ -1,215 +1,458 @@
==16499== Memcheck, a memory error detector for x86-linux. ==26623== Memcheck, a memory error detector.
==16499== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al. ==26623== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==16499== Using valgrind-2.2.0, a program supervision framework for x86-linux. ==26623== Using LibVEX rev 1575, a library for dynamic binary translation.
==16499== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al. ==26623== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
==16499== For more details, rerun with: -v ==26623== Using valgrind-3.1.1, a dynamic binary instrumentation framework.
==16499== ==26623== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==26623== For more details, rerun with: -v
==26623==
WARNING: Cannot log(Accepted dummy connection ) WARNING: Cannot log(Accepted dummy connection )
sim/topsi/morpheus.tcl:0>> ServerOption ReadTimeOut 10 mcstas/dmc/vdmc.tcl:0>> ServerOption ReadTimeOut 10
sim/topsi/morpheus.tcl:1>> ServerOption AcceptTimeOut 50 mcstas/dmc/vdmc.tcl:1>> ServerOption AcceptTimeOut 10
sim/topsi/morpheus.tcl:2>> ServerOption ReadUserPasswdTimeout 500000 mcstas/dmc/vdmc.tcl:2>> ServerOption ReadUserPasswdTimeout 500000
sim/topsi/morpheus.tcl:3>> ServerOption LogFileBaseName $loghome/morpheus mcstas/dmc/vdmc.tcl:3>> ServerOption LogFileBaseName "$home/vdmclog"
sim/topsi/morpheus.tcl:4>> ServerOption TecsPort 9753 mcstas/dmc/vdmc.tcl:4>> ServerOption LogFileDir $home/
sim/topsi/morpheus.tcl:5>> ServerOption ServerPort 2911 mcstas/dmc/vdmc.tcl:5>> ServerOption ServerPort 2911
sim/topsi/morpheus.tcl:6>> ServerOption InterruptPort 9709 mcstas/dmc/vdmc.tcl:6>> ServerOption statusfile $home/vdmcstatus.tcl
sim/topsi/morpheus.tcl:7>> ServerOption statusfile $datahome/morpheusstatus.tcl mcstas/dmc/vdmc.tcl:7>> ServerOption InterruptPort 3007
sim/topsi/morpheus.tcl:8>> ServerOption TelnetPort 1301 mcstas/dmc/vdmc.tcl:8>> ServerOption TelnetPort 1301
sim/topsi/morpheus.tcl:9>> ServerOption TelWord sicslogin mcstas/dmc/vdmc.tcl:9>> ServerOption TelWord sicslogin
sim/topsi/morpheus.tcl:10>> ServerOption QuieckPort 2108 mcstas/dmc/vdmc.tcl:10>> SicsUser lnsmanager lnsSICSlns 1
sim/topsi/morpheus.tcl:11>> TokenInit connan mcstas/dmc/vdmc.tcl:11>> SicsUser Manager Manager 1
sim/topsi/morpheus.tcl:12>> ServerOption LogFileDir $loghome mcstas/dmc/vdmc.tcl:12>> SicsUser user looser 2
sim/topsi/morpheus.tcl:13>> commandlog auto mcstas/dmc/vdmc.tcl:13>> SicsUser Spy 007 1
sim/topsi/morpheus.tcl:14>> ServerOption RedirectFile $loghome/mostdout mcstas/dmc/vdmc.tcl:14>> ClientPut "Installing Motors"
sim/topsi/morpheus.tcl:15>> MakeDataNumber SicsDataNumber $datahome/DataNumber Installing Motors
sim/topsi/morpheus.tcl:16>> VarMake SicsDataPath Text Mugger mcstas/dmc/vdmc.tcl:15>> Motor OmegaM SIM 0 120 -.1 2.
sim/topsi/morpheus.tcl:17>> SicsDataPath $datahome/ mcstas/dmc/vdmc.tcl:16>> Motor TwoThetaM SIM 30 100 -.1 1.
sim/topsi/morpheus.tcl:18>> SicsDataPath lock mcstas/dmc/vdmc.tcl:17>> Motor MonoX SIM -30 30 -.1 3.0
sim/topsi/morpheus.tcl:19>> VarMake SicsDataPrefix Text Mugger mcstas/dmc/vdmc.tcl:18>> Motor MonoY SIM -30 30 -.1 3.0
sim/topsi/morpheus.tcl:20>> SicsDataPrefix lock mcstas/dmc/vdmc.tcl:19>> Motor CurveM SIM 0 20 -.1 3.0
sim/topsi/morpheus.tcl:21>> VarMake SicsDataPostFix Text Mugger mcstas/dmc/vdmc.tcl:20>> Motor MonoPhi SIM -30 30 -.1 3.0
sim/topsi/morpheus.tcl:22>> SicsDataPostFix .dat mcstas/dmc/vdmc.tcl:21>> Motor MonoChi SIM -30 30 -.1 3.0
sim/topsi/morpheus.tcl:23>> SicsDataPostFix lock mcstas/dmc/vdmc.tcl:22>> Motor Table SIM -180 360 -.1 2.
sim/topsi/morpheus.tcl:24>> SicsUser lnsmanager lnsSICSlns 1 mcstas/dmc/vdmc.tcl:23>> Motor TwoThetaD SIM -10 120 -.1 1.
sim/topsi/morpheus.tcl:25>> SicsUser morpheususer 06lns1 2 mcstas/dmc/vdmc.tcl:24>> MakeMono Mono "PG-002" OmegaM TwoThetaM CurveM
sim/topsi/morpheus.tcl:26>> SicsUser mu 06lns1 2 mcstas/dmc/vdmc.tcl:25>> Mono DD 3.3537
sim/topsi/morpheus.tcl:27>> VarMake Instrument Text Internal mcstas/dmc/vdmc.tcl:26>> Mono vk1 -0.025942
sim/topsi/morpheus.tcl:28>> VarMake sample Text User mcstas/dmc/vdmc.tcl:27>> Mono vk2 5.351660
sim/topsi/morpheus.tcl:29>> sample " " mcstas/dmc/vdmc.tcl:28>> MakeWaveLength lambda Mono
sim/topsi/morpheus.tcl:30>> VarMake Title Text User mcstas/dmc/vdmc.tcl:29>> allowexec $home/dmcafter
sim/topsi/morpheus.tcl:31>> Title "morpheus" mcstas/dmc/vdmc.tcl:30>> allowexec $home/dmc_sics05
sim/topsi/morpheus.tcl:32>> VarMake User Text User mcstas/dmc/vdmc.tcl:31>> ClientPut "Installing counter"
sim/topsi/morpheus.tcl:33>> User "unknown" Installing counter
sim/topsi/morpheus.tcl:34>> VarMake email Text User mcstas/dmc/vdmc.tcl:32>> MakeCounter counter mcstas
sim/topsi/morpheus.tcl:35>> email "unknown" mcstas/dmc/vdmc.tcl:33>> counter SetExponent 1
sim/topsi/morpheus.tcl:36>> VarMake adress Text User mcstas/dmc/vdmc.tcl:34>> MakeHM banana mcstas
sim/topsi/morpheus.tcl:37>> adress "unknown" mcstas/dmc/vdmc.tcl:35>> banana configure HistMode Normal
sim/topsi/morpheus.tcl:38>> VarMake fax Text User mcstas/dmc/vdmc.tcl:36>> banana configure OverFlowMode Ceil
sim/topsi/morpheus.tcl:39>> fax "unknown" mcstas/dmc/vdmc.tcl:37>> banana configure Rank 1
sim/topsi/morpheus.tcl:40>> VarMake phone Text User mcstas/dmc/vdmc.tcl:38>> banana configure dim0 400
sim/topsi/morpheus.tcl:41>> phone "unknown" mcstas/dmc/vdmc.tcl:39>> banana configure BinWidth 4
sim/topsi/morpheus.tcl:42>> VarMake BatchRoot text User mcstas/dmc/vdmc.tcl:40>> banana preset 100.
sim/topsi/morpheus.tcl:43>> VarMake lastscancommand Text User mcstas/dmc/vdmc.tcl:41>> banana CountMode Timer
sim/topsi/morpheus.tcl:44>> lastscancommand "unknown scan" mcstas/dmc/vdmc.tcl:42>> banana configure Counter counter
sim/topsi/morpheus.tcl:45>> Publish savemotorpar Mugger mcstas/dmc/vdmc.tcl:43>> banana configure init 0
sim/topsi/morpheus.tcl:46>> SicsAlias STH A3 mcstas/dmc/vdmc.tcl:44>> banana init
sim/topsi/morpheus.tcl:47>> SicsAlias STH SOM mcstas/dmc/vdmc.tcl:45>> banana exponent 3
sim/topsi/morpheus.tcl:48>> SicsAlias STH TH mcstas/dmc/vdmc.tcl:46>> SicsAlias OmegaM A1
sim/topsi/morpheus.tcl:49>> SicsAlias STH OM mcstas/dmc/vdmc.tcl:47>> SicsAlias TwoThetaM A2
sim/topsi/morpheus.tcl:50>> SicsAlias STT A4 mcstas/dmc/vdmc.tcl:48>> SicsAlias Table A3
sim/topsi/morpheus.tcl:51>> SicsAlias STT S2T mcstas/dmc/vdmc.tcl:49>> SicsAlias TwoThetaD A4
sim/topsi/morpheus.tcl:52>> SicsAlias STT TTH mcstas/dmc/vdmc.tcl:50>> SicsAlias MonoX A5
sim/topsi/morpheus.tcl:53>> SicsAlias STT 2T mcstas/dmc/vdmc.tcl:51>> SicsAlias MonoY A6
sim/topsi/morpheus.tcl:54>> SicsAlias SCX SCH mcstas/dmc/vdmc.tcl:52>> SicsAlias MonoPhi A7
sim/topsi/morpheus.tcl:55>> SicsAlias SCY SPH mcstas/dmc/vdmc.tcl:53>> SicsAlias MonoChi A8
sim/topsi/morpheus.tcl:56>> SicsAlias SCY ATX mcstas/dmc/vdmc.tcl:54>> SicsAlias CurveM A9
sim/topsi/morpheus.tcl:57>> SicsAlias PO1 POL mcstas/dmc/vdmc.tcl:55>> DefineAlias TT temperature
sim/topsi/morpheus.tcl:58>> SicsAlias PO2 ANA mcstas/dmc/vdmc.tcl:56>> VarMake SicsDataPath Text Internal
sim/topsi/morpheus.tcl:59>> SicsAlias MTH A1 mcstas/dmc/vdmc.tcl:57>> SicsDataPath "$home/"
sim/topsi/morpheus.tcl:60>> SicsAlias MTH MOM mcstas/dmc/vdmc.tcl:58>> SicsDataPath lock
sim/topsi/morpheus.tcl:61>> SicsAlias MTT A2 mcstas/dmc/vdmc.tcl:59>> VarMake DetStepWidth Float Internal
sim/topsi/morpheus.tcl:62>> SicsAlias MTT M2T mcstas/dmc/vdmc.tcl:60>> DetStepWidth 0.2
sim/topsi/morpheus.tcl:63>> SicsAlias MFV MCV mcstas/dmc/vdmc.tcl:61>> DetStepWidth lock
sim/topsi/morpheus.tcl:64>> SicsAlias SCX CHI mcstas/dmc/vdmc.tcl:62>> VarMake Instrument Text Internal
sim/topsi/morpheus.tcl:65>> SicsAlias SCY PHI mcstas/dmc/vdmc.tcl:63>> Instrument "Virtual DMC driven by McStas"
sim/topsi/morpheus.tcl:66>> MakeLin2Ang sttl utt mcstas/dmc/vdmc.tcl:64>> Instrument lock
sim/topsi/morpheus.tcl:67>> sttl length 2110 mcstas/dmc/vdmc.tcl:65>> VarMake Title Text User
sim/topsi/morpheus.tcl:68>> SicsAlias sttl u2t mcstas/dmc/vdmc.tcl:66>> VarMake User Text User
sim/topsi/morpheus.tcl:69>> MakeO2T O2T sth stt mcstas/dmc/vdmc.tcl:67>> VarMake Collimation Text User
sim/topsi/morpheus.tcl:70>> MakeO2T O2TL sth sttl mcstas/dmc/vdmc.tcl:68>> VarMake SampleIntern Text User
sim/topsi/morpheus.tcl:71>> MakeO2T O2U sth sttl mcstas/dmc/vdmc.tcl:69>> SampleIntern Kellerit
sim/topsi/morpheus.tcl:72>> MakeScanCommand xxxscan counter $scripthome/morpheus.hdd \ mcstas/dmc/vdmc.tcl:70>> VarMake comment1 Text User
$loghome/recover.bin mcstas/dmc/vdmc.tcl:71>> VarMake comment2 Text User
sim/topsi/morpheus.tcl:73>> MakePeakCenter xxxscan mcstas/dmc/vdmc.tcl:72>> VarMake comment3 Text User
sim/topsi/morpheus.tcl:74>> xxxscan configure soft mcstas/dmc/vdmc.tcl:73>> VarMake starttime Text User
sim/topsi/morpheus.tcl:75>> MakeOptimise opti counter mcstas/dmc/vdmc.tcl:74>> starttime ""
sim/topsi/morpheus.tcl:76>> SicsAlias drive dr mcstas/dmc/vdmc.tcl:75>> VarMake SicsDataPrefix Text Internal
sim/topsi/morpheus.tcl:77>> DefineAlias TT temperature mcstas/dmc/vdmc.tcl:76>> SicsDataPrefix vdmc
sim/topsi/morpheus.tcl:78>> MakeHKL stt sth sph sch mcstas/dmc/vdmc.tcl:77>> MakeDataNumber SicsDataNumber $home/DataNumber
sim/topsi/morpheus.tcl:79>> MakeHKLMot hkl mcstas/dmc/vdmc.tcl:78>> VarMake SicsDataPostFix Text Internal
sim/topsi/morpheus.tcl:80>> MakeUBCalc ubcalc hkl mcstas/dmc/vdmc.tcl:79>> SicsDataPostFix ".xml"
sim/topsi/morpheus.tcl:81>> MakeCone cone ubcalc mcstas/dmc/vdmc.tcl:80>> VarMake Adress Text User
sim/topsi/morpheus.tcl:82>> MakeXYTable table mcstas/dmc/vdmc.tcl:81>> VarMake phone Text User
sim/topsi/morpheus.tcl:83>> MakeConfigurableMotor two mcstas/dmc/vdmc.tcl:82>> VarMake fax Text User
sim/topsi/morpheus.tcl:84>> two drivescript twoscript mcstas/dmc/vdmc.tcl:83>> VarMake email Text User
mcstas/dmc/vdmc.tcl:84>> VarMake sample_mur Float User
mcstas/dmc/vdmc.tcl:85>> VarMake lastdatafile Text User
ERROR: duplicate exe manager not created ERROR: duplicate exe manager not created
sim/topsi/morpheus.tcl:85>> fileeval $scripthome/morpheuscom.tcl mcstas/dmc/vdmc.tcl:86>> commandlog auto
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:86>> MakeStateMon xxxscan mcstas/dmc/vdmc.tcl:87>> commandlog intervall 5
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:87>> hmake /morpheus spy none mcstas/dmc/vdmc.tcl:88>> hmake /dmc spy none
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:88>> hsetprop /morpheus type instrument mcstas/dmc/vdmc.tcl:89>> hsetprop /dmc type instrument
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:89>> hmake /graphics spy none mcstas/dmc/vdmc.tcl:90>> hmake /dmc/experiment spy none
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:90>> hsetprop /graphics type graphset mcstas/dmc/vdmc.tcl:91>> hattach /dmc/experiment title title
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:91>> hmake /commands spy none mcstas/dmc/vdmc.tcl:92>> hattach /dmc/experiment user user
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:92>> hsetprop /commands type commandset mcstas/dmc/vdmc.tcl:93>> hattach /dmc/experiment starttime starttime
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:93>> hattach /morpheus title title mcstas/dmc/vdmc.tcl:94>> hattach /dmc/experiment user user
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:94>> hmake /morpheus/user spy none mcstas/dmc/vdmc.tcl:95>> hattach /dmc/experiment/user adress address
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:95>> hsetprop /morpheus/user type dev mcstas/dmc/vdmc.tcl:96>> hattach /dmc/experiment/user phone phone
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:96>> hattach /morheus/user user name mcstas/dmc/vdmc.tcl:97>> hattach /dmc/experiment/user email email
ERROR: path to attach object too not found mcstas/dmc/vdmc.tcl:98>> hattach /dmc/experiment comment1 comment1
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:97>> hattach /morpheus/user adress address mcstas/dmc/vdmc.tcl:99>> hattach /dmc/experiment comment2 comment2
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:98>> hattach /morpheus/user phone phone mcstas/dmc/vdmc.tcl:100>> hattach /dmc/experiment comment3 comment3
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:99>> hattach /morpheus/user email email mcstas/dmc/vdmc.tcl:101>> hmake /dmc/sinq spy none
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:100>> hmake /morpheus/monochromator spy none mcstas/dmc/vdmc.tcl:102>> hmakescript /dmc/sinq/proton_monitor "counter getmonitor 4" hdbReadOnly int
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:101>> hsetprop /morpheus/monochromator type part mcstas/dmc/vdmc.tcl:103>> sicspoll /dmc/sinq/proton_monitor hdb 10
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:102>> hattach /morpheus/monochromator lambda wavelength mcstas/dmc/vdmc.tcl:104>> hmake /dmc/monochromator spy none
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:103>> hattach /morpheus/monochromator mth theta mcstas/dmc/vdmc.tcl:105>> hattach /dmc/monochromator lambda wavelength
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:104>> hattach /morpheus/monochromator mtt two_theta mcstas/dmc/vdmc.tcl:106>> hattach /dmc/monochromator OmegaM theta
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:105>> hattach /morpheus/monochromator mtx x_translation mcstas/dmc/vdmc.tcl:107>> hattach /dmc/monochromator TwoThetaM two_theta
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:106>> hattach /morpheus/monochromator mty y_translation mcstas/dmc/vdmc.tcl:108>> hattach /dmc/monochromator MonoX x_translation
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:107>> hattach /morpheus/monochromator mfv vertical_focusing mcstas/dmc/vdmc.tcl:109>> hattach /dmc/monochromator MonoY y_translation
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:108>> hmakescript /morpheus/monochromator/d_value "mono dd" "mono dd" float mcstas/dmc/vdmc.tcl:110>> hattach /dmc/monochromator MonoChi chi
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:109>> hsetprop /morpheus/monochromator/d_value priv manager mcstas/dmc/vdmc.tcl:111>> hattach /dmc/monochromator MonoPhi phi
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:110>> hmakescript /morpheus/monochromator/scattering_sense "mono ss" "mono ss" int mcstas/dmc/vdmc.tcl:112>> hattach /dmc/monochromator CurveM vertical_focusing
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:111>> hsetprop /morpheus/monochromator/scattering_sense priv manager mcstas/dmc/vdmc.tcl:113>> hmakescript /dmc/monochromator/d_value "mono dd" "mono dd" float
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:112>> hmake /morpheus/slit1 spy none mcstas/dmc/vdmc.tcl:114>> hsetprop /dmc/monochromator/d_value priv manager
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:113>> hsetprop /morpheus/slit1 type part mcstas/dmc/vdmc.tcl:115>> hmakescript /dmc/monochromator/scattering_sense "mono ss" "mono ss" int
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:114>> hattach /morpheus/slit1 d1l left mcstas/dmc/vdmc.tcl:116>> hsetprop /dmc/monochromator/scattering_sense priv manager
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:115>> hattach /morpheus/slit1 d1r right mcstas/dmc/vdmc.tcl:117>> hmake /dmc/sample spy none
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:116>> hattach /morpheus/slit1 d1t top mcstas/dmc/vdmc.tcl:118>> hmakescript /dmc/sample/name sample sample Text
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:117>> hattach /morpheus/slit1 d1b bottom mcstas/dmc/vdmc.tcl:119>> hattach /dmc/sample Table rotation
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:118>> hmake /morpheus/slit2 spy none mcstas/dmc/vdmc.tcl:120>> hmakescript /dmc/sample/monitor "counter getmonitor 1" hdbReadOnly int
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:119>> hsetprop /morpheus/slit2 type part mcstas/dmc/vdmc.tcl:121>> hsetprop /dmc/sample/monitor priv internal
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:120>> hattach /morpheus/slit2 d2l left mcstas/dmc/vdmc.tcl:122>> hmake /dmc/detector spy none
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:121>> hattach /morpheus/slit2 d2r right mcstas/dmc/vdmc.tcl:123>> hattach /dmc/detector TwoThetaD two_theta
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:122>> hattach /morpheus/slit2 d2t top mcstas/dmc/vdmc.tcl:124>> hmakescript /dmc/detector/preset "counter getpreset" hdbReadOnly float
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:123>> hattach /morpheus/slit2 d2b bottom mcstas/dmc/vdmc.tcl:125>> hsetprop /dmc/detector/preset priv internal
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:124>> hmake /morpheus/sample spy none mcstas/dmc/vdmc.tcl:126>> hmakescript /dmc/detector/countmode "counter getmode" hdbReadOnly text
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:125>> hsetprop /morpheus/sample type part mcstas/dmc/vdmc.tcl:127>> hsetprop /dmc/detector/countmode priv internal
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:126>> hattach /morpheus/sample sample name mcstas/dmc/vdmc.tcl:128>> sicspoll add /dmc/detector/preset hdb 30
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:127>> hattach /morpheus/sample sth omega mcstas/dmc/vdmc.tcl:129>> sicspoll add /dmc/detector/countmode hdb 30
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:128>> hattach /morpheus/sample stt two_theta mcstas/dmc/vdmc.tcl:130>> hmake /commands spy none
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:129>> hattach /morpheus/sample stx x_translation mcstas/dmc/vdmc.tcl:131>> hcommand /commands/count count
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:130>> hattach /morpheus/sample sty y_translation mcstas/dmc/vdmc.tcl:132>> hsetprop /commands/count type command
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:131>> hattach /morpheus/sample sgy y_goniometer mcstas/dmc/vdmc.tcl:133>> hmake /commands/count/mode user text
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:132>> hattach /morpheus/sample sgx x_goniometer mcstas/dmc/vdmc.tcl:134>> hmake /commands/count/preset user float
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:133>> hmake /morpheus/monitor spy none mcstas/dmc/vdmc.tcl:135>> hset /commands/count/preset 5
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:134>> hsetprop /morpheus/monitor type part mcstas/dmc/vdmc.tcl:136>> hset /commands/count/mode timer
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:135>> hmakescript /morpheus/monitor/counts "counter getmonitor 1" hdbReadOnly int mcstas/dmc/vdmc.tcl:137>> ==26623== Invalid read of size 1
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:136>> hsetprop /morpheus/monitor/counts priv internal ==26623== at 0x401C434: strcmp (mac_replace_strmem.c:332)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:137>> hmakescript /morpheus/monitor/preset "counter getpreset" "counter setpreset" float ==26623== by 0x80E756C: compareHdbValue (hipadaba.c:446)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:138>> hmakescript /morpheus/monitor/countmode "counter getmode" "counter setmode" text ==26623== by 0x80F26EA: pollHdb (polldriv.c:38)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:139>> hmake /morpheus/counter spy none ==26623== by 0x80F2B96: PollTask (sicspoll.c:132)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:140>> hsetprop /morpheus/counter type part ==26623== by 0x8057B08: TaskSchedule (task.c:211)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:141>> hmakescript /morpheus/counter/counts "counter getcounts" hdbReadOnly int ==26623== by 0x805667C: RunServer (nserver.c:419)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:142>> hsetprop /morpheus/counter/counts priv internal ==26623== by 0x8056AC5: main (SICSmain.c:59)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:143>> hmake /graphics/scan_data spy none ==26623== Address 0x4330FF0 is 0 bytes inside a block of size 8 free'd
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:144>> hsetprop /graphics/scan_data type graphdata ==26623== at 0x401B14C: free (vg_replace_malloc.c:235)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:145>> hsetprop /graphics/scan_data viewer default ==26623== by 0x80EB515: readHdbValue (sicshipadaba.c:1333)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:146>> hmake /graphics/scan_data/rank mugger int ==26623== by 0x80E95D8: SICSScriptReadCallback (sicshipadaba.c:403)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:147>> hset /graphics/scan_data/rank 1 ==26623== by 0x80E6B93: InvokeCallbackChain (hipadaba.c:66)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:148>> hsetprop /graphics/scan_data/rank priv internal ==26623== by 0x80E8466: GetHipadabaPar (hipadaba.c:943)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:149>> hmakescript /graphics/scan_data/dim "xxxscan np" hdbReadOnly intar 1 ==26623== by 0x80F26C5: pollHdb (polldriv.c:37)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:150>> hsetprop /graphics/scan_data/dim priv internal ==26623== by 0x80F2B96: PollTask (sicspoll.c:132)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:151>> hmakescript /graphics/scan_data/scan_variable "gethdbscanvardata 0" hdbReadOnly floatvarar 1 ==26623== by 0x8057B08: TaskSchedule (task.c:211)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:152>> hsetprop /graphics/scan_data/scan_variable type axis ==26623== by 0x805667C: RunServer (nserver.c:419)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:153>> hsetprop /graphics/scan_data/scan_variable dim 0 ==26623== by 0x8056AC5: main (SICSmain.c:59)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:154>> hsetprop /graphics/scan_data/scan_variable priv internal ==26623==
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:155>> hmakescript /graphics/scan_data/counts "gethdbscancounts" hdbReadOnly intvarar 1 ==26623== Use of uninitialised value of size 4
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:156>> hsetprop /graphics/scan_data/counts type data ==26623== at 0x80D4150: getNextMCNumber (mcreader.c:119)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:157>> hsetprop /graphics/scan_data/counts priv internal ==26623== by 0x80D4505: insertMonitor (mcreader.c:196)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:158>> hcommand /commands/scan hdbscan ==26623== by 0x80D5222: McStasReaderWrapper (mcreader.c:451)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:159>> hsetprop /commands/scan type command ==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:160>> hsetprop /commands/scan priv user ==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:161>> hmake /commands/scan/scan_variables user text ==26623== by 0x406A602: TclExecuteByteCode (in /usr/lib/libtcl8.3.so)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:162>> hmake /commands/scan/scan_start user text ==26623== by 0x404E291: Tcl_EvalObjEx (in /usr/lib/libtcl8.3.so)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:163>> hmake /commands/scan/scan_increments user text ==26623== by 0x40906B7: TclObjInterpProc (in /usr/lib/libtcl8.3.so)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:164>> hmake /commands/scan/NP user int ==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:165>> hmake /commands/scan/mode user text ==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
/home/koenneck/psi/workspace/sics/sim/topsi/morpheuscom.tcl:166>> hmake /commands/scan/preset user float ==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623== by 0x80D5BCD: invokeScript (mccontrol.c:167)
==26623==
==26623== Conditional jump or move depends on uninitialised value(s)
==26623== at 0x80D4164: getNextMCNumber (mcreader.c:119)
==26623== by 0x80D4505: insertMonitor (mcreader.c:196)
==26623== by 0x80D5222: McStasReaderWrapper (mcreader.c:451)
==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==26623== by 0x406A602: TclExecuteByteCode (in /usr/lib/libtcl8.3.so)
==26623== by 0x404E291: Tcl_EvalObjEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x40906B7: TclObjInterpProc (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623== by 0x80D5BCD: invokeScript (mccontrol.c:167)
==26623==
==26623== Conditional jump or move depends on uninitialised value(s)
==26623== at 0x412F31D: __strtod_internal (in /lib/tls/libc-2.3.2.so)
==26623== by 0x4125270: atof (in /lib/tls/libc-2.3.2.so)
==26623== by 0x80D451D: insertMonitor (mcreader.c:197)
==26623== by 0x80D5222: McStasReaderWrapper (mcreader.c:451)
==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==26623== by 0x406A602: TclExecuteByteCode (in /usr/lib/libtcl8.3.so)
==26623== by 0x404E291: Tcl_EvalObjEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x40906B7: TclObjInterpProc (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623==
==26623== Conditional jump or move depends on uninitialised value(s)
==26623== at 0x412D64D: __strtod_internal (in /lib/tls/libc-2.3.2.so)
==26623== by 0x4125270: atof (in /lib/tls/libc-2.3.2.so)
==26623== by 0x80D451D: insertMonitor (mcreader.c:197)
==26623== by 0x80D5222: McStasReaderWrapper (mcreader.c:451)
==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==26623== by 0x406A602: TclExecuteByteCode (in /usr/lib/libtcl8.3.so)
==26623== by 0x404E291: Tcl_EvalObjEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x40906B7: TclObjInterpProc (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623==
==26623== Conditional jump or move depends on uninitialised value(s)
==26623== at 0x412F027: __strtod_internal (in /lib/tls/libc-2.3.2.so)
==26623== by 0x4125270: atof (in /lib/tls/libc-2.3.2.so)
==26623== by 0x80D451D: insertMonitor (mcreader.c:197)
==26623== by 0x80D5222: McStasReaderWrapper (mcreader.c:451)
==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==26623== by 0x406A602: TclExecuteByteCode (in /usr/lib/libtcl8.3.so)
==26623== by 0x404E291: Tcl_EvalObjEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x40906B7: TclObjInterpProc (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623==
==26623== Use of uninitialised value of size 4
==26623== at 0x412F11A: __strtod_internal (in /lib/tls/libc-2.3.2.so)
==26623== by 0x4125270: atof (in /lib/tls/libc-2.3.2.so)
==26623== by 0x80D451D: insertMonitor (mcreader.c:197)
==26623== by 0x80D5222: McStasReaderWrapper (mcreader.c:451)
==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==26623== by 0x406A602: TclExecuteByteCode (in /usr/lib/libtcl8.3.so)
==26623== by 0x404E291: Tcl_EvalObjEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x40906B7: TclObjInterpProc (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623==
==26623== Invalid free() / delete / delete[]
==26623== at 0x401B14C: free (vg_replace_malloc.c:235)
==26623== by 0x80E747D: ReleaseHdbValue (hipadaba.c:409)
==26623== by 0x80E6B0E: DeleteNodeData (hipadaba.c:49)
==26623== by 0x80E6B48: DeleteNodeData (hipadaba.c:55)
==26623== by 0x80E6B48: DeleteNodeData (hipadaba.c:55)
==26623== by 0x80E6B48: DeleteNodeData (hipadaba.c:55)
==26623== by 0x80E7A10: DeleteHipadabaNode (hipadaba.c:605)
==26623== by 0x80EE3DC: killSICSHipadaba (sicshipadaba.c:2504)
==26623== by 0x8056653: StopServer (nserver.c:404)
==26623== by 0x8056AD6: main (SICSmain.c:61)
==26623== Address 0x4291978 is 0 bytes inside a block of size 1,600 free'd
==26623== at 0x401B14C: free (vg_replace_malloc.c:235)
==26623== by 0x80D67D8: killHMData (hmdata.c:40)
==26623== by 0x807C83E: DeleteHistDriver (histdriv.c:102)
==26623== by 0x807929E: DeleteHistMemory (histmem.c:499)
==26623== by 0x8051BD7: DeleteInterp (SCinter.c:483)
==26623== by 0x8056596: StopServer (nserver.c:358)
==26623== by 0x8056AD6: main (SICSmain.c:61)
hmake /Graphics spy none
mcstas/dmc/vdmc.tcl:138>> hmake /Graphics/powder_diagram spy none
mcstas/dmc/vdmc.tcl:139>> hsetprop /Graphics/powder_diagram type graphdata
mcstas/dmc/vdmc.tcl:140>> hsetprop /Graphics/powder_diagram viewer default
mcstas/dmc/vdmc.tcl:141>> hmake /Graphics/powder_diagram/rank internal int
mcstas/dmc/vdmc.tcl:142>> hset /Graphics/powder_diagram/rank 1
mcstas/dmc/vdmc.tcl:143>> hmake /Graphics/powder_diagram/dim internal intar 1
mcstas/dmc/vdmc.tcl:144>> hset /Graphics/powder_diagram/dim 400
mcstas/dmc/vdmc.tcl:145>> hmakescript /Graphics/powder_diagram/two_theta maketwotheta hdbReadOnly floatar 400
mcstas/dmc/vdmc.tcl:146>> sicspoll add /Graphics/powder_diagram/two_theta hdb 30
mcstas/dmc/vdmc.tcl:147>> hsetprop /Graphics/powder_diagram/two_theta type axis
mcstas/dmc/vdmc.tcl:148>> hsetprop /Graphics/powder_diagram/two_theta dim 0
mcstas/dmc/vdmc.tcl:149>> hattach /Graphics/powder_diagram banana counts
mcstas/dmc/vdmc.tcl:150>> hsetprop /Graphics/powder_diagram/counts type data
mcstas/dmc/vdmc.tcl:151>> hsetprop /Graphics/powder_diagram/counts priv internal
mcstas/dmc/vdmc.tcl:152>> sicspoll add /Graphics/powder_diagram/counts hdb 60
OK OK
==16499== Invalid read of size 4 OK
==16499== at 0x807D1B4: CheckPointer (callback.c:73) HM scale = 193788348.665
==16499== by 0x807D408: RegisterCallback (callback.c:163) OK
==16499== by 0x80F4593: StateMonAction (statemon.c:276) ==26623==
==16499== by 0x8051B55: InterpExecute (SCinter.c:319) ==26623== ERROR SUMMARY: 30656 errors from 8 contexts (suppressed: 29 from 2)
==16499== Address 0x45C708EC is not stack'd, malloc'd or (recently) free'd ==26623== malloc/free: in use at exit: 127,433 bytes in 2,230 blocks.
==16499== ==26623== malloc/free: 8,188,720 allocs, 8,186,491 frees, 230,654,912 bytes allocated.
==16499== Process terminating with default action of signal 11 (SIGSEGV): dumping core ==26623== For counts of detected errors, rerun with: -v
==16499== Access not within mapped region at address 0x45C708EC ==26623== searching for pointers to 2,230 not-freed blocks.
==16499== at 0x807D1B4: CheckPointer (callback.c:73) ==26623== checked 501,620 bytes.
==16499== by 0x807D408: RegisterCallback (callback.c:163) ==26623==
==16499== by 0x80F4593: StateMonAction (statemon.c:276) ==26623==
==16499== by 0x8051B55: InterpExecute (SCinter.c:319) ==26623== 0 bytes in 1 blocks are definitely lost in loss record 1 of 23
==26623== at 0x401A639: malloc (vg_replace_malloc.c:149)
valgrind: vg_signals.c:1660 (make_coredump): Assertion `vgPlain_lseek(core_fd, 0, 1) == phdrs[i].p_offset' failed. ==26623== by 0x80E709B: makeHdbValue (hipadaba.c:279)
==16499== at 0xB002B765: vgPlain_skin_assert_fail (in /usr/lib/valgrind/stage2) ==26623== by 0x80EB9CE: MakeHdbNode (sicshipadaba.c:1484)
==16499== by 0xB002B764: assert_fail (in /usr/lib/valgrind/stage2) ==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==16499== by 0xB002B7A2: vgPlain_core_assert_fail (in /usr/lib/valgrind/stage2) ==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==16499== by 0xB0031009: make_coredump (in /usr/lib/valgrind/stage2) ==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089349: (within /usr/lib/libtcl8.3.so)
sched status: ==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
Thread 1: status = Runnable, associated_mx = 0x0, associated_cv = 0x0 ==26623== by 0x8058CCB: MacroFileEval (macro.c:535)
==16499== at 0x807D1B4: CheckPointer (callback.c:73) ==26623== by 0x80516E9: InterpExecute (SCinter.c:322)
==16499== by 0x807D408: RegisterCallback (callback.c:163) ==26623== by 0x805B0F9: InitObjectCommands (ofac.c:458)
==16499== by 0x80F4593: StateMonAction (statemon.c:276) ==26623==
==16499== by 0x8051B55: InterpExecute (SCinter.c:319) ==26623==
==26623== 8 bytes in 1 blocks are definitely lost in loss record 2 of 23
==26623== at 0x401A639: malloc (vg_replace_malloc.c:149)
Note: see also the FAQ.txt in the source distribution. ==26623== by 0x80E7869: MakeHipadabaNode (hipadaba.c:545)
It contains workarounds to several common problems. ==26623== by 0x80F1E5A: MakeHMDataNode (sicshdbadapter.c:312)
==26623== by 0x80F2549: SICSHdbAdapter (sicshdbadapter.c:498)
If that doesn't help, please report this bug to: valgrind.kde.org ==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
In the bug report, send all the above text, the valgrind ==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
version, and what Linux distro you are using. Thanks. ==26623== by 0x4089349: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623== by 0x8058CCB: MacroFileEval (macro.c:535)
==26623== by 0x80516E9: InterpExecute (SCinter.c:322)
==26623==
==26623==
==26623== 29 (20 direct, 9 indirect) bytes in 1 blocks are definitely lost in loss record 7 of 23
==26623== at 0x401A639: malloc (vg_replace_malloc.c:149)
==26623== by 0x805B773: CreateDescriptor (obdes.c:64)
==26623== by 0x80F3461: InstallSICSPoll (sicspoll.c:338)
==26623== by 0x80EE635: InstallSICSHipadaba (sicshipadaba.c:2533)
==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089349: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623== by 0x8058CCB: MacroFileEval (macro.c:535)
==26623== by 0x80516E9: InterpExecute (SCinter.c:322)
==26623==
==26623==
==26623== 32 bytes in 4 blocks are definitely lost in loss record 8 of 23
==26623== at 0x401A639: malloc (vg_replace_malloc.c:149)
==26623== by 0x417424F: strdup (in /lib/tls/libc-2.3.2.so)
==26623== by 0x80E7107: makeHdbValue (hipadaba.c:293)
==26623== by 0x80EBC89: MakeHdbScriptNode (sicshipadaba.c:1561)
==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089349: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623== by 0x8058CCB: MacroFileEval (macro.c:535)
==26623== by 0x80516E9: InterpExecute (SCinter.c:322)
==26623==
==26623==
==26623== 387 (36 direct, 351 indirect) bytes in 3 blocks are definitely lost in loss record 11 of 23
==26623== at 0x401A639: malloc (vg_replace_malloc.c:149)
==26623== by 0x8066217: ListInit (lld.c:76)
==26623== by 0x80665A9: LLDcreate (lld.c:196)
==26623== by 0x8077931: CreateStringDict (stringdict.c:68)
==26623== by 0x80584E1: AllowExec (macro.c:249)
==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089349: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623== by 0x8058CCB: MacroFileEval (macro.c:535)
==26623==
==26623==
==26623== 137 (36 direct, 101 indirect) bytes in 1 blocks are definitely lost in loss record 13 of 23
==26623== at 0x401A639: malloc (vg_replace_malloc.c:149)
==26623== by 0x80B0ABB: MakeExeManager (exeman.c:79)
==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089349: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623== by 0x8058CCB: MacroFileEval (macro.c:535)
==26623== by 0x80516E9: InterpExecute (SCinter.c:322)
==26623== by 0x805B0F9: InitObjectCommands (ofac.c:458)
==26623== by 0x8055CEE: InitServer (nserver.c:121)
==26623==
==26623==
==26623== 168 bytes in 16 blocks are definitely lost in loss record 14 of 23
==26623== at 0x401A639: malloc (vg_replace_malloc.c:149)
==26623== by 0x807EAE5: NXwhitespaceCallback (nxio.c:548)
==26623== by 0x828F1C0: mxml_write_ws (mxml-file.c:2817)
==26623== by 0x828E9B3: mxml_write_node (mxml-file.c:2506)
==26623== by 0x828EC74: mxml_write_node (mxml-file.c:2593)
==26623== by 0x828EC74: mxml_write_node (mxml-file.c:2593)
==26623== by 0x828EC74: mxml_write_node (mxml-file.c:2593)
==26623== by 0x828EC74: mxml_write_node (mxml-file.c:2593)
==26623== by 0x828EC74: mxml_write_node (mxml-file.c:2593)
==26623== by 0x828CA1F: mxmlSaveFile (mxml-file.c:371)
==26623== by 0x80C078C: NXXclose (nxxml.c:187)
==26623== by 0x80741BB: nxiclose_ (napi.c:291)
==26623==
==26623==
==26623== 213 bytes in 8 blocks are definitely lost in loss record 15 of 23
==26623== at 0x401A639: malloc (vg_replace_malloc.c:149)
==26623== by 0x80E7C52: GetHipadabaPath (hipadaba.c:683)
==26623== by 0x80EBD05: MakeHdbScriptNode (sicshipadaba.c:1572)
==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089349: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623== by 0x8058CCB: MacroFileEval (macro.c:535)
==26623== by 0x80516E9: InterpExecute (SCinter.c:322)
==26623== by 0x805B0F9: InitObjectCommands (ofac.c:458)
==26623==
==26623==
==26623== 1,368 bytes in 128 blocks are definitely lost in loss record 19 of 23
==26623== at 0x401A639: malloc (vg_replace_malloc.c:149)
==26623== by 0x807EB54: NXwhitespaceCallback (nxio.c:561)
==26623== by 0x828F1C0: mxml_write_ws (mxml-file.c:2817)
==26623== by 0x828E9B3: mxml_write_node (mxml-file.c:2506)
==26623== by 0x828EC74: mxml_write_node (mxml-file.c:2593)
==26623== by 0x828EC74: mxml_write_node (mxml-file.c:2593)
==26623== by 0x828EC74: mxml_write_node (mxml-file.c:2593)
==26623== by 0x828EC74: mxml_write_node (mxml-file.c:2593)
==26623== by 0x828EC74: mxml_write_node (mxml-file.c:2593)
==26623== by 0x828CA1F: mxmlSaveFile (mxml-file.c:371)
==26623== by 0x80C078C: NXXclose (nxxml.c:187)
==26623== by 0x80741BB: nxiclose_ (napi.c:291)
==26623==
==26623==
==26623== 3,200 bytes in 1 blocks are definitely lost in loss record 21 of 23
==26623== at 0x401A639: malloc (vg_replace_malloc.c:149)
==26623== by 0x80E70D5: makeHdbValue (hipadaba.c:287)
==26623== by 0x80EBC89: MakeHdbScriptNode (sicshipadaba.c:1561)
==26623== by 0x8058355: SicsUnknownProc (macro.c:184)
==26623== by 0x404D7EB: TclInvokeStringCommand (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089512: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089349: (within /usr/lib/libtcl8.3.so)
==26623== by 0x4089BFD: Tcl_EvalEx (in /usr/lib/libtcl8.3.so)
==26623== by 0x4089F61: Tcl_Eval (in /usr/lib/libtcl8.3.so)
==26623== by 0x8058CCB: MacroFileEval (macro.c:535)
==26623== by 0x80516E9: InterpExecute (SCinter.c:322)
==26623== by 0x805B0F9: InitObjectCommands (ofac.c:458)
==26623==
==26623== LEAK SUMMARY:
==26623== definitely lost: 5,081 bytes in 164 blocks.
==26623== indirectly lost: 461 bytes in 26 blocks.
==26623== possibly lost: 0 bytes in 0 blocks.
==26623== still reachable: 121,891 bytes in 2,040 blocks.
==26623== suppressed: 0 bytes in 0 blocks.
==26623== Reachable blocks (those to which a pointer was found) are not shown.
==26623== To see them, rerun with: --show-reachable=yes