- Fixed a normalisation problem in diffscan when the first value
did not have enough counts - Reduced polling frequency in emon - Fixed a scriptcontext bug which would cause it to dump core in SctTransact on interrupts - Fixed an issue with missing <nl> at the end of batch files - Added a feature which does not call halt when counting stops in hmcontrol.c This is necessary for the BOA CCD - Initalized doNotFree properly in hipadaba.c - Added the travelling salesman reflection measurement algorithm - Added another component to amorset - Removed old SicsWait from nserver.c - Added a means to nxscript to write 16 bit data for BOA - Modified tasub to accept a drivabel as a motor and not only a motor. This became necessary to make EIGER work as A2 on EIGER is a virtual motor SKIPPED: psi/amorcomp.h psi/amordrive.h psi/amorset.c psi/amorset.h psi/amorset.tex psi/amorset.w psi/el734hp.c psi/el737hpdriv.c psi/make_gen psi/pardef.c psi/polterwrite.c psi/psi.c psi/sinqhttpopt.c
This commit is contained in:
@@ -2324,12 +2324,9 @@ static int SetHdbNode(SConnection * pCon, SicsInterp * pSics, void *pData,
|
||||
pHdb targetNode = NULL;
|
||||
hdbValue newValue;
|
||||
pDynString parData = NULL;
|
||||
char error[512];
|
||||
int i, status;
|
||||
char error[512], value[132];
|
||||
int i, status, priv;
|
||||
|
||||
if (!SCMatchRights(pCon, usUser)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (argc < 3) {
|
||||
SCWrite(pCon, "ERROR: insufficient number of arguments to SetHdbNode",
|
||||
@@ -2342,6 +2339,17 @@ static int SetHdbNode(SConnection * pCon, SicsInterp * pSics, void *pData,
|
||||
if (targetNode == NULL) {
|
||||
return 0;
|
||||
}
|
||||
status = GetHdbProperty(targetNode,"priv",value,sizeof(value));
|
||||
if(status == 1){
|
||||
priv = decodeSICSPriv(value);
|
||||
} else {
|
||||
priv = usUser;
|
||||
}
|
||||
if (!SCMatchRights(pCon, priv)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
if (!cloneHdbValue(&targetNode->value, &newValue)) {
|
||||
SCWrite(pCon, "ERROR: out of memory cloning node", eError);
|
||||
return 0;
|
||||
@@ -2439,6 +2447,9 @@ static int ZipGetHdbNode(SConnection * pCon, SicsInterp * pSics,
|
||||
char error[512], oriPath[512];
|
||||
int status;
|
||||
hdbValue newValue;
|
||||
pDynString parData = NULL, result= NULL;
|
||||
Protocol protocol = normal_protocol;
|
||||
OutCode outCode;
|
||||
|
||||
if (argc < 2) {
|
||||
SCWrite(pCon, "ERROR: need path to node", eError);
|
||||
@@ -2452,7 +2463,26 @@ static int ZipGetHdbNode(SConnection * pCon, SicsInterp * pSics,
|
||||
}
|
||||
memset(&newValue, 0, sizeof(hdbValue));
|
||||
GetHipadabaPar(targetNode, &newValue, pCon);
|
||||
status = sendZippedNodeData(targetNode, newValue, pCon);
|
||||
if(newValue.dataType == HIPTEXT){
|
||||
parData = formatValue(newValue, targetNode);
|
||||
if (parData == NULL) {
|
||||
SCWrite(pCon, "ERROR: out of memory formatting data", eError);
|
||||
return 0;
|
||||
}
|
||||
if ((protocol = isJSON(pCon)) == 1)
|
||||
outCode = eHdbEvent;
|
||||
else
|
||||
outCode = eValue;
|
||||
|
||||
result = CreateDynString(128, 128);
|
||||
formatNameValue(protocol, oriPath, GetCharArray(parData), result,
|
||||
newValue.dataType);
|
||||
SCWrite(pCon, GetCharArray(result), outCode);
|
||||
DeleteDynString(parData);
|
||||
DeleteDynString(result);
|
||||
} else {
|
||||
status = sendZippedNodeData(targetNode, newValue, pCon);
|
||||
}
|
||||
ReleaseHdbValue(&newValue);
|
||||
return status;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user