From 2efce1203da131aba81af72e6a5923d94b6e41be Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 11 Feb 2026 16:03:58 +0100 Subject: [PATCH] eiger.wip, mV in boolean --- .../bin/eigerDetectorServer_developer | Bin 448836 -> 449085 bytes .../slsDetectorFunctionList.c | 251 ++++++++++-------- .../slsDetectorFunctionList.h | 17 +- .../slsDetectorServer/include/AD9257.h | 5 +- .../include/slsDetectorServer_funcs.h | 3 +- .../slsDetectorServer/src/AD9257.c | 2 +- .../src/slsDetectorServer_funcs.c | 6 +- slsSupportLib/include/sls/versionAPI.h | 2 +- 8 files changed, 169 insertions(+), 117 deletions(-) diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer index 4efd2108fe5f5cd56ce3ba711e7ad48124d6be02..201e8e88d28baf8b7d6f5671a28943d0f86c15fb 100755 GIT binary patch delta 92965 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�#cB}P9p)y44#xmOx;7pheeNoxM!QN8Bw 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±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∓U3>9o(dI~<1MN)bd`Ag6GpPohXcU53$W`WDd z5!(&St6Tbd@*cN6fJ38n99XP6I$=QiUd5}5WnenKR$SW&n9cgI-2SW${5JkIt|Z|R zBrW_852Uw|d^!dU9Mkk8Bp1VlS~)BDBeqZkfl|geRC?YE^a#d3ko0XvkG(9Mp?Ez7 z7$pOzsjn2^p^xcFxSkva?&0-6Ba8G$TA+Z3RmMtet5uIV1R15I*Zaa{?4gW3Boit? z?_`AsNPAS}fX$D0#}0VN&Z!Ix!%xa4@#Dt&nLc257c1x`ZFT@E*aI1#k$fo|*tYl^ z%oEC`oP-(U;4j0>IcCW(3&y;l6c#YfK++~p@Go0S+O~EWSk3h7@To$OTL1TR1#WOl zTwvg=UiM4UE<6MUY``+a&nnz`26B6!L66TV#5XEKUcg<<@GH{KKM35y_%S?t3NT9c3wYB( z1NJb>J^}*+fNcYhVxl<&oW}D1B-x1$+KW~8f3YEGg@8S7b8xnMmL?SB1d-HN1NT@8 za`1LLZpRcJ$-yr6S=AsXZO&GbU)KZIF#mOU*;EbM_!l^|asoFn-TeT`<3p1eFj2hN z4qVR+oupr0If?!rZt|;PFpuM$PsuSmaUw)HDjc2yd6Zmy$`Vk75L8+Ea?!yv-5{`s z+_`f}FC2x!VP=R#k`;p?oAF{?-40H|*hKCK1RiDjHKbh&dHWbI*UD%xfR2)j5c>Jz zfrn}CW28OQ4P5S#cZ*zn3v`1Mr_-Fpxwtx1zaC_-Zn@Y*#z#z2@D<7Viau@`upICA zL%z|X7a@~24zmIAt%j^+L)mGsIZYW-jS4(Xl` zB{}BHKPK_qY8Z5o1*YmKIjK#16@wiR>lA)Tl}sZ-0^gw0lwpL6=L;l zn=rt&jpPFuWm+x2|GTO&^{SYcvjW^|H9>(rDqNU&u13XVn0i^DoMfiz0Z$w&ZX#_RLSj$VEAE1UD&}n9iidH& z-vc`5#EL_tt;hy$WPPua)?9)7Gi;0ACjG`vC^*XuA7Hf$08V549}+JNLIGJge>&a+ zKnB0(956qK^ffgI0rTfalOsAC_HYvB$AQ;VAdiy2jKt3d(SPkIE5yf=QuTndKED#b zr2>!O1jK6KXC#)x0C9-D$X>3s8CK3V4qe}l&=tmN7DFdBDSa=KW|BEo} z?4&8g9_`k0@F%iDe4{Gs;1PCV;S;2-flKYrObXjcRuqGuV_t~$emx94hX-*jr}S}B zuJp#dkpavdTsg-JXD|mls_!+{g?D`Vym7+2<5;KRo@#D8V#IZ{95HV3KJSJtl{?C} oR9)rDS>6%$2ji&LG4(y;&$8n`?;CC(^X3nYwH+rvG)lbw4~n8@3;+NC diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index 145538bd2..a9fe29aa6 100644 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -880,7 +880,7 @@ int resetToDefaultDacs(int hardReset, char *mess) { int ret = OK; LOG(logINFOBLUE, ("Setting Default Dac values\n")); for (int i = 0; i < NDAC; ++i) { - if (setDAC((enum DACINDEX)i, defaultDacValues[i], 0, mess) == FAIL) + if (setDAC((enum DACINDEX)i, defaultDacValues[i], false, mess) == FAIL) return FAIL; } return ret; @@ -1330,7 +1330,7 @@ int setModule(sls_detector_module myMod, char *mess) { // dacs for (int i = 0; i < NDAC; ++i) { - if (setDAC((enum DACINDEX)i, myMod.dacs[i], 0, mess) == FAIL) + if (setDAC((enum DACINDEX)i, myMod.dacs[i], false, mess) == FAIL) return FAIL; if (myMod.dacs[i] != (detectorModules)->dacs[i]) { sprintf(mess, "Could not set module. Could not set dac %d\n", i); @@ -1427,144 +1427,183 @@ int setThresholdEnergy(int ev) { } /* parameters - dac, adc, hv */ -int validateDAC(enum DACINDEX ind, int val, int mV, char *mess) { - char *dacNames[] = {DAC_NAMES}; - - // validate index (including E_VTHRESHOLD) +int validateDACIndex(enum DACINDEX ind, char *mess) { + // including E_VTHRESHOLD if (ind < 0 || ind >= NDAC + 1) { sprintf(mess, "Could not set DAC. Invalid index %d\n", ind); LOG(logERROR, (mess)); return FAIL; } - // validate min value - if (val < 0) { - sprintf(mess, - "Could not set DAC %s. Input value %d cannot be negative\n", - dacNames[ind], val); - LOG(logERROR, (mess)); - return FAIL; - } - // validate max value - if (mV && val > DAC_MAX_MV) { - sprintf(mess, - "Could not set DAC %s. Input value %d exceed maximum %d mV\n", - dacNames[ind], val, DAC_MAX_MV); - LOG(logERROR, (mess)); - return FAIL; - } else if (!mV && val > LTC2620_MAX_VAL) { - sprintf(mess, - "Could not set DAC %s. Input value %d exceed maximum %d \n", - dacNames[ind], val, LTC2620_MAX_VAL); - LOG(logERROR, (mess)); - return FAIL; - } return OK; } -// uses LTC2620 with 2.048V (implementation different to others not bit banging) -int setDAC(enum DACINDEX ind, int val, int mV, char *mess) { - if (validateDAC(ind, val, mV, mess) == FAIL) +int validateDACValue(enum DACINDEX ind, int dacval, char *mess) { + char *dacNames[] = {DAC_NAMES}; + if (dacval < 0) { + sprintf(mess, + "Could not set DAC %s. Input value %d cannot be negative\n", + dacNames[ind], dacval); + LOG(logERROR, (mess)); + return FAIL; + } + // validate max value + if (dacval > LTC2620_MAX_VAL) { + sprintf(mess, + "Could not set DAC %s. Input value %d exceed maximum %d \n", + dacNames[ind], dacval, LTC2620_MAX_VAL); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess) { + char *dacNames[] = {DAC_NAMES}; + // validate min value + if (voltage < 0) { + sprintf(mess, + "Could not set DAC %s. Input value %d cannot be negative\n", + dacNames[ind], voltage); + LOG(logERROR, (mess)); + return FAIL; + } + // validate max value + if (voltage > DAC_MAX_MV) { + sprintf(mess, + "Could not set DAC %s. Input value %d mV exceed maximum %d mV\n", dacNames[ind], voltage, DAC_MAX_MV); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess) { + char *dacNames[] = {DAC_NAMES}; + if (ConvertToDifferentRange(DAC_MIN_MV, DAC_MAX_MV, LTC2620_MIN_VAL, LTC2620_MAX_VAL, voltage, retval_dacval) == FAIL) { + sprintf( + mess, + "Could not set DAC %s. Could not convert %d mV to dac units.\n", dacNames[ind], voltage); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess) { + *retval_voltage = -1; + if (ConvertToDifferentRange(LTC2620_MIN_VAL, LTC2620_MAX_VAL, DAC_MIN_MV, + DAC_MAX_MV, dacval, retval_voltage) == FAIL) { + char *dacNames[] = {DAC_NAMES}; + sprintf(mess, + "Could not set DAC %s. Could not convert %d mV to dac units.\n", + dacNames[ind], dacval); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) { + if (ind == E_VTHRESHOLD) { + return getThresholdDACs(mV, retval, mess); + } + + if (validateDACIndex(ind, mess) == FAIL) return FAIL; + int dacval = (detectorModules)->dacs[ind]; + if (mV) { + if (convertDACValueToVoltage(ind, dacval, retval, mess) == FAIL) + return FAIL; + return OK; + } + + *retval = dacval; + return OK; +} + + +// uses LTC2620 with 2.048V (implementation different to others not bit banging) +int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) { char *dacNames[] = {DAC_NAMES}; LOG(logINFO, ("Setting DAC %s: %d %s \n", dacNames[ind], val, (mV ? "mV" : "dac units"))); if (ind == E_VTHRESHOLD) { - if (setDAC(E_VCMP_LL, val, mV, mess) == FAIL) - return FAIL; - if (setDAC(E_VCMP_LR, val, mV, mess) == FAIL) - return FAIL; - if (setDAC(E_VCMP_RL, val, mV, mess) == FAIL) - return FAIL; - if (setDAC(E_VCMP_RR, val, mV, mess) == FAIL) - return FAIL; - if (setDAC(E_VCP, val, mV, mess) == FAIL) - return FAIL; - return OK; + return setThresholdDACs(val, mV, mess); } - // mV: convert to dac value + if (validateDACIndex(ind, mess) == FAIL) + return FAIL; + int dacval = val; if (mV) { - if (ConvertToDifferentRange(DAC_MIN_MV, DAC_MAX_MV, LTC2620_MIN_VAL, - LTC2620_MAX_VAL, val, &dacval) == FAIL) { - sprintf( - mess, - "Could not set DAC %s. Could not convert %d mV to dac units.\n", - dacNames[ind], val); - LOG(logERROR, (mess)); + if (validateDACVoltage(ind, val, mess) == FAIL) + return FAIL; + + if (convertVoltageToDACValue(ind, val, &dacval, mess) == FAIL) return FAIL; - } } -#ifdef VIRTUAL - (detectorModules)->dacs[ind] = dacval; -#else - sharedMemory_lockLocalLink(); - if (Feb_Control_SetDAC(ind, dacval)) { - (detectorModules)->dacs[ind] = dacval; - } - sharedMemory_unlockLocalLink(); -#endif + if (writeDACSpi(ind, dacval, mess) == FAIL) + return FAIL; + return OK; } -int getDAC(enum DACINDEX ind, int mV, int *retval, char *mess) { - // validate index (including E_VTHRESHOLD) - if (ind < 0 || ind >= NDAC + 1) { - sprintf(mess, "Could not set DAC. Invalid index %d\n", ind); +int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { + if (validateDACValue(ind, dacval, mess) == FAIL) + return FAIL; + +#ifdef VIRTUAL + (detectorModules)->dacs[ind] = dacval; + return OK; +#else + sharedMemory_lockLocalLink(); + if (!Feb_Control_SetDAC(ind, dacval)) { + char *dacNames[] = {DAC_NAMES}; + sprintf(mess, "Could not set DAC %s. Trouble writing to register\n", dacNames[ind]); LOG(logERROR, (mess)); + sharedMemory_unlockLocalLink(); return FAIL; } + (detectorModules)->dacs[ind] = dacval; + sharedMemory_unlockLocalLink(); + return OK; +#endif +} - if (ind == E_VTHRESHOLD) { - int retvals[5] = {0}; - if (getDAC(E_VCMP_LL, mV, &retvals[0], mess) == FAIL) - return FAIL; - if (getDAC(E_VCMP_LR, mV, &retvals[1], mess) == FAIL) - return FAIL; - if (getDAC(E_VCMP_RL, mV, &retvals[2], mess) == FAIL) - return FAIL; - if (getDAC(E_VCMP_RR, mV, &retvals[3], mess) == FAIL) - return FAIL; - if (getDAC(E_VCP, mV, &retvals[4], mess) == FAIL) - return FAIL; - if ((retvals[0] != retvals[1]) || (retvals[1] != retvals[2]) || - (retvals[2] != retvals[3]) || (retvals[3] != retvals[4])) { - LOG(logWARNING, - ("Vthreshold mismatch. vcmp_ll:%d vcmp_lr:%d vcmp_rl:%d " - "vcmp_rr:%d vcp:%d\n", - retvals[0], retvals[1], retvals[2], retvals[3], retvals[4])); + + +int setThresholdDACs(int val, bool mV, char *mess) { + enum DACINDEX indices[5] = {E_VCMP_LL, E_VCMP_LR, E_VCMP_RL, E_VCMP_RR, E_VCP}; + for (int i = 1; i != 5; ++i) { + if (setDAC(indices[i], val, mV, mess) == FAIL) + return FAIL; + } + return OK; +} + +int getThresholdDACs(bool mV, int *retval, char *mess) { + enum DACINDEX indices[5] = {E_VCMP_LL, E_VCMP_LR, E_VCMP_RL, E_VCMP_RR, E_VCP}; + int retvals[5] = {0}; + if (getDAC(indices[0], mV, &retvals[0], mess) == FAIL) + return FAIL; + + bool allEqual = true; + for (int i = 1; i != 5; ++i) { + if (getDAC(indices[i], mV, &retvals[i], mess) == FAIL) + return FAIL; + if (retvals[i] != retvals[0]) { + char *dacNames[] = {DAC_NAMES}; + LOG(logWARNING, ("Vthreshold mismatch.%s:%d %s:%d\n", dacNames[indices[i]], retvals[i], dacNames[indices[0]], retvals[0])); *retval = -1; return OK; } - *retval = retvals[0]; - LOG(logINFO, ("\tvthreshold match %d\n", *retval)); - return OK; } - - char *dacNames[] = {DAC_NAMES}; - if (!mV) { - LOG(logDEBUG1, ("Getting DAC %s : %d dac\n", dacNames[ind], - (detectorModules)->dacs[ind])); - *retval = (detectorModules)->dacs[ind]; - return OK; - } - // convert to mV - *retval = -1; - if (ConvertToDifferentRange(LTC2620_MIN_VAL, LTC2620_MAX_VAL, DAC_MIN_MV, - DAC_MAX_MV, (detectorModules)->dacs[ind], - retval) == FAIL) { - sprintf(mess, - "Could not set DAC %s. Could not convert %d mV to dac units.\n", - dacNames[ind], (detectorModules)->dacs[ind]); - LOG(logERROR, (mess)); - return FAIL; - } - LOG(logDEBUG1, ("Getting DAC %s : %d dac (%d mV)\n", dacNames[ind], - (detectorModules)->dacs[ind], *retval)); + *retval = retvals[0]; + LOG(logINFO, ("\tvthreshold match %d\n", *retval)); return OK; } diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.h index 9abcf6aa2..8f6b851ce 100644 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.h @@ -6,6 +6,7 @@ #include // FILE #include #include +#include /**************************************************** This functions are used by the slsDetectroServer_funcs interface. @@ -123,9 +124,19 @@ int getThresholdEnergy(); int setThresholdEnergy(int ev); // parameters - dac, adc, hv -int validateDAC(enum DACINDEX ind, int val, int mV, char *mess); -int setDAC(enum DACINDEX ind, int val, int mV, char *mess); -int getDAC(enum DACINDEX ind, int mV, int *retval, char *mess); +int validateDACIndex(enum DACINDEX ind, char *mess); +int validateDACValue(enum DACINDEX ind, int dacval, char *mess); +int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess); +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess); +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess); +int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess); +/** @param val value can be in mV or dac units */ +int setDAC(enum DACINDEX ind, int val, bool mV, char *mess); +/** @param dacval in dac units */ +int writeDACSpi(enum DACINDEX ind, int dacval, char *mess); + +int setThresholdDACs(int val, bool mV, char *mess); +int getThresholdDACs(bool mV, int *retval, char *mess); int getADC(enum ADCINDEX ind); int setHighVoltage(int val, char *mess); diff --git a/slsDetectorServers/slsDetectorServer/include/AD9257.h b/slsDetectorServers/slsDetectorServer/include/AD9257.h index d0d282c92..c7e643fb1 100644 --- a/slsDetectorServers/slsDetectorServer/include/AD9257.h +++ b/slsDetectorServers/slsDetectorServer/include/AD9257.h @@ -3,6 +3,7 @@ #pragma once #include +#include #ifdef JUNGFRAUD void AD9257_Set_Jungfrau_Hardware_Version_1_0(int val); @@ -27,7 +28,7 @@ void AD9257_Disable(); /** * Get vref voltage */ -int AD9257_GetVrefVoltage(int mV); +int AD9257_GetVrefVoltage(bool mV); /** * Set vref voltage @@ -35,7 +36,7 @@ int AD9257_GetVrefVoltage(int mV); * for 1.6V, 4 for 2.0V * @returns ok or fail */ -int AD9257_SetVrefVoltage(int val, int mV); +int AD9257_SetVrefVoltage(int val, bool mV); /** * Set SPI reg value diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h index e43148b83..cb7242298 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h @@ -4,6 +4,7 @@ #include "clogger.h" #include "common.h" #include "sls/sls_detector_defs.h" +#include #define GOODBYE (-200) #define REBOOT (-400) @@ -39,7 +40,7 @@ int set_bus_test(int); int set_image_test_mode(int); int get_image_test_mode(int); enum DACINDEX getDACIndex(enum dacIndex ind); -int validateAndSetDac(enum dacIndex ind, int val, int mV); +int validateAndSetDac(enum dacIndex ind, int val, bool mV); int set_dac(int); int get_adc(int); int write_register(int); diff --git a/slsDetectorServers/slsDetectorServer/src/AD9257.c b/slsDetectorServers/slsDetectorServer/src/AD9257.c index 568d2f8d8..ddc4dac38 100644 --- a/slsDetectorServers/slsDetectorServer/src/AD9257.c +++ b/slsDetectorServers/slsDetectorServer/src/AD9257.c @@ -195,7 +195,7 @@ void AD9257_Disable() { } int AD9257_GetVrefVoltage(int mV) { - if (mV == 0) + if (!mV) return AD9257_VrefVoltage; switch (AD9257_VrefVoltage) { case 0: diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index d4c9968c3..879269170 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -1159,7 +1159,7 @@ enum DACINDEX getDACIndex(enum dacIndex ind) { return serverDacIndex; } -int validateAndSetDac(enum dacIndex ind, int val, int mV) { +int validateAndSetDac(enum dacIndex ind, int val, bool mV) { int retval = -1; enum DACINDEX serverDacIndex = 0; @@ -1305,7 +1305,7 @@ int set_dac(int file_des) { return printSocketReadError(); enum dacIndex ind = args[0]; - int mV = args[1]; + bool mV = (args[1] != 0); int val = args[2]; LOG(logDEBUG1, @@ -1944,7 +1944,7 @@ void *start_state_machine(void *arg) { else { LOG(logINFOBLUE, ("Dac [%d] scan %d/%d: [%d]\n", scanGlobalIndex, i, times, scanSteps[i])); - validateAndSetDac(scanGlobalIndex, scanSteps[i], 0); + validateAndSetDac(scanGlobalIndex, scanSteps[i], false); if (ret == FAIL) { sprintf(scanErrMessage, "Cannot scan dac %d at %d. ", scanGlobalIndex, scanSteps[i]); diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 5bb7f1617..c93eb7b1d 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -6,7 +6,7 @@ #define APICTB "0.0.0 0x260210" #define APIGOTTHARD2 "0.0.0 0x260210" #define APIMOENCH "0.0.0 0x260210" -#define APIEIGER "0.0.0 0x260210" +#define APIEIGER "0.0.0 0x260211" #define APIXILINXCTB "0.0.0 0x260210" #define APIJUNGFRAU "0.0.0 0x260210" #define APIMYTHEN3 "0.0.0 0x260210"