ctb client and server bug fix: dac didnt compute indices correctly and set dac was not printing in server

This commit is contained in:
2019-06-04 18:11:31 +02:00
parent 3aea917175
commit a6144f658e
4 changed files with 14 additions and 13 deletions

View File

@ -3878,13 +3878,16 @@ std::string slsDetectorCommand::cmdDAC(int narg, const char * const args[], int
int val = -1;
char answer[1000];
int mode = 0;
int iarg = 1;
if (cmd == "dac") {
int idac = -1;
if (sscanf(args[1], "%d", &idac) != 1) {
return std::string("Could not scan dac index") + std::string(args[1]);
if (sscanf(args[iarg], "%d", &idac) != 1) {
return std::string("Could not scan dac index") + std::string(args[iarg]);
}
dac = (dacIndex)idac;
++iarg;
--narg;
}
else if (cmd == "adcvpp")
dac = ADC_VPP;
@ -4017,22 +4020,22 @@ std::string slsDetectorCommand::cmdDAC(int narg, const char * const args[], int
if (action == PUT_ACTION) {
if (narg >= 3)
if (!strcasecmp(args[2], "mv"))
mode = 1;
if (sscanf(args[1], "%d", &val))
if (sscanf(args[iarg], "%d", &val))
;
else
return std::string("cannot scan DAC value ") + std::string(args[1]);
return std::string("cannot scan DAC value ") + std::string(args[iarg]);
++iarg;
if ((narg >= 3) && (!strcasecmp(args[iarg], "mv")))
mode = 1;
myDet->setDAC(val, dac, mode, detPos);
}
// get (dacs in dac units or mV)
else if ((narg >= 2) && (!strcasecmp(args[1], "mv"))) {
else if ((narg >= 2) && (!strcasecmp(args[iarg], "mv"))) {
mode = 1;
}
sprintf(answer, "%d", myDet->setDAC(-1, dac, mode, detPos));
if (mode)
strcat(answer, " mV");