mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-28 09:10:01 +02:00
all loading pattern so far takes in logDEBUG5 print level as it is at detector start up. commands to call loadpattern can call logINFO level
This commit is contained in:
parent
89898beced
commit
3079e41c3b
@ -1112,6 +1112,7 @@ int setModule(sls_detector_module myMod, char *mess) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int setTrimbits(int *trimbits) {
|
int setTrimbits(int *trimbits) {
|
||||||
|
LOG(logINFOBLUE, ("Setting trimbits\n"));
|
||||||
// remember previous run clock
|
// remember previous run clock
|
||||||
uint32_t prevRunClk = clkDivider[SYSTEM_C0];
|
uint32_t prevRunClk = clkDivider[SYSTEM_C0];
|
||||||
patternParameters *pat = NULL;
|
patternParameters *pat = NULL;
|
||||||
@ -1128,7 +1129,7 @@ int setTrimbits(int *trimbits) {
|
|||||||
pat = setChannelRegisterChip(ichip, channelMask,
|
pat = setChannelRegisterChip(ichip, channelMask,
|
||||||
trimbits); // change here!!!
|
trimbits); // change here!!!
|
||||||
if (pat) {
|
if (pat) {
|
||||||
error |= loadPattern(pat);
|
error |= loadPattern(logDEBUG5, pat);
|
||||||
if (error == 0)
|
if (error == 0)
|
||||||
startPattern();
|
startPattern();
|
||||||
free(pat);
|
free(pat);
|
||||||
@ -2645,7 +2646,7 @@ int setChipStatusRegister(int csr) {
|
|||||||
pat = setChipStatusRegisterPattern(csr);
|
pat = setChipStatusRegisterPattern(csr);
|
||||||
|
|
||||||
if (pat) {
|
if (pat) {
|
||||||
error |= loadPattern(pat);
|
error |= loadPattern(logDEBUG5, pat);
|
||||||
if (!error)
|
if (!error)
|
||||||
startPattern();
|
startPattern();
|
||||||
free(pat);
|
free(pat);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#ifndef LOADPATTERN_H
|
#ifndef LOADPATTERN_H
|
||||||
#define LOADPATTERN_H
|
#define LOADPATTERN_H
|
||||||
#include "Pattern.h"
|
#include "Pattern.h"
|
||||||
|
#include "clogger.h"
|
||||||
|
|
||||||
int loadPattern(patternParameters *pat);
|
int loadPattern(enum TLogLevel printLevel, patternParameters *pat);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "readDefaultPattern.h"
|
|
||||||
#include "loadPattern.h"
|
#include "loadPattern.h"
|
||||||
#include "clogger.h"
|
#include "clogger.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "readDefaultPattern.h"
|
||||||
#include "sls/ansi.h"
|
#include "sls/ansi.h"
|
||||||
#include "sls/sls_detector_defs.h"
|
#include "sls/sls_detector_defs.h"
|
||||||
#include "slsDetectorServer_defs.h"
|
#include "slsDetectorServer_defs.h"
|
||||||
@ -14,6 +14,7 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
extern char initErrorMessage[MAX_STR_LENGTH];
|
extern char initErrorMessage[MAX_STR_LENGTH];
|
||||||
|
extern enum TLogLevel trimmingPrint;
|
||||||
|
|
||||||
#ifndef MYTHEN3D
|
#ifndef MYTHEN3D
|
||||||
extern uint64_t writePatternIOControl(uint64_t word);
|
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,
|
extern void setPatternLoop(int level, int *startAddr, int *stopAddr,
|
||||||
int *nLoop);
|
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) {
|
||||||
for (int i = 0; i < MAX_PATTERN_LENGTH; ++i) {
|
LOG(logDEBUG5, ("Setting Pattern Word (addr:0x%x, word:0x%llx)\n",
|
||||||
if ((i % 10 == 0) && pat->word[i] != 0) {
|
i, (long long int)pat->word[i]));
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
uint64_t retval64;
|
writePatternWord(i, pat->word[i]);
|
||||||
if (ret == OK) {
|
}
|
||||||
for (int i = 0; i <= 2; ++i) {
|
#ifndef MYTHEN3D
|
||||||
char msg[128];
|
if (ret == OK) {
|
||||||
int retval0 = -1, retval1 = -1, numLoops = -1;
|
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
|
// patloop
|
||||||
retval0 = pat->loop[i * 2 + 0];
|
retval0 = pat->loop[i * 2 + 0];
|
||||||
retval1 = pat->loop[i * 2 + 1];
|
retval1 = pat->loop[i * 2 + 1];
|
||||||
numLoops = pat->nloop[i];
|
numLoops = pat->nloop[i];
|
||||||
setPatternLoop(i, &retval0, &retval1, &numLoops);
|
setPatternLoop(i, &retval0, &retval1, &numLoops);
|
||||||
memset(msg, 0, sizeof(msg));
|
memset(msg, 0, sizeof(msg));
|
||||||
sprintf(msg, "set pattern Loop %d start address", i);
|
sprintf(msg, "set pattern Loop %d start address", i);
|
||||||
//validate(pat->loop[i * 2 + 0], retval0, msg, HEX);
|
// validate(pat->loop[i * 2 + 0], retval0, msg, HEX);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
memset(msg, 0, sizeof(msg));
|
memset(msg, 0, sizeof(msg));
|
||||||
sprintf(msg, "set pattern Loop %d stop address", i);
|
sprintf(msg, "set pattern Loop %d stop address", i);
|
||||||
//validate(pat->loop[i * 2 + 1], retval1, msg, HEX);
|
// validate(pat->loop[i * 2 + 1], retval1, msg, HEX);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
memset(msg, 0, sizeof(msg));
|
memset(msg, 0, sizeof(msg));
|
||||||
sprintf(msg, "set pattern Loop %d num loops", i);
|
sprintf(msg, "set pattern Loop %d num loops", i);
|
||||||
//validate(pat->nloop[i], numLoops, msg, HEX);
|
// validate(pat->nloop[i], numLoops, msg, HEX);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// patwait
|
// patwait
|
||||||
memset(msg, 0, sizeof(msg));
|
memset(msg, 0, sizeof(msg));
|
||||||
sprintf(msg, "set pattern Loop %d wait address", i);
|
sprintf(msg, "set pattern Loop %d wait address", i);
|
||||||
retval0 = setPatternWaitAddress(i, pat->wait[i]);
|
retval0 = setPatternWaitAddress(i, pat->wait[i]);
|
||||||
//validate(pat->wait[i], retval0, msg, HEX);
|
// validate(pat->wait[i], retval0, msg, HEX);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// patwaittime
|
// patwaittime
|
||||||
memset(msg, 0, sizeof(msg));
|
memset(msg, 0, sizeof(msg));
|
||||||
sprintf(msg, "set pattern Loop %d wait time", i);
|
sprintf(msg, "set pattern Loop %d wait time", i);
|
||||||
retval64 = setPatternWaitTime(i, pat->waittime[i]);
|
retval64 = setPatternWaitTime(i, pat->waittime[i]);
|
||||||
//validate64(pat->waittime[i], retval64, msg, HEX);
|
// validate64(pat->waittime[i], retval64, msg, HEX);
|
||||||
if (retval64 == FAIL) {
|
if (retval64 == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
trimmingPrint = logINFO;
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user