diff --git a/hmdata.c b/hmdata.c index d81a673e..bd514289 100644 --- a/hmdata.c +++ b/hmdata.c @@ -55,7 +55,7 @@ void clearHMData(pHMdata self){ memset(self->localBuffer,0,size*sizeof(HistInt)); } /*----------------------------------------------------------------------*/ -static int resizeBuffer(pHMdata self){ +int resizeBuffer(pHMdata self){ long size; int i; diff --git a/hmdata.h b/hmdata.h index 5a5d8ca5..2352b407 100644 --- a/hmdata.h +++ b/hmdata.h @@ -37,6 +37,7 @@ int configureHMdata(pHMdata self, pStringDict pOpt, SConnection *pCon); + int resizeBuffer(pHMdata self); int genTimeBinning(pHMdata self, float start, float step, int noSteps); int setTimeBin(pHMdata self, int index, float value); diff --git a/hmdata.w b/hmdata.w index e5cc58d4..41716d4a 100644 --- a/hmdata.w +++ b/hmdata.w @@ -33,6 +33,7 @@ The following functions work on this data structure: int configureHMdata(pHMdata self, pStringDict pOpt, SConnection *pCon); + int resizeBuffer(pHMdata self); int genTimeBinning(pHMdata self, float start, float step, int noSteps); int setTimeBin(pHMdata self, int index, float value); diff --git a/napi5.c b/napi5.c index a860f215..48089269 100644 --- a/napi5.c +++ b/napi5.c @@ -589,7 +589,7 @@ static void ignoreError(void *data, char *text){ hsize_t chunkdims[H5S_MAX_RANK]; hsize_t mydim[H5S_MAX_RANK], mydim1[H5S_MAX_RANK]; hsize_t size[2]; - hsize_t maxdims[1] = {H5S_UNLIMITED}; + hsize_t maxdims[H5S_MAX_RANK]; pFile = NXI5assert (fid); @@ -651,6 +651,8 @@ static void ignoreError(void *data, char *text){ NXIReportError (NXpData, pBuffer); return NX_ERROR; } + mydim[i] = dimensions[i]; + maxdims[i] = dimensions[i]; } if (datatype == NX_CHAR) { @@ -665,7 +667,8 @@ static void ignoreError(void *data, char *text){ } else { if (dimensions[0] == NX_UNLIMITED) { - mydim[0]=0; + mydim[0]=1; + maxdims[0] = H5S_UNLIMITED; dataspace=H5Screate_simple(rank, mydim, maxdims); } else { for(i = 0; i < rank; i++) @@ -721,8 +724,10 @@ static void ignoreError(void *data, char *text){ } if (dimensions[0] == NX_UNLIMITED) { - size[0] = 1; - size[1] = 1; + for(i = 0; i < rank; i++){ + size[i] = dimensions[i]; + } + size[0] = 1; iNew = H5Dextend (pFile->iCurrentD, size); if (iNew < 0) { sprintf (pBuffer, "ERROR: cannot create Dataset %s, check arguments", diff --git a/nxdict.c b/nxdict.c index e1d5639c..25737a7e 100644 --- a/nxdict.c +++ b/nxdict.c @@ -1164,11 +1164,14 @@ */ if(iChunkDefined == 0) { - for(i = 0; i < iRank; i++) - { - iChunk[i] = iDim[i]; + for(i = 0; i < iRank; i++) + { + iChunk[i] = iDim[i]; } } + if(iChunk[0] < 0) { + iChunk[0] = 1; + } /* first install dummy error handler, try open it, then deinstall again and create if allowed diff --git a/nxscript.c b/nxscript.c index 5252fca7..1857b78e 100644 --- a/nxscript.c +++ b/nxscript.c @@ -681,7 +681,7 @@ static void putSlab(SConnection *pCon, SicsInterp *pSics, pNXScript self, 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]); diff --git a/sicsdata.c b/sicsdata.c index bd01b91d..24253167 100644 --- a/sicsdata.c +++ b/sicsdata.c @@ -249,6 +249,7 @@ static int putFloat(pSICSData self, int argc, char *argv[], int status, pos, *iData = NULL; float fVal; double dVal; + char buffer[256]; assert(self); @@ -264,8 +265,9 @@ static int putFloat(pSICSData self, int argc, char *argv[], } status = Tcl_GetDouble(InterpGetTcl(pSics),argv[1],&dVal); if(status != TCL_OK){ - SCWrite(pCon,"ERROR: failed to convert putint value to float", - eError); + snprintf(buffer,255,"ERROR: faiuld to convert putfloat value %s to float", + argv[1]); + SCWrite(pCon,buffer,eError); return 0; } iData = getSICSDataPointer(self,pos,pos+1); diff --git a/sicsstat.tcl b/sicsstat.tcl index 5ce78d00..4dbf048e 100644 --- a/sicsstat.tcl +++ b/sicsstat.tcl @@ -1,19 +1,7 @@ exe batchpath ./ exe syspath ./ -# Motor brumm -brumm sign 1.0000 -brumm hardlowerlim -180.0000 -brumm hardupperlim 180.0000 -brumm softlowerlim -180.0000 -brumm softupperlim 180.0000 -brumm softzero 0.0000 -brumm fixed -1.0000 -brumm interruptmode 0.0000 -brumm precision 0.2000 -brumm accesscode 2.0000 -brumm failafter 3.0000 -brumm maxretry 3.0000 -brumm ignorefault 0.0000 -brumm movecount 10.0000 -brumm errortype 0.0000 -brumm recover 1.0000 +# Counter counter +counter SetPreset 3.000000 +counter SetMode Timer +hm CountMode timer +hm preset 3.000000