ctb and moench: wrong firmware will set numchannels to 0 and this will throw when updating detector size, binaries in

This commit is contained in:
maliakal_d 2021-08-20 14:03:43 +02:00
parent 9158a3c8b0
commit b37db1de72
6 changed files with 15 additions and 10 deletions

View File

@ -55,10 +55,10 @@ char *digitalData = 0;
char volatile *analogDataPtr = 0;
char volatile *digitalDataPtr = 0;
char udpPacketData[UDP_PACKET_DATA_BYTES + sizeof(sls_detector_header)];
uint32_t adcEnableMask_1g = 0;
uint32_t adcEnableMask_1g = BIT32_MSK;
// 10g readout
uint8_t adcEnableMask_10g = 0;
uint8_t adcEnableMask_10g = BIT32_MSK;
int32_t clkPhase[NUM_CLOCKS] = {};
uint32_t clkFrequency[NUM_CLOCKS] = {40, 20, 20, 200};
@ -470,8 +470,8 @@ void setupDetector() {
}
vLimit = DEFAULT_VLIMIT;
highvoltage = 0;
adcEnableMask_1g = 0;
adcEnableMask_10g = 0;
adcEnableMask_1g = BIT32_MSK;
adcEnableMask_10g = BIT32_MSK;
analogEnable = 1;
digitalEnable = 0;
naSamples = 1;

View File

@ -53,10 +53,10 @@ char *digitalData = 0;
char volatile *analogDataPtr = 0;
char volatile *digitalDataPtr = 0;
char udpPacketData[UDP_PACKET_DATA_BYTES + sizeof(sls_detector_header)];
uint32_t adcEnableMask_1g = 0;
uint32_t adcEnableMask_1g = BIT32_MSK;
// 10g readout
uint8_t adcEnableMask_10g = 0;
uint8_t adcEnableMask_10g = BIT32_MSK;
int32_t clkPhase[NUM_CLOCKS] = {};
uint32_t clkFrequency[NUM_CLOCKS] = {40, 20, 20, 200};
@ -480,8 +480,8 @@ void setupDetector() {
dacValues[i] = -1;
vLimit = DEFAULT_VLIMIT;
highvoltage = 0;
adcEnableMask_1g = 0;
adcEnableMask_10g = 0;
adcEnableMask_1g = BIT32_MSK;
adcEnableMask_10g = BIT32_MSK;
nSamples = 1;
#ifdef VIRTUAL
sharedMemory_setStatus(IDLE);

View File

@ -290,6 +290,11 @@ void DetectorImpl::updateDetectorSize() {
LOG(logDEBUG) << "Updating Multi-Detector Size: " << size();
const slsDetectorDefs::xy det_size = detectors[0]->getNumberOfChannels();
if (det_size.x == 0 || det_size.y == 0) {
throw sls::RuntimeError("Module size for x or y dimensions is 0. Unable to proceed in updating detector size. ");
}
int maxx = multi_shm()->numberOfChannels.x;
int maxy = multi_shm()->numberOfChannels.y;
int ndetx = 0, ndety = 0;

View File

@ -4,10 +4,10 @@
#define APILIB 0x210816
#define APIRECEIVER 0x210816
#define APIGUI 0x210816
#define APICTB 0x210820
#define APIGOTTHARD 0x210820
#define APIGOTTHARD2 0x210820
#define APIJUNGFRAU 0x210820
#define APIMYTHEN3 0x210820
#define APIMOENCH 0x210819
#define APIEIGER 0x210820
#define APICTB 0x210820
#define APIMOENCH 0x210820