mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 13:27:14 +02:00
jungfrau: flip rows and partial readout only available for hw2.0
This commit is contained in:
@ -67,6 +67,9 @@ This document describes the differences between v6.0.1 and v6.0.0.
|
|||||||
2. [Gotthard2][Mythen3]
|
2. [Gotthard2][Mythen3]
|
||||||
Verifies kernel version at server start up.
|
Verifies kernel version at server start up.
|
||||||
|
|
||||||
|
3. [Jungfrau]
|
||||||
|
Verifies HW2.0 before trying to set read n rows or flip rows.
|
||||||
|
|
||||||
|
|
||||||
Client
|
Client
|
||||||
------
|
------
|
||||||
@ -85,6 +88,11 @@ This document describes the differences between v6.0.1 and v6.0.0.
|
|||||||
|
|
||||||
1. Setting receiver hostname to "none" threw an exception. Fixed.
|
1. Setting receiver hostname to "none" threw an exception. Fixed.
|
||||||
|
|
||||||
|
2. [Jungfrau]
|
||||||
|
Since the server verifies HW2.0 for number of rows before trying to set it,
|
||||||
|
the receiver now does not show incorrect missing packets stemming from this
|
||||||
|
issue.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3. Firmware Requirements
|
3. Firmware Requirements
|
||||||
|
BIN
slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer
Executable file
BIN
slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer
Executable file
Binary file not shown.
BIN
slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer
Executable file
BIN
slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer
Executable file
Binary file not shown.
BIN
slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer
Executable file
BIN
slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer
Executable file
Binary file not shown.
BIN
slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer
Executable file
BIN
slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer
Executable file
Binary file not shown.
BIN
slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer
Executable file
BIN
slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer
Executable file
Binary file not shown.
@ -501,12 +501,14 @@ void setupDetector() {
|
|||||||
// temp threshold and reset event
|
// temp threshold and reset event
|
||||||
setThresholdTemperature(DEFAULT_TMP_THRSHLD);
|
setThresholdTemperature(DEFAULT_TMP_THRSHLD);
|
||||||
setTemperatureEvent(0);
|
setTemperatureEvent(0);
|
||||||
setFlipRows(DEFAULT_FLIP_ROWS);
|
|
||||||
if (getChipVersion() == 11) {
|
if (getChipVersion() == 11) {
|
||||||
setFilterResistor(DEFAULT_FILTER_RESISTOR);
|
setFilterResistor(DEFAULT_FILTER_RESISTOR);
|
||||||
setNumberOfFilterCells(DEFAULT_FILTER_CELL);
|
setNumberOfFilterCells(DEFAULT_FILTER_CELL);
|
||||||
}
|
}
|
||||||
setReadNRows(MAX_ROWS_PER_READOUT);
|
if (!isHardwareVersion2()) {
|
||||||
|
setFlipRows(DEFAULT_FLIP_ROWS);
|
||||||
|
setReadNRows(MAX_ROWS_PER_READOUT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int resetToDefaultDacs(int hardReset) {
|
int resetToDefaultDacs(int hardReset) {
|
||||||
@ -1671,6 +1673,11 @@ int setReadNRows(int value) {
|
|||||||
LOG(logERROR, ("Invalid number of rows %d\n", value));
|
LOG(logERROR, ("Invalid number of rows %d\n", value));
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
if (isHardwareVersion2()) {
|
||||||
|
LOG(logERROR, ("Could not set number of rows. Only available for "
|
||||||
|
"Hardware Board version 2.0.\n"));
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
// regval is numpackets - 1
|
// regval is numpackets - 1
|
||||||
int regval = (value / READ_N_ROWS_MULTIPLE) - 1;
|
int regval = (value / READ_N_ROWS_MULTIPLE) - 1;
|
||||||
@ -1679,7 +1686,6 @@ int setReadNRows(int value) {
|
|||||||
bus_w(addr, bus_r(addr) & ~READ_N_ROWS_NUM_ROWS_MSK);
|
bus_w(addr, bus_r(addr) & ~READ_N_ROWS_NUM_ROWS_MSK);
|
||||||
bus_w(addr, bus_r(addr) | ((regval << READ_N_ROWS_NUM_ROWS_OFST) &
|
bus_w(addr, bus_r(addr) | ((regval << READ_N_ROWS_NUM_ROWS_OFST) &
|
||||||
READ_N_ROWS_NUM_ROWS_MSK));
|
READ_N_ROWS_NUM_ROWS_MSK));
|
||||||
|
|
||||||
if (value == MAX_ROWS_PER_READOUT) {
|
if (value == MAX_ROWS_PER_READOUT) {
|
||||||
LOG(logINFO, ("Disabling Partial Readout (#rows)\n"));
|
LOG(logINFO, ("Disabling Partial Readout (#rows)\n"));
|
||||||
bus_w(addr, bus_r(addr) & ~READ_N_ROWS_ENBL_MSK);
|
bus_w(addr, bus_r(addr) & ~READ_N_ROWS_ENBL_MSK);
|
||||||
@ -1691,6 +1697,10 @@ int setReadNRows(int value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int getReadNRows() {
|
int getReadNRows() {
|
||||||
|
// cannot set it in old board
|
||||||
|
if (isHardwareVersion2()) {
|
||||||
|
return MAX_ROWS_PER_READOUT;
|
||||||
|
}
|
||||||
int enable = (bus_r(READ_N_ROWS_REG) & READ_N_ROWS_ENBL_MSK);
|
int enable = (bus_r(READ_N_ROWS_REG) & READ_N_ROWS_ENBL_MSK);
|
||||||
int regval = ((bus_r(READ_N_ROWS_REG) & READ_N_ROWS_NUM_ROWS_MSK) >>
|
int regval = ((bus_r(READ_N_ROWS_REG) & READ_N_ROWS_NUM_ROWS_MSK) >>
|
||||||
READ_N_ROWS_NUM_ROWS_OFST);
|
READ_N_ROWS_NUM_ROWS_OFST);
|
||||||
@ -2163,6 +2173,11 @@ int getFlipRows() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setFlipRows(int arg) {
|
void setFlipRows(int arg) {
|
||||||
|
if (isHardwareVersion2()) {
|
||||||
|
LOG(logERROR, ("Could not set flip rows. Only available for "
|
||||||
|
"Hardware Board version 2.0.\n"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (arg >= 0) {
|
if (arg >= 0) {
|
||||||
if (arg == 0) {
|
if (arg == 0) {
|
||||||
LOG(logINFO, ("Switching off bottom row flipping\n"));
|
LOG(logINFO, ("Switching off bottom row flipping\n"));
|
||||||
|
BIN
slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer
Executable file
BIN
slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer
Executable file
Binary file not shown.
BIN
slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer
Executable file
BIN
slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer
Executable file
Binary file not shown.
@ -4663,6 +4663,13 @@ int set_read_n_rows(int file_des) {
|
|||||||
"of %d\n",
|
"of %d\n",
|
||||||
arg, READ_N_ROWS_MULTIPLE);
|
arg, READ_N_ROWS_MULTIPLE);
|
||||||
LOG(logERROR, (mess));
|
LOG(logERROR, (mess));
|
||||||
|
}
|
||||||
|
// only for HW 2.0 (version = 3)
|
||||||
|
else if (isHardwareVersion2()) {
|
||||||
|
ret = FAIL;
|
||||||
|
strcpy(mess, "Could not set number of rows. Only available for "
|
||||||
|
"Hardware Board version 2.0.\n");
|
||||||
|
LOG(logERROR, (mess));
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
@ -4702,7 +4709,7 @@ int get_read_n_rows(int file_des) {
|
|||||||
retval = getReadNRows();
|
retval = getReadNRows();
|
||||||
if (retval == -1) {
|
if (retval == -1) {
|
||||||
ret = FAIL;
|
ret = FAIL;
|
||||||
sprintf(mess, "Could not get numbr of rows. \n");
|
sprintf(mess, "Could not get number of rows. \n");
|
||||||
LOG(logERROR, (mess));
|
LOG(logERROR, (mess));
|
||||||
} else {
|
} else {
|
||||||
LOG(logDEBUG1, ("number of rows retval: %u\n", retval));
|
LOG(logDEBUG1, ("number of rows retval: %u\n", retval));
|
||||||
|
Reference in New Issue
Block a user