Cleaned up ANSTO code to merge with sinqdev.sics

This is our new RELEASE-4_0 branch which was taken from ansto/93d9a7c
Conflicts:
	.gitignore
	SICSmain.c
	asynnet.c
	confvirtualmot.c
	counter.c
	devexec.c
	drive.c
	event.h
	exebuf.c
	exeman.c
	histmem.c
	interface.h
	motor.c
	motorlist.c
	motorsec.c
	multicounter.c
	napi.c
	napi.h
	napi4.c
	network.c
	nwatch.c
	nxscript.c
	nxxml.c
	nxxml.h
	ofac.c
	reflist.c
	scan.c
	sicshipadaba.c
	sicsobj.c
	site_ansto/docs/Copyright.txt
	site_ansto/instrument/lyrebird/config/tasmad/sicscommon/nxsupport.tcl
	site_ansto/instrument/lyrebird/config/tasmad/taspub_sics/tasscript.tcl
	statusfile.c
	tasdrive.c
	tasub.c
	tasub.h
	tasublib.c
	tasublib.h
This commit is contained in:
Ferdi Franceschini
2015-04-23 20:49:26 +10:00
parent c650788a2c
commit 10d29d597c
1336 changed files with 9430 additions and 226646 deletions

View File

@@ -30,23 +30,23 @@
#include "sicsdata.h"
#include "HistMem.i"
#define PRIVNAM "privilege"
#define PRIVNAM "priv"
/*==================== support code ====================================*/
static void AddPrivProperty(pHdb node, int priv)
{
char pPriv[80];
switch (priv) {
case usInternal:
strcpy(pPriv, "READ_ONLY");
strcpy(pPriv, "internal");
break;
case usMugger:
strcpy(pPriv, "MANAGER");
strcpy(pPriv, "manager");
break;
case usUser:
strcpy(pPriv, "USER");
strcpy(pPriv, "user");
break;
case usSpy:
strcpy(pPriv, "SPY");
strcpy(pPriv, "spy");
break;
default:
assert(0);
@@ -315,7 +315,7 @@ static pHdb CreateMotorAdapter(char *name, pMotor pMot)
DeleteHipadabaNode(result, NULL);
return NULL;
}
result->protected = 1;
result->iprotected = 1;
return result;
}
@@ -468,7 +468,7 @@ static pHdb MakeSicsVarNode(pSicsVariable pVar, char *name)
pHdbCallback pCall = NULL;
commandContext comCom;
int type;
hdbValue v;
char command[1024];
switch (pVar->eType) {
case veInt:
@@ -496,20 +496,10 @@ static pHdb MakeSicsVarNode(pSicsVariable pVar, char *name)
}
AppendHipadabaCallback(node, pCall);
RegisterCallback(pVar->pCall, VALUECHANGE, ValueCallback, node, NULL);
switch (pVar->eType) {
case veInt:
v = MakeHdbInt(pVar->iVal);
break;
case veFloat:
v = MakeHdbFloat((double) pVar->fVal);
break;
case veText:
v = MakeHdbText(pVar->text);
break;
}
UpdateHipadabaPar(node, v, NULL);
snprintf(command, 1023, "%s ", pVar->name);
SetHdbProperty(node, "sicscommand", command);
node->protected = 1;
node->iprotected = 1;
return node;
}
@@ -920,10 +910,13 @@ int HdbSubSample(SConnection * pCon, SicsInterp * pSics, void *pData,
{
pHistMem pHM = NULL;
pHdb node = NULL;
int bank = 0, length = -1, status;
int bank = 0, length = -1, status, i;
HistInt *data = NULL;
char *pPtr = NULL;
char error[132];
hdbValue v;
HMdata hdata;
pHdb hmnode = NULL;
if (argc < 4) {
SCWrite(pCon,
@@ -938,23 +931,61 @@ int HdbSubSample(SConnection * pCon, SicsInterp * pSics, void *pData,
pPtr++;
sscanf(pPtr, "%d", &bank);
}
pHM = (pHistMem) FindCommandData(pSics, argv[1], "HistMem");
node = FindHdbNode(NULL, argv[2], pCon);
if (pHM == NULL || node == NULL) {
SCWrite(pCon, "ERROR: either histogram memory or node not found!",
eError);
if (node == NULL) {
SCWrite(pCon, "ERROR: node not found!",
eError);
return 0;
}
if (pHM->pDriv->SubSample == NULL) {
SCWrite(pCon, "ERROR: hm does not support subsampling", eError);
return 0;
}
data = pHM->pDriv->SubSample(pHM->pDriv, pCon, bank, argv[3]);
if (data == NULL) {
SCWrite(pCon, "ERROR: sub sampling failed", eError);
/*
old HM
*/
pHM = (pHistMem) FindCommandData(pSics, argv[1], "HistMem");
if(pHM != NULL){
if (pHM->pDriv->SubSample == NULL) {
SCWrite(pCon, "ERROR: hm does not support subsampling", eError);
return 0;
}
data = pHM->pDriv->SubSample(pHM->pDriv, pCon, bank, argv[3]);
if (data == NULL) {
SCWrite(pCon, "ERROR: sub sampling failed", eError);
return 0;
}
}
/*
new HM
*/
pHM = (pHistMem) FindCommandData(pSics, argv[1], "HistMemSec");
if(pHM != NULL){
memset(&hdata,0,sizeof(HMdata));
hmnode = GetHipadabaNode(pHM->pDes->parNode,"dim");
if(hmnode == NULL){
SCWrite(pCon,"ERROR: dim node not found",eError);
return 0;
}
hdata.rank = hmnode->value.arrayLength;
for(i = 0; i < hdata.rank; i++){
hdata.iDim[i] = hmnode->value.v.intArray[i];
}
hmnode = GetHipadabaNode(pHM->pDes->parNode,"data");
if(hmnode == NULL){
SCWrite(pCon,"ERROR: data node not found",eError);
return 0;
}
hdata.localBuffer = hmnode->value.v.intArray;
data = subSample(&hdata, argv[3], error, sizeof(error));
if(data == NULL){
SCPrintf(pCon,eError,"ERROR: %s while processing %s with %s",
error, argv[1], argv[3]);
return 0;
}
} else {
SCPrintf(pCon,eError,"ERROR: hm %s not found", argv[1]);
return 0;
}
v.dataType = HIPINTVARAR;
v.arrayLength = data[0];