diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 36d820ebb..1bb6afa20 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -1112,6 +1112,7 @@ int setModule(sls_detector_module myMod, char *mess) { } int setTrimbits(int *trimbits) { + LOG(logINFOBLUE, ("Setting trimbits\n")); // remember previous run clock uint32_t prevRunClk = clkDivider[SYSTEM_C0]; patternParameters *pat = NULL; @@ -1128,7 +1129,7 @@ int setTrimbits(int *trimbits) { pat = setChannelRegisterChip(ichip, channelMask, trimbits); // change here!!! if (pat) { - error |= loadPattern(pat); + error |= loadPattern(logDEBUG5, pat); if (error == 0) startPattern(); free(pat); @@ -2645,7 +2646,7 @@ int setChipStatusRegister(int csr) { pat = setChipStatusRegisterPattern(csr); if (pat) { - error |= loadPattern(pat); + error |= loadPattern(logDEBUG5, pat); if (!error) startPattern(); free(pat); diff --git a/slsDetectorServers/slsDetectorServer/include/loadPattern.h b/slsDetectorServers/slsDetectorServer/include/loadPattern.h index 261c0f148..aa81d9a49 100644 --- a/slsDetectorServers/slsDetectorServer/include/loadPattern.h +++ b/slsDetectorServers/slsDetectorServer/include/loadPattern.h @@ -1,6 +1,7 @@ #ifndef LOADPATTERN_H #define LOADPATTERN_H #include "Pattern.h" +#include "clogger.h" -int loadPattern(patternParameters *pat); +int loadPattern(enum TLogLevel printLevel, patternParameters *pat); #endif diff --git a/slsDetectorServers/slsDetectorServer/src/loadPattern.c b/slsDetectorServers/slsDetectorServer/src/loadPattern.c index 77de0e686..f26a92570 100644 --- a/slsDetectorServers/slsDetectorServer/src/loadPattern.c +++ b/slsDetectorServers/slsDetectorServer/src/loadPattern.c @@ -1,7 +1,7 @@ -#include "readDefaultPattern.h" #include "loadPattern.h" #include "clogger.h" #include "common.h" +#include "readDefaultPattern.h" #include "sls/ansi.h" #include "sls/sls_detector_defs.h" #include "slsDetectorServer_defs.h" @@ -14,6 +14,7 @@ #include extern char initErrorMessage[MAX_STR_LENGTH]; +extern enum TLogLevel trimmingPrint; #ifndef MYTHEN3D extern uint64_t writePatternIOControl(uint64_t word); @@ -24,82 +25,83 @@ extern uint64_t setPatternWaitTime(int level, uint64_t t); extern void setPatternLoop(int level, int *startAddr, int *stopAddr, int *nLoop); -int loadPattern(patternParameters *pat) { +int loadPattern(enum TLogLevel printLevel, patternParameters *pat) { + LOG(logINFOBLUE, ("Loading Pattern\n")); + int ret = OK; + trimmingPrint = printLevel; - int ret=OK; - - for (int i = 0; i < MAX_PATTERN_LENGTH; ++i) { - if ((i % 10 == 0) && pat->word[i] != 0) { - LOG(logINFO, ("Setting Pattern Word (addr:0x%x, word:0x%llx)\n", - i, (long long int)pat->word[i])); - } - writePatternWord(i, pat->word[i]); - } -#ifndef MYTHEN3D - if (ret == OK) { - uint64_t retval64 = writePatternIOControl(pat->ioctrl); - //validate64(pat->ioctrl, retval64, "set pattern IO Control", HEX); - } -#endif - if (ret == OK) { - int numLoops = -1; - int retval0 = pat->limits[0]; - int retval1 = pat->limits[1]; - setPatternLoop(-1, &retval0, &retval1, &numLoops); - //validate(pat->limits[0], retval0, - // "set pattern Limits start address", HEX); - //validate(pat->limits[1], retval1, - // "set pattern Limits start address", HEX); + for (int i = 0; i < MAX_PATTERN_LENGTH; ++i) { + if ((i % 10 == 0) && pat->word[i] != 0) { + LOG(logDEBUG5, ("Setting Pattern Word (addr:0x%x, word:0x%llx)\n", + i, (long long int)pat->word[i])); } - uint64_t retval64; - if (ret == OK) { - for (int i = 0; i <= 2; ++i) { - char msg[128]; - int retval0 = -1, retval1 = -1, numLoops = -1; + writePatternWord(i, pat->word[i]); + } +#ifndef MYTHEN3D + if (ret == OK) { + uint64_t retval64 = writePatternIOControl(pat->ioctrl); + // validate64(pat->ioctrl, retval64, "set pattern IO Control", HEX); + } +#endif + if (ret == OK) { + int numLoops = -1; + int retval0 = pat->limits[0]; + int retval1 = pat->limits[1]; + setPatternLoop(-1, &retval0, &retval1, &numLoops); + // validate(pat->limits[0], retval0, + // "set pattern Limits start address", HEX); + // validate(pat->limits[1], retval1, + // "set pattern Limits start address", HEX); + } + uint64_t retval64; + if (ret == OK) { + for (int i = 0; i <= 2; ++i) { + char msg[128]; + int retval0 = -1, retval1 = -1, numLoops = -1; - // patloop - retval0 = pat->loop[i * 2 + 0]; - retval1 = pat->loop[i * 2 + 1]; - numLoops = pat->nloop[i]; - setPatternLoop(i, &retval0, &retval1, &numLoops); - memset(msg, 0, sizeof(msg)); - sprintf(msg, "set pattern Loop %d start address", i); - //validate(pat->loop[i * 2 + 0], retval0, msg, HEX); - if (ret == FAIL) { - break; - } - memset(msg, 0, sizeof(msg)); - sprintf(msg, "set pattern Loop %d stop address", i); - //validate(pat->loop[i * 2 + 1], retval1, msg, HEX); - if (ret == FAIL) { - break; - } - memset(msg, 0, sizeof(msg)); - sprintf(msg, "set pattern Loop %d num loops", i); - //validate(pat->nloop[i], numLoops, msg, HEX); - if (ret == FAIL) { - break; - } - // patwait - memset(msg, 0, sizeof(msg)); - sprintf(msg, "set pattern Loop %d wait address", i); - retval0 = setPatternWaitAddress(i, pat->wait[i]); - //validate(pat->wait[i], retval0, msg, HEX); - if (ret == FAIL) { - break; - } + // patloop + retval0 = pat->loop[i * 2 + 0]; + retval1 = pat->loop[i * 2 + 1]; + numLoops = pat->nloop[i]; + setPatternLoop(i, &retval0, &retval1, &numLoops); + memset(msg, 0, sizeof(msg)); + sprintf(msg, "set pattern Loop %d start address", i); + // validate(pat->loop[i * 2 + 0], retval0, msg, HEX); + if (ret == FAIL) { + break; + } + memset(msg, 0, sizeof(msg)); + sprintf(msg, "set pattern Loop %d stop address", i); + // validate(pat->loop[i * 2 + 1], retval1, msg, HEX); + if (ret == FAIL) { + break; + } + memset(msg, 0, sizeof(msg)); + sprintf(msg, "set pattern Loop %d num loops", i); + // validate(pat->nloop[i], numLoops, msg, HEX); + if (ret == FAIL) { + break; + } + // patwait + memset(msg, 0, sizeof(msg)); + sprintf(msg, "set pattern Loop %d wait address", i); + retval0 = setPatternWaitAddress(i, pat->wait[i]); + // validate(pat->wait[i], retval0, msg, HEX); + if (ret == FAIL) { + break; + } - // patwaittime - memset(msg, 0, sizeof(msg)); - sprintf(msg, "set pattern Loop %d wait time", i); - retval64 = setPatternWaitTime(i, pat->waittime[i]); - //validate64(pat->waittime[i], retval64, msg, HEX); - if (retval64 == FAIL) { - break; - } - } - } - return ret; + // patwaittime + memset(msg, 0, sizeof(msg)); + sprintf(msg, "set pattern Loop %d wait time", i); + retval64 = setPatternWaitTime(i, pat->waittime[i]); + // validate64(pat->waittime[i], retval64, msg, HEX); + if (retval64 == FAIL) { + break; + } + } + } + trimmingPrint = logINFO; + + return ret; } - -