PSI update
r1464 | ffr | 2007-02-12 12:20:21 +1100 (Mon, 12 Feb 2007) | 2 lines
This commit is contained in:
committed by
Douglas Clowes
parent
634f2023b1
commit
3168325921
65
nxscript.c
65
nxscript.c
@@ -373,6 +373,31 @@ static void putSicsData(SConnection *pCon, SicsInterp *pSics,
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void putAttribute(SConnection *pCon, SicsInterp *pSics,
|
||||
pNXScript self, int argc, char *argv[]){
|
||||
int status, type = NX_CHAR;
|
||||
char buffer[256];
|
||||
|
||||
if(argc < 5){
|
||||
SCWrite(pCon,"ERROR: insufficient number of arguments to putAttribute",
|
||||
eError);
|
||||
return;
|
||||
}
|
||||
|
||||
status = NXDopenalias(self->fileHandle,self->dictHandle,argv[2]);
|
||||
if(status != NX_OK){
|
||||
sprintf(buffer,"ERROR: failed to open alias %s", argv[2]);
|
||||
SCWrite(pCon,buffer,eError);
|
||||
return;
|
||||
}
|
||||
status = NXputattr(self->fileHandle,argv[3],(void *)argv[4],
|
||||
strlen(argv[4])+1, type);
|
||||
if(status != NX_OK){
|
||||
sprintf(buffer,"ERROR: failed to write attribute %s", argv[3]);
|
||||
SCWrite(pCon,buffer,eError);
|
||||
}
|
||||
}
|
||||
/*----------------------------------------------------------------------*/
|
||||
static void updateHMDim(NXScript *self, pHistMem mem){
|
||||
int iDim[MAXDIM];
|
||||
int i, rank, timeLength, status;
|
||||
@@ -412,7 +437,7 @@ static void putHistogramMemory(SConnection *pCon, SicsInterp *pSics,
|
||||
pNXScript self,
|
||||
int argc, char *argv[]){
|
||||
pHistMem mem = NULL;
|
||||
int status, start, length, i, subset = 0;
|
||||
int status, start, length, i, subset = 0, bank = 0;
|
||||
HistInt *iData = NULL;
|
||||
char buffer[256];
|
||||
|
||||
@@ -460,6 +485,19 @@ static void putHistogramMemory(SConnection *pCon, SicsInterp *pSics,
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* check for additional bank number
|
||||
*/
|
||||
if(argc > 6){
|
||||
status = Tcl_GetInt(InterpGetTcl(pSics),argv[6],&bank);
|
||||
if(status != TCL_OK){
|
||||
sprintf(buffer,"ERROR: failed to convert %s to integer",
|
||||
argv[6]);
|
||||
SCWrite(pCon,buffer,eError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
read HM
|
||||
@@ -472,7 +510,7 @@ static void putHistogramMemory(SConnection *pCon, SicsInterp *pSics,
|
||||
return;
|
||||
}
|
||||
memset(iData,0,length*sizeof(HistInt));
|
||||
status = GetHistogramDirect(mem,pCon,0,start,start+length,iData,
|
||||
status = GetHistogramDirect(mem,pCon,bank,start,start+length,iData,
|
||||
length*sizeof(HistInt));
|
||||
}else{
|
||||
/*
|
||||
@@ -712,7 +750,10 @@ static void putArray(SConnection *pCon, SicsInterp *pSics,
|
||||
data = (float *)malloc(length*sizeof(float));
|
||||
}
|
||||
if(data == NULL){
|
||||
SCWrite(pCon,"ERROR: out of memory or invalid length",eError);
|
||||
snprintf(buffer,255,
|
||||
"ERROR: out of memory or invalid length at %s, length = %s",
|
||||
argv[2],argv[4]);
|
||||
SCWrite(pCon,buffer,eError);
|
||||
return;
|
||||
}
|
||||
memset(data,0,length*sizeof(float));
|
||||
@@ -980,6 +1021,9 @@ static int handlePut(SConnection *pCon, SicsInterp *pSics, pNXScript self,
|
||||
}else if(strcmp(argv[1],"putsicsdata") == 0){
|
||||
/*===============*/
|
||||
putSicsData(pCon,pSics,self,argc,argv);
|
||||
}else if(strcmp(argv[1],"putattribute") == 0){
|
||||
/*===============*/
|
||||
putAttribute(pCon,pSics,self,argc,argv);
|
||||
} else {
|
||||
SCWrite(pCon,"ERROR: put command not recognised",eError);
|
||||
}
|
||||
@@ -1032,6 +1076,7 @@ int NXScriptAction(SConnection *pCon, SicsInterp *pSics, void *pData,
|
||||
pNXScript self = (pNXScript)pData;
|
||||
char *pFile = NULL;
|
||||
int status;
|
||||
char buffer[132];
|
||||
|
||||
/*
|
||||
preliminary checks
|
||||
@@ -1095,6 +1140,20 @@ int NXScriptAction(SConnection *pCon, SicsInterp *pSics, void *pData,
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(strcmp(argv[1],"isalias") == 0) {
|
||||
if(argc < 3) {
|
||||
SCWrite(pCon,"ERROR: need alias to test",eError);
|
||||
return 1;
|
||||
}
|
||||
if(NXDget(self->dictHandle,argv[2],buffer,131) == NX_OK){
|
||||
snprintf(buffer,131,"%s = 1", argv[2]);
|
||||
} else {
|
||||
snprintf(buffer,131,"%s = 0", argv[2]);
|
||||
}
|
||||
SCWrite(pCon,buffer,eValue);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if(strcmp(argv[1],"makelink") == 0){
|
||||
makeLink(pCon,pSics,self,argc,argv);
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user