mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-22 01:27:59 +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:
@ -114,6 +114,9 @@ class CmdProxy {
|
||||
{"period", &CmdProxy::Period},
|
||||
{"subexptime", &CmdProxy::SubExptime},
|
||||
{"frames", &CmdProxy::frames},
|
||||
{"parallel", &CmdProxy::parallel},
|
||||
{"overflow", &CmdProxy::overflow},
|
||||
{"storeinram", &CmdProxy::storeinram},
|
||||
{"fwrite", &CmdProxy::fwrite},
|
||||
{"fmaster", &CmdProxy::fmaster},
|
||||
{"foverwrite", &CmdProxy::foverwrite},
|
||||
@ -144,7 +147,8 @@ class CmdProxy {
|
||||
{"masterfile", "fmaster"},
|
||||
{"outdir", "fpath"},
|
||||
{"fileformat", "fformat"},
|
||||
{"overwrite", "foverwrite"}};
|
||||
{"overwrite", "foverwrite"},
|
||||
{"flags", "readout"}};
|
||||
|
||||
void WrongNumberOfParameters(size_t expected);
|
||||
|
||||
@ -193,6 +197,15 @@ class CmdProxy {
|
||||
|
||||
INTEGER_COMMAND(findex, getAcquisitionIndex, setAcquisitionIndex, std::stoi,
|
||||
"[0, 1]\n\tFile index");
|
||||
|
||||
INTEGER_COMMAND(parallel, getParallelMode, setParallelMode, std::stoi,
|
||||
"[0, 1]\n\tEnable or disable parallel mode. [Eiger]");
|
||||
|
||||
INTEGER_COMMAND(overflow, getOverFlowMode, setOverFlowMode, std::stoi,
|
||||
"[0, 1]\n\tEnable or disable show overflow flag in 32 bit mode. [Eiger]");
|
||||
|
||||
INTEGER_COMMAND(storeinram, getStoreInRamMode, setStoreInRamMode, std::stoi,
|
||||
"[0, 1]\n\tEnable or disable store in ram mode. [Eiger]");
|
||||
};
|
||||
|
||||
} // namespace sls
|
||||
|
@ -154,12 +154,11 @@ class Detector {
|
||||
Result<ns> getDelayAfterTriggerLeft(Positions pos = {}) const;
|
||||
|
||||
/** [Eiger][Jungfrau] */
|
||||
Result<int> getSpeed(Positions pos = {}) const;
|
||||
Result<defs::speedLevel> getSpeed(Positions pos = {}) const;
|
||||
|
||||
/** [Eiger][Jungfrau] // TODO: create enum for speed
|
||||
* Options: (0 full speed, 1 half speed, 2 quarter speed)
|
||||
*/
|
||||
void setSpeed(int value, Positions pos = {});
|
||||
/** [Eiger][Jungfrau]
|
||||
* Options: FULL_SPEED, HALF_SPEED, QUARTER_SPEED */
|
||||
void setSpeed(defs::speedLevel value, Positions pos = {});
|
||||
|
||||
/** [Gotthard][Jungfrau][CTB] */
|
||||
Result<int> getADCPhase(Positions pos = {}) const;
|
||||
@ -636,6 +635,12 @@ class Detector {
|
||||
/** [Eiger] */
|
||||
void setOverFlowMode(bool value, Positions pos = {});
|
||||
|
||||
/** [Eiger] */
|
||||
Result<bool> getStoreInRamMode(Positions pos = {}) const;
|
||||
|
||||
/** [Eiger] */
|
||||
void setStoreInRamMode(bool value, Positions pos = {});
|
||||
|
||||
/** [Eiger] */
|
||||
Result<bool> getBottom(Positions pos = {}) const;
|
||||
|
||||
@ -852,11 +857,10 @@ class Detector {
|
||||
void setNumberOfDigitalSamples(int64_t value, Positions pos = {});
|
||||
|
||||
/** [CTB] */
|
||||
Result<int> getReadoutMode(Positions pos = {}) const;
|
||||
Result<defs::readoutMode> getReadoutMode(Positions pos = {}) const;
|
||||
|
||||
/** [CTB] Options: NORMAL_READOUT = 0, DIGITAL_ONLY = 1, ANALOG_AND_DIGITAL
|
||||
* //TODO ANALOG_ONLY, make enum = 2 */
|
||||
void setReadoutMode(int value, Positions pos = {});
|
||||
/** [CTB] Options: ANALOG_ONLY = 0, DIGITAL_ONLY = 1, ANALOG_AND_DIGITAL */
|
||||
void setReadoutMode(defs::readoutMode value, Positions pos = {});
|
||||
|
||||
/** [CTB] */
|
||||
Result<int> getDBITPhase(Positions pos = {}) const;
|
||||
|
@ -778,14 +778,18 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
int detPos = -1); //
|
||||
|
||||
/**
|
||||
* Set/get readout flags (Eiger, Mythen)
|
||||
* @param flag readout flag (Eiger options: parallel, nonparallel, safe
|
||||
* etc.) (-1 gets)
|
||||
* Set readout mode (Only for CTB and Moench)
|
||||
* @param mode readout mode Options: ANALOG_ONLY, DIGITAL_ONLY, ANALOG_AND_DIGITAL
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns readout flag
|
||||
*/
|
||||
int setReadOutFlags(readOutFlags flag = GET_READOUT_FLAGS,
|
||||
int detPos = -1); //
|
||||
void setReadoutMode(const readoutMode mode, int detPos = -1);
|
||||
|
||||
/**
|
||||
* Get readout mode(Only for CTB and Moench)
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns readout mode
|
||||
*/
|
||||
readoutMode getReadoutMode(int detPos = -1);
|
||||
|
||||
/**
|
||||
* Set Interrupt last sub frame (Only for Eiger)
|
||||
|
@ -68,8 +68,8 @@ struct sharedSlsDetector {
|
||||
/** adc enable mask */
|
||||
uint32_t adcEnableMask;
|
||||
|
||||
/** readout flags */
|
||||
slsDetectorDefs::readOutFlags roFlags;
|
||||
/** readout mode */
|
||||
slsDetectorDefs::readoutMode roMode;
|
||||
|
||||
/** detector settings (standard, fast, etc.) */
|
||||
slsDetectorDefs::detectorSettings currentSettings;
|
||||
@ -629,12 +629,52 @@ class slsDetector : public virtual slsDetectorDefs {
|
||||
setExternalSignalFlags(externalSignalFlag pol = GET_EXTERNAL_SIGNAL_FLAG);
|
||||
|
||||
/**
|
||||
* Set/get readout flags (Eiger, Mythen)
|
||||
* @param flag readout flag (Eiger options: parallel, nonparallel, safe
|
||||
* etc.) (-1 gets)
|
||||
* @returns readout flag
|
||||
* Set Parallel readout mode (Only for Eiger)
|
||||
* @param enable true if parallel, else false for non parallel
|
||||
*/
|
||||
int setReadOutFlags(readOutFlags flag = GET_READOUT_FLAGS);
|
||||
void setParallelMode(const bool enable);
|
||||
|
||||
/**
|
||||
* Get parallel mode (Only for Eiger)
|
||||
* @returns parallel mode
|
||||
*/
|
||||
bool getParallelMode();
|
||||
|
||||
/**
|
||||
* Set overflow readout mode in 32 bit mode (Only for Eiger)
|
||||
* @param enable true if overflow, else false
|
||||
*/
|
||||
void setOverFlowMode(const bool enable);
|
||||
|
||||
/**
|
||||
* Get overflow mode in 32 bit mode (Only for Eiger)
|
||||
* @returns overflow mode
|
||||
*/
|
||||
bool getOverFlowMode();
|
||||
|
||||
/**
|
||||
* Set store in ram readout mode (Only for Eiger)
|
||||
* @param enable true if store in ram, else false
|
||||
*/
|
||||
void setStoreInRamMode(const bool enable);
|
||||
|
||||
/**
|
||||
* Get store in ram mode (Only for Eiger)
|
||||
* @returns store in ram mode
|
||||
*/
|
||||
bool getStoreInRamMode();
|
||||
|
||||
/**
|
||||
* Set readout mode (Only for CTB and Moench)
|
||||
* @param mode readout mode Options: ANALOG_ONLY, DIGITAL_ONLY, ANALOG_AND_DIGITAL
|
||||
*/
|
||||
void setReadoutMode(const readoutMode mode);
|
||||
|
||||
/**
|
||||
* Get readout mode(Only for CTB and Moench)
|
||||
* @returns readout mode
|
||||
*/
|
||||
readoutMode getReadoutMode();
|
||||
|
||||
/**
|
||||
* Set Interrupt last sub frame (Only for Eiger)
|
||||
|
@ -398,22 +398,20 @@ public:
|
||||
/**
|
||||
* Set parallel readout mode (Eiger)
|
||||
* @param value readout mode (-1 gets)
|
||||
* Options: slsDetectorDefs::readOutFlags
|
||||
* (PARALLEL, NONPARALLEL (Default), SAFE)
|
||||
* false for NonParallel (Default), true for Parallel
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns mode register,
|
||||
* result must be ANDED with PARALLEL/NONPARALLEL/SAFE to get mode
|
||||
* @returns 1 for parallel, 0 for non parallel, -1 if different
|
||||
*/
|
||||
int setParallelMode(int value, int detPos = -1);
|
||||
int setParallelMode(bool value, int detPos = -1);
|
||||
|
||||
/**
|
||||
* Set overflow readout mode (Eiger in 32 bit)
|
||||
* @param value readout mode (-1 gets)
|
||||
* Options: 1(SHOW_OVERFLOW), 0(NOOVERFLOW) (Default)
|
||||
* Options: true to Show overflow, false to not show overflow
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns 1 if overflow mode else 0
|
||||
* @returns 1 for overflow, 0 for no overflow, -1 if different
|
||||
*/
|
||||
int setOverflowMode(int value, int detPos = -1);
|
||||
int setOverflowMode(bool value, int detPos = -1);
|
||||
|
||||
/**
|
||||
* (Advanced user)
|
||||
|
Reference in New Issue
Block a user