mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 05:17:13 +02:00
Readoutflags (#61)
* WIP * eiger binary back wih versioning * fixed readout flag in ctbgui, added speedLevel enum * ctbgui: fixed a print out error * ctb readout bug fix * WIP * WIP * WIP
This commit is contained in:
@ -499,36 +499,23 @@ format
|
||||
DBIT_PIPELINE, /**< adc pipeline */
|
||||
MAX_ADC_PHASE_SHIFT, /** max adc phase shift */
|
||||
MAX_DBIT_PHASE_SHIFT, /** max adc phase shift */
|
||||
SYNC_CLOCK,
|
||||
SYNC_CLOCK
|
||||
};
|
||||
|
||||
/**
|
||||
readout flags
|
||||
*/
|
||||
enum readOutFlags {
|
||||
GET_READOUT_FLAGS = -1, /**< return readout flags */
|
||||
NORMAL_READOUT = 0, /**< no flag */
|
||||
STORE_IN_RAM = 0x1, /**< data are stored in ram and sent only after end
|
||||
of acquisition for faster frame rate */
|
||||
READ_HITS = 0x2, /**< return only the number of the channel which
|
||||
counted ate least one */
|
||||
ZERO_COMPRESSION = 0x4, /**< returned data are 0-compressed */
|
||||
PUMP_PROBE_MODE = 0x8, /**<pump-probe mode */
|
||||
BACKGROUND_CORRECTIONS = 0x1000, /**<background corrections */
|
||||
TOT_MODE = 0x2000, /**< pump-probe mode */
|
||||
CONTINOUS_RO = 0x4000, /**< pump-probe mode */
|
||||
PARALLEL = 0x10000, /**< eiger parallel mode */
|
||||
NONPARALLEL = 0x20000, /**< eiger serial mode */
|
||||
DIGITAL_ONLY = 0x80000, /** chiptest board read only digital bits (not
|
||||
adc values)*/
|
||||
ANALOG_AND_DIGITAL = 0x100000, /** chiptest board read adc values and
|
||||
digital bits digital bits */
|
||||
DUT_CLK = 0x200000, /** chiptest board fifo clock comes from device
|
||||
under test */
|
||||
SHOW_OVERFLOW = 0x400000, /** eiger 32 bit mode, show saturated for
|
||||
overflow of single subframes */
|
||||
NOOVERFLOW = 0x800000 /** eiger 32 bit mode, do not show saturated for
|
||||
overflow of single subframes */
|
||||
* read out mode (ctb, moench)
|
||||
*/
|
||||
enum readoutMode {
|
||||
ANALOG_ONLY,
|
||||
DIGITAL_ONLY,
|
||||
ANALOG_AND_DIGITAL
|
||||
};
|
||||
|
||||
/** chip speed */
|
||||
enum speedLevel {
|
||||
FULL_SPEED,
|
||||
HALF_SPEED,
|
||||
QUARTER_SPEED
|
||||
};
|
||||
|
||||
/** port type */
|
||||
@ -900,6 +887,56 @@ format
|
||||
}
|
||||
};
|
||||
|
||||
/** returns string from readoutMode */
|
||||
static std::string getReadoutModeType(readoutMode mode) {
|
||||
switch(mode) {
|
||||
case ANALOG_ONLY:
|
||||
return "analog";
|
||||
case DIGITAL_ONLY:
|
||||
return "digital";
|
||||
case ANALOG_AND_DIGITAL:
|
||||
return "analog_digital";
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
};
|
||||
|
||||
/** returns readoutMode from string */
|
||||
static readoutMode getReadoutModeType(std::string smode) {
|
||||
if (smode == "analog")
|
||||
return ANALOG_ONLY;
|
||||
if (smode == "digital")
|
||||
return DIGITAL_ONLY;
|
||||
if (smode == "analog_digital")
|
||||
return ANALOG_AND_DIGITAL;
|
||||
throw sls::RuntimeError("Unknown readout mode " + smode);
|
||||
};
|
||||
|
||||
/** returns string from speedLevel */
|
||||
static std::string getSpeedLevelType(speedLevel mode) {
|
||||
switch(mode) {
|
||||
case FULL_SPEED:
|
||||
return "full_speed";
|
||||
case HALF_SPEED:
|
||||
return "half_speed";
|
||||
case QUARTER_SPEED:
|
||||
return "quarter_speed";
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
};
|
||||
|
||||
/** returns speedLevel from string */
|
||||
static speedLevel getSpeedLevelType(std::string smode) {
|
||||
if (smode == "full_speed")
|
||||
return FULL_SPEED;
|
||||
if (smode == "half_speed")
|
||||
return HALF_SPEED;
|
||||
if (smode == "quarter_speed")
|
||||
return QUARTER_SPEED;
|
||||
throw sls::RuntimeError("Unknown speed level mode " + smode);
|
||||
};
|
||||
|
||||
/**
|
||||
@short returns adc index from std::string
|
||||
\param s can be temp_fpga, temp_fpgaext, temp_10ge, temp_dcdc, temp_sodl,
|
||||
|
Reference in New Issue
Block a user