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

View File

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

View File

@ -290,6 +290,11 @@ void DetectorImpl::updateDetectorSize() {
LOG(logDEBUG) << "Updating Multi-Detector Size: " << size(); LOG(logDEBUG) << "Updating Multi-Detector Size: " << size();
const slsDetectorDefs::xy det_size = detectors[0]->getNumberOfChannels(); 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 maxx = multi_shm()->numberOfChannels.x;
int maxy = multi_shm()->numberOfChannels.y; int maxy = multi_shm()->numberOfChannels.y;
int ndetx = 0, ndety = 0; int ndetx = 0, ndety = 0;

View File

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