mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-14 13:57:13 +02:00
Moench rw3 (#745)
* moench, removed chip version, filter resistor, filter cells, currentsoures, gain mode, setttings(modes), dbitphase, maxdbitphase, autocompdisable, comparatordisabletime, made acq start and stop a pulse, removed unused registers * added parallel command * remove gain plot for moench * moench: updated adc invert val * moench: update adcoffset to 0xf and adcphase to 140 degrees * removed sync clock in moench * updated min fw version * removing config file in moench server
This commit is contained in:
@ -702,15 +702,14 @@ std::string CmdProxy::ReadoutSpeed(int action) {
|
||||
os << cmd << ' ';
|
||||
if (action == defs::HELP_ACTION) {
|
||||
os << "\n\t[0 or full_speed|1 or half_speed|2 or "
|
||||
"quarter_speed]\n\t\t[Eiger][Jungfrau][Moench] Readout "
|
||||
"speed of chip.\n\t\t[Eiger] Default speed is full_speed."
|
||||
"\n\t\t[Jungfrau][Moench] Default speed is half_speed. "
|
||||
"full_speed "
|
||||
"option only available from v2.0 boards and is recommended to "
|
||||
"set "
|
||||
"number of interfaces to 2. Also overwrites "
|
||||
"quarter_speed]\n\t\t[Eiger][Jungfrau][Moench] Readout speed of "
|
||||
"chip.\n\t\t[Eiger][Moench] Default speed is "
|
||||
"full_speed.\n\t\t[Jungfrau] Default speed is half_speed. "
|
||||
"full_speed option only available from v2.0 boards and is "
|
||||
"recommended to set number of interfaces to 2. Also overwrites "
|
||||
"adcphase to recommended default.\n\t [144|108]\n\t\t[Gotthard2] "
|
||||
"Readout speed of chip in MHz. Default is 108."
|
||||
"Readout speed of chip in MHz. Default is 108.\n\t\t[Moench] "
|
||||
"Only Full speed is implemented."
|
||||
<< '\n';
|
||||
} else {
|
||||
defs::detectorType type = det->getDetectorType().squash();
|
||||
@ -800,8 +799,7 @@ std::string CmdProxy::Dbitphase(int action) {
|
||||
std::ostringstream os;
|
||||
os << cmd << ' ';
|
||||
if (action == defs::HELP_ACTION) {
|
||||
os << "[n_value] [(optional)deg]\n\t[Ctb][Jungfrau][Moench] Phase "
|
||||
"shift of "
|
||||
os << "[n_value] [(optional)deg]\n\t[Ctb][Jungfrau] Phase shift of "
|
||||
"clock to latch digital bits. Absolute phase shift. If deg used, "
|
||||
"then shift in degrees. \n\t[Ctb]Changing dbitclk also resets "
|
||||
"dbitphase and sets to previous values."
|
||||
@ -809,7 +807,7 @@ std::string CmdProxy::Dbitphase(int action) {
|
||||
} else {
|
||||
auto det_type = det->getDetectorType().squash(defs::GENERIC);
|
||||
if (det_type == defs::EIGER || det_type == defs::MYTHEN3 ||
|
||||
det_type == defs::GOTTHARD2) {
|
||||
det_type == defs::GOTTHARD2 || det_type == defs::MOENCH) {
|
||||
throw RuntimeError("dbitphase not implemented for this detector");
|
||||
}
|
||||
if (action == defs::GET_ACTION) {
|
||||
@ -1038,8 +1036,7 @@ std::string CmdProxy::CurrentSource(int action) {
|
||||
os << "\n\t[0|1]\n\t\t[Gotthard2] Enable or disable current source. "
|
||||
"Default "
|
||||
"is disabled.\n\t[0|1] [fix|nofix] [select source] [(only for "
|
||||
"chipv1.1)normal|low]\n\t\t[Jungfrau][Moench] Disable or enable "
|
||||
"current "
|
||||
"chipv1.1)normal|low]\n\t\t[Jungfrau] Disable or enable current "
|
||||
"source with some parameters. The select source is 0-63 for "
|
||||
"chipv1.0 and a 64 bit mask for chipv1.1. To disable, one needs "
|
||||
"only one argument '0'."
|
||||
|
@ -1281,7 +1281,7 @@ class CmdProxy {
|
||||
"verylowgain, g1_hg, g1_lg, g2_hc_hg, g2_hc_lg, "
|
||||
"g2_lc_hg, g2_lc_lg, g4_hg, g4_lg, gain0]"
|
||||
"\n\t Detector Settings"
|
||||
"\n\t[Jungfrau][Moench] - [ gain0 | highgain0]"
|
||||
"\n\t[Jungfrau] - [ gain0 | highgain0]"
|
||||
"\n\t[Gotthard] - [dynamicgain | highgain | lowgain | "
|
||||
"mediumgain | veryhighgain]"
|
||||
"\n\t[Gotthard2] - [dynamicgain | fixgain1 | fixgain2]"
|
||||
@ -1397,10 +1397,9 @@ class CmdProxy {
|
||||
"\n\t[Jungfrau][Moench][CTB] Absolute maximum Phase shift of "
|
||||
"ADC clock.");
|
||||
|
||||
GET_COMMAND(
|
||||
maxdbitphaseshift, getMaxDBITPhaseShift,
|
||||
"\n\t[CTB][Jungfrau][Moench] Absolute maximum Phase shift of of the "
|
||||
"clock to latch digital bits.");
|
||||
GET_COMMAND(maxdbitphaseshift, getMaxDBITPhaseShift,
|
||||
"\n\t[CTB][Jungfrau] Absolute maximum Phase shift of of the "
|
||||
"clock to latch digital bits.");
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(highvoltage, getHighVoltage, setHighVoltage,
|
||||
StringTo<int>,
|
||||
@ -1429,19 +1428,19 @@ class CmdProxy {
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(
|
||||
parallel, getParallelMode, setParallelMode, StringTo<int>,
|
||||
"[0, 1]\n\t[Eiger][Mythen3][Gotthard2] Enable or disable parallel "
|
||||
"[0, 1]\n\t[Eiger][Mythen3][Gotthard2][Moench] Enable or disable "
|
||||
"parallel "
|
||||
"mode.\n\t[Mythen3] If exptime is too short, the "
|
||||
"acquisition will return ERROR status and take fewer "
|
||||
"frames than expected.\n\t[Mythen3][Eiger] Default: Non "
|
||||
"frames than expected.\n\t[Mythen3][Eiger][Moench] Default: Non "
|
||||
"parallel.\n\t[Gotthard2] Default: Parallel. Non parallel mode works "
|
||||
"only in continuous mode.");
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(
|
||||
filterresistor, getFilterResistor, setFilterResistor, StringTo<int>,
|
||||
"[value] [Gotthard2][Jungfrau][Moench] Set filter resistor. Increasing "
|
||||
"values "
|
||||
"for increasing resistance.\n\t[Gotthard2] Options: [0|1|2|3]. Default "
|
||||
"is 0.\n\t[Jungfrau][Moench] Options: [0|1]. Default is 1.");
|
||||
"[value] [Gotthard2][Jungfrau] Set filter resistor. Increasing "
|
||||
"values for increasing resistance.\n\t[Gotthard2] Options: [0|1|2|3]. "
|
||||
"Default is 0.\n\t[Jungfrau] Options: [0|1]. Default is 1.");
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(dbitpipeline, getDBITPipeline, setDBITPipeline,
|
||||
StringTo<int>,
|
||||
@ -1957,9 +1956,8 @@ class CmdProxy {
|
||||
|
||||
/* Jungfrau Specific */
|
||||
|
||||
GET_COMMAND(
|
||||
chipversion, getChipVersion,
|
||||
"\n\t[Jungfrau][Moench] Returns chip version. Can be 1.0 or 1.1");
|
||||
GET_COMMAND(chipversion, getChipVersion,
|
||||
"\n\t[Jungfrau] Returns chip version. Can be 1.0 or 1.1");
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(
|
||||
temp_threshold, getThresholdTemperature, setThresholdTemperature,
|
||||
@ -1984,21 +1982,20 @@ class CmdProxy {
|
||||
INTEGER_COMMAND_VEC_ID(
|
||||
autocompdisable, getAutoComparatorDisable, setAutoComparatorDisable,
|
||||
StringTo<int>,
|
||||
"[0, 1]\n\t[Jungfrau][Moench] Auto comparator disable mode. By "
|
||||
"default, the "
|
||||
"on-chip gain switching is active during the entire exposure.This mode "
|
||||
"disables the on - chip gain switching comparator automatically after "
|
||||
"93.75% (only for chipv1.0) of exposure time (only for longer than "
|
||||
"100us). It is possible to set the duration for chipv1.1 using "
|
||||
"compdisabletime command.\n\tDefault is 0 or this mode "
|
||||
"[0, 1]\n\t[Jungfrau] Auto comparator disable mode. By "
|
||||
"default, the on-chip gain switching is active during the entire "
|
||||
"exposure.This mode disables the on - chip gain switching comparator "
|
||||
"automatically after 93.75% (only for chipv1.0) of exposure time (only "
|
||||
"for longer than 100us). It is possible to set the duration for "
|
||||
"chipv1.1 using compdisabletime command.\n\tDefault is 0 or this mode "
|
||||
"disabled(comparator enabled throughout). 1 enables mode. 0 disables "
|
||||
"mode. ");
|
||||
|
||||
TIME_COMMAND(
|
||||
compdisabletime, getComparatorDisableTime, setComparatorDisableTime,
|
||||
"[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench] Time "
|
||||
"before end of exposure when comparator is disabled. It is "
|
||||
"only possible for chipv1.1.");
|
||||
TIME_COMMAND(compdisabletime, getComparatorDisableTime,
|
||||
setComparatorDisableTime,
|
||||
"[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau] Time "
|
||||
"before end of exposure when comparator is disabled. It is "
|
||||
"only possible for chipv1.1.");
|
||||
|
||||
INTEGER_COMMAND_SET_NOID_GET_ID(
|
||||
extrastoragecells, getNumberOfAdditionalStorageCells,
|
||||
@ -2026,11 +2023,10 @@ class CmdProxy {
|
||||
"Jungfrau] Gain mode.\n\tCAUTION: Do not use fixg0 without caution, "
|
||||
"you can damage the detector!!!");
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(
|
||||
filtercells, getNumberOfFilterCells, setNumberOfFilterCells,
|
||||
StringTo<int>,
|
||||
"[0-12]\n\t[Jungfrau][Moench] Set Filter Cell. Only for "
|
||||
"chipv1.1. Advanced user Command");
|
||||
INTEGER_COMMAND_VEC_ID(filtercells, getNumberOfFilterCells,
|
||||
setNumberOfFilterCells, StringTo<int>,
|
||||
"[0-12]\n\t[Jungfrau] Set Filter Cell. Only for "
|
||||
"chipv1.1. Advanced user Command");
|
||||
|
||||
/* Gotthard Specific */
|
||||
TIME_GET_COMMAND(exptimel, getExptimeLeft,
|
||||
|
@ -191,8 +191,7 @@ std::vector<defs::detectorSettings> Detector::getSettingsList() const {
|
||||
defs::VERYHIGHGAIN};
|
||||
case defs::JUNGFRAU:
|
||||
case defs::MOENCH:
|
||||
return std::vector<defs::detectorSettings>{defs::GAIN0,
|
||||
defs::HIGHGAIN0};
|
||||
return std::vector<defs::detectorSettings>{};
|
||||
case defs::GOTTHARD2:
|
||||
return std::vector<defs::detectorSettings>{
|
||||
defs::DYNAMICGAIN, defs::FIXGAIN1, defs::FIXGAIN2};
|
||||
@ -507,9 +506,10 @@ std::vector<defs::speedLevel> Detector::getReadoutSpeedList() const {
|
||||
switch (getDetectorType().squash()) {
|
||||
case defs::EIGER:
|
||||
case defs::JUNGFRAU:
|
||||
case defs::MOENCH:
|
||||
return std::vector<defs::speedLevel>{defs::FULL_SPEED, defs::HALF_SPEED,
|
||||
defs::QUARTER_SPEED};
|
||||
case defs::MOENCH:
|
||||
return std::vector<defs::speedLevel>{defs::FULL_SPEED};
|
||||
case defs::GOTTHARD2:
|
||||
return std::vector<defs::speedLevel>{defs::G2_108MHZ, defs::G2_144MHZ};
|
||||
default:
|
||||
@ -1704,7 +1704,6 @@ void Detector::setStorageCellDelay(ns value, Positions pos) {
|
||||
std::vector<defs::gainMode> Detector::getGainModeList() const {
|
||||
switch (getDetectorType().squash()) {
|
||||
case defs::JUNGFRAU:
|
||||
case defs::MOENCH:
|
||||
return std::vector<defs::gainMode>{
|
||||
defs::DYNAMIC, defs::FORCE_SWITCH_G1, defs::FORCE_SWITCH_G2,
|
||||
defs::FIX_G1, defs::FIX_G2, defs::FIX_G0};
|
||||
|
Reference in New Issue
Block a user