Multiple bug fixes
- Arrayutil was not summing correctly - Added interest to motorsec in order to support old status clients - core dump because of bad free in devser - fixed transferring of count time in multicounter - added stack debugging to sllinux_def - Modifications to tasdrive to wait for finish of monochromator properly
This commit is contained in:
37
countersec.c
37
countersec.c
@ -9,6 +9,7 @@
|
||||
*
|
||||
* Mark Koennecke, February 2009
|
||||
*/
|
||||
#include <math.h>
|
||||
#include <time.h>
|
||||
#include <sics.h>
|
||||
#include <counter.h>
|
||||
@ -507,6 +508,41 @@ static int InterestCmd(pSICSOBJ ccmd, SConnection * con,
|
||||
|
||||
}
|
||||
/*--------------------------------------------------------------------------*/
|
||||
static int CountStatusCmd(pSICSOBJ ccmd, SConnection * con,
|
||||
Hdb * cmdNode, Hdb * par[], int nPar)
|
||||
{
|
||||
float preset, done;
|
||||
int exponent;
|
||||
pHdb node, data;
|
||||
|
||||
node = GetHipadabaNode(ccmd->objectNode,"preset");
|
||||
assert(node != NULL);
|
||||
preset = node->value.v.doubleValue;
|
||||
|
||||
node = GetHipadabaNode(ccmd->objectNode,"mode");
|
||||
assert(node != NULL);
|
||||
strtolower(node->value.v.text);
|
||||
if(strcmp(node->value.v.text,"timer") == 0) {
|
||||
data = GetHipadabaNode(ccmd->objectNode,"time");
|
||||
assert(data != NULL);
|
||||
done = data->value.v.doubleValue;
|
||||
} else {
|
||||
data = GetHipadabaNode(ccmd->objectNode,"values");
|
||||
assert(data != NULL);
|
||||
done = data->value.v.intArray[0];
|
||||
data = GetHipadabaNode(ccmd->objectNode,"exponent");
|
||||
assert(data != NULL);
|
||||
exponent = data->value.v.intValue;
|
||||
if(exponent != 0){
|
||||
done /= pow(10,exponent);
|
||||
}
|
||||
}
|
||||
SCPrintf(con,eValue,"%s.CountStatus = %f %f",
|
||||
ccmd->objectNode->name, preset, done);
|
||||
|
||||
return 1;
|
||||
}
|
||||
/*--------------------------------------------------------------------------*/
|
||||
pCounter CreateSecCounter(SConnection *pCon, char *type, char *name, int length)
|
||||
{
|
||||
pCounter pRes = NULL;
|
||||
@ -634,6 +670,7 @@ pCounter CreateSecCounter(SConnection *pCon, char *type, char *name, int length)
|
||||
child = AddSICSHdbPar(node,"pause", usUser, MakeSICSFunc(PauseCmd));
|
||||
child = AddSICSHdbPar(node,"continue", usUser, MakeSICSFunc(ContinueCmd));
|
||||
child = AddSICSHdbPar(node,"interest", usUser, MakeSICSFunc(InterestCmd));
|
||||
child = AddSICSHdbPar(node,"countstatus", usUser, MakeSICSFunc(CountStatusCmd));
|
||||
|
||||
return pRes;
|
||||
}
|
||||
|
Reference in New Issue
Block a user