mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 18:17:59 +02:00
moench has only analog readout
This commit is contained in:
@ -530,7 +530,9 @@ void setupDetector() {
|
||||
setTimer(FRAME_PERIOD, DEFAULT_PERIOD);
|
||||
setTimer(DELAY_AFTER_TRIGGER, DEFAULT_DELAY);
|
||||
setTiming(DEFAULT_TIMING_MODE);
|
||||
setReadOutFlags(NORMAL_READOUT);
|
||||
|
||||
// ensuring normal readout (only option for moench)
|
||||
bus_w(addr, bus_r(addr) & (~CONFIG_DSBL_ANLG_OTPT_MSK) & (~CONFIG_ENBLE_DGTL_OTPT_MSK));
|
||||
|
||||
// clear roi
|
||||
{
|
||||
@ -819,60 +821,6 @@ int getSpeed(enum speedVariable ind) {
|
||||
}
|
||||
}
|
||||
|
||||
enum readOutFlags setReadOutFlags(enum readOutFlags val) {
|
||||
enum readOutFlags retval = GET_READOUT_FLAGS;
|
||||
uint32_t addr = CONFIG_REG;
|
||||
|
||||
// set
|
||||
if (val != GET_READOUT_FLAGS) {
|
||||
switch(val) {
|
||||
case NORMAL_READOUT:
|
||||
FILE_LOG(logINFO, ("Setting Normal Readout\n"));
|
||||
bus_w(addr, bus_r(addr) & (~CONFIG_DSBL_ANLG_OTPT_MSK) & (~CONFIG_ENBLE_DGTL_OTPT_MSK));
|
||||
break;
|
||||
case DIGITAL_ONLY:
|
||||
FILE_LOG(logINFO, ("Setting Digital Only Readout\n"));
|
||||
bus_w(addr, bus_r(addr) | CONFIG_DSBL_ANLG_OTPT_MSK | CONFIG_ENBLE_DGTL_OTPT_MSK);
|
||||
break;
|
||||
case ANALOG_AND_DIGITAL:
|
||||
FILE_LOG(logINFO, ("Setting Analog & Digital Readout\n"));
|
||||
bus_w(addr, (bus_r(addr) & (~CONFIG_DSBL_ANLG_OTPT_MSK)) | CONFIG_ENBLE_DGTL_OTPT_MSK);
|
||||
break;
|
||||
default:
|
||||
FILE_LOG(logERROR, ("Cannot set unknown readout flag. 0x%x\n", val));
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
// get
|
||||
uint32_t regval = bus_r(addr);
|
||||
FILE_LOG(logDEBUG1, ("Config Reg: 0x%08x\n", regval));
|
||||
// this bit reads analog disable, so inverse
|
||||
analogEnable = (((regval & CONFIG_DSBL_ANLG_OTPT_MSK) >> CONFIG_DSBL_ANLG_OTPT_OFST) ? 0 : 1);
|
||||
digitalEnable = ((regval & CONFIG_ENBLE_DGTL_OTPT_MSK) >> CONFIG_ENBLE_DGTL_OTPT_OFST);
|
||||
|
||||
if (analogEnable && digitalEnable) {
|
||||
FILE_LOG(logDEBUG1, ("Getting readout: Analog & Digital\n"));
|
||||
retval = ANALOG_AND_DIGITAL;
|
||||
} else if (analogEnable && !digitalEnable) {
|
||||
FILE_LOG(logDEBUG1, ("Getting readout: Normal\n"));
|
||||
retval = NORMAL_READOUT;
|
||||
} else if (!analogEnable && digitalEnable) {
|
||||
FILE_LOG(logDEBUG1, ("Getting readout: Digital Only\n"));
|
||||
retval = DIGITAL_ONLY;
|
||||
} else {
|
||||
FILE_LOG(logERROR, ("Read unknown readout (Both digital and analog are disabled). "
|
||||
"Config reg: 0x%x\n", regval));
|
||||
return retval;
|
||||
}
|
||||
|
||||
// update databytes and allocate ram
|
||||
if (allocateRAM() == FAIL) {
|
||||
return -2;
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* parameters - timer */
|
||||
|
@ -120,7 +120,7 @@ void setSpeed(enum speedVariable ind, int val);
|
||||
int getSpeed(enum speedVariable ind);
|
||||
#endif
|
||||
|
||||
#if defined(EIGERD) || defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
||||
#if defined(EIGERD) || defined(CHIPTESTBOARDD)
|
||||
enum readOutFlags setReadOutFlags(enum readOutFlags val);
|
||||
#endif
|
||||
|
||||
|
@ -1797,7 +1797,7 @@ int set_readout_flags(int file_des) {
|
||||
return printSocketReadError();
|
||||
FILE_LOG(logDEBUG1, ("Setting readout flags to %d\n", arg));
|
||||
|
||||
#if defined(JUNGFRAUD) || defined(GOTTHARDD)
|
||||
#if defined(JUNGFRAUD) || defined(GOTTHARDD) || defined(MOENCHD)
|
||||
functionNotImplemented();
|
||||
#else
|
||||
// set & get
|
||||
@ -1805,6 +1805,7 @@ int set_readout_flags(int file_des) {
|
||||
|
||||
switch(arg) {
|
||||
case GET_READOUT_FLAGS:
|
||||
#ifdef EIGERD
|
||||
case STORE_IN_RAM:
|
||||
case CONTINOUS_RO:
|
||||
case PARALLEL:
|
||||
@ -1812,7 +1813,7 @@ int set_readout_flags(int file_des) {
|
||||
case SAFE:
|
||||
case SHOW_OVERFLOW:
|
||||
case NOOVERFLOW:
|
||||
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
||||
#elif CHIPTESTBOARDD
|
||||
case NORMAL_READOUT:
|
||||
case DIGITAL_ONLY:
|
||||
case ANALOG_AND_DIGITAL:
|
||||
@ -2178,7 +2179,7 @@ int send_update(int file_des) {
|
||||
n = sendData(file_des,&i64,sizeof(i64),INT64);
|
||||
if (n < 0) return printSocketReadError();
|
||||
|
||||
#if defined(EIGERD) || defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
||||
#if defined(EIGERD) || defined(CHIPTESTBOARDD)
|
||||
i32 = setReadOutFlags(GET_READOUT_FLAGS);
|
||||
n = sendData(file_des,&i32,sizeof(i32),INT32);
|
||||
if (n < 0) return printSocketReadError();
|
||||
|
Reference in New Issue
Block a user