diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer index 431f88bc9..b70ab78ae 100755 Binary files a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer and b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer differ diff --git a/slsDetectorServers/slsDetectorServer/include/LTC2620_Driver.h b/slsDetectorServers/slsDetectorServer/include/LTC2620_Driver.h index 1a5c07e8a..34435c9bb 100644 --- a/slsDetectorServers/slsDetectorServer/include/LTC2620_Driver.h +++ b/slsDetectorServers/slsDetectorServer/include/LTC2620_Driver.h @@ -31,7 +31,8 @@ int LTC2620_D_DacToVoltage(int dacval, int *voltage); int LTC2620_D_WriteDACValue(int dacnum, int dacvalue, char *dacname); /** - * Set value for dac only + * Only for DACs (not power regulators) to validate indices and convert values + * to dac units if needed * @param dacval if val is in mV, returns dac units set */ int LTC2620_D_SetDACValue(int dacnum, int val, int mV, char *dacname, diff --git a/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c b/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c index 3da1acd66..8add1b10a 100644 --- a/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c +++ b/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c @@ -4,7 +4,7 @@ #include "clogger.h" #include "common.h" -// to include power down file name suffix +// to include power down file name suffix directly #ifdef XILINX_CHIPTESTBOARDD #include "slsDetectorServer_defs.h" #else @@ -70,13 +70,24 @@ int LTC2620_D_WriteDACValue(int dacnum, int dacvalue, char *dacname) { return FAIL; } - // validate value - if ((dacvalue < 0 && dacvalue != LTC2620_D_PWR_DOWN_VAL) || - (dacvalue > LTC2620_D_MAX_DAC_VAL)) { + // validate max value + if (dacvalue > LTC2620_D_MAX_DAC_VAL) { LOG(logERROR, ("Dac %d %s: Invalid dac value %d\n", dacnum, dacname, dacvalue)); return FAIL; } + // validate negative values + if (dacvalue < 0) { + // dacs only: allow power down value (-100) + if ((dacnum < LTC2620_D_NumDacsOnly && + dacvalue != LTC2620_D_PWR_DOWN_VAL) || + // power regulators: allow no negative values + (dacnum >= LTC2620_D_NumDacsOnly)) { + LOG(logERROR, ("Dac %d %s: Invalid dac value %d\n", dacnum, dacname, + dacvalue)); + return FAIL; + } + } // print info if (dacvalue == LTC2620_D_PWR_DOWN_VAL) { diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer index 05dd2a06b..61d8da984 100755 Binary files a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer and b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer differ diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 71ed7af12..3e230eece 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -4,7 +4,7 @@ #define APILIB "0.0.0 0x250909" #define APIRECEIVER "0.0.0 0x250822" #define APICTB "0.0.0 0x250922" -#define APIGOTTHARD2 "0.0.0 0x260113" +#define APIGOTTHARD2 "0.0.0 0x260114" #define APIMOENCH "0.0.0 0x250909" #define APIEIGER "0.0.0 0x250909" #define APIXILINXCTB "0.0.0 0x260114"