mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-23 23:10:02 +02:00
temp in between, trying to get 4 bitmode to work without gap pixels
This commit is contained in:
parent
7f9ac86862
commit
9c82a8f726
@ -5791,9 +5791,7 @@ int multiSlsDetector::getData(const int isocket, char* image, const int size,
|
|||||||
|
|
||||||
void multiSlsDetector::readFrameFromReceiver(){
|
void multiSlsDetector::readFrameFromReceiver(){
|
||||||
|
|
||||||
//determine number of half readouts and maxX and maxY
|
//determine number of sockets
|
||||||
int maxX=thisMultiDetector->numberOfChannelInclGapPixels[X];
|
|
||||||
int maxY=thisMultiDetector->numberOfChannelInclGapPixels[Y];
|
|
||||||
int numSockets = thisMultiDetector->numberOfDetectors;
|
int numSockets = thisMultiDetector->numberOfDetectors;
|
||||||
int numSocketsPerSLSDetector = 1;
|
int numSocketsPerSLSDetector = 1;
|
||||||
bool jungfrau = false;
|
bool jungfrau = false;
|
||||||
@ -5822,12 +5820,17 @@ void multiSlsDetector::readFrameFromReceiver(){
|
|||||||
int slsdatabytes = 0, slsmaxchannels = 0, slsmaxX = 0, slsmaxY=0;
|
int slsdatabytes = 0, slsmaxchannels = 0, slsmaxX = 0, slsmaxY=0;
|
||||||
double bytesperchannel = 0;
|
double bytesperchannel = 0;
|
||||||
if(detectors[0]){
|
if(detectors[0]){
|
||||||
slsdatabytes = detectors[0]->getDataBytesInclGapPixels();
|
|
||||||
slsmaxchannels = (detectors[0]->getMaxNumberOfChannelsInclGapPixels(X)*detectors[0]->getMaxNumberOfChannelsInclGapPixels(Y));
|
|
||||||
bytesperchannel = (double)slsdatabytes/(double)slsmaxchannels;
|
bytesperchannel = (double)slsdatabytes/(double)slsmaxchannels;
|
||||||
slsmaxX = detectors[0]->getTotalNumberOfChannelsInclGapPixels(X);
|
slsdatabytes = (bytesperchannel < 1) ? detectors[0]->getDataBytes() : detectors[0]->getDataBytesInclGapPixels();
|
||||||
slsmaxY = detectors[0]->getTotalNumberOfChannelsInclGapPixels(Y);
|
slsmaxchannels = (bytesperchannel < 1) ? (detectors[0]->getMaxNumberOfChannels(X) * detectors[0]->getMaxNumberOfChannels(Y)) :
|
||||||
|
(detectors[0]->getMaxNumberOfChannelsInclGapPixels(X)*detectors[0]->getMaxNumberOfChannelsInclGapPixels(Y));
|
||||||
|
slsmaxX = (bytesperchannel < 1) ? detectors[0]->getTotalNumberOfChannels(X) : detectors[0]->getTotalNumberOfChannelsInclGapPixels(X);
|
||||||
|
slsmaxY = (bytesperchannel < 1) ? detectors[0]->getTotalNumberOfChannels(Y) : detectors[0]->getTotalNumberOfChannelsInclGapPixels(Y);
|
||||||
}
|
}
|
||||||
|
// max channel values
|
||||||
|
int maxX = (bytesperchannel < 1) ? thisMultiDetector->numberOfChannel[X] : thisMultiDetector->numberOfChannelInclGapPixels[X];
|
||||||
|
int maxY = (bytesperchannel < 1) ? thisMultiDetector->numberOfChannel[Y] : thisMultiDetector->numberOfChannelInclGapPixels[Y];
|
||||||
|
int multidatabytes = (bytesperchannel < 1) ? thisMultiDetector->dataBytes : thisMultiDetector->dataBytesInclGapPixels;
|
||||||
|
|
||||||
//getting multi values
|
//getting multi values
|
||||||
//calculating offsets (for eiger interleaving ports)
|
//calculating offsets (for eiger interleaving ports)
|
||||||
@ -5848,10 +5851,10 @@ void multiSlsDetector::readFrameFromReceiver(){
|
|||||||
|
|
||||||
int expectedslssize = slsdatabytes/numSocketsPerSLSDetector;
|
int expectedslssize = slsdatabytes/numSocketsPerSLSDetector;
|
||||||
char* image = new char[expectedslssize]();
|
char* image = new char[expectedslssize]();
|
||||||
char* multiframe = new char[thisMultiDetector->dataBytesInclGapPixels]();
|
char* multiframe = new char[multidatabytes]();
|
||||||
char* multiframegain = NULL;
|
char* multiframegain = NULL;
|
||||||
if (jungfrau)
|
if (jungfrau)
|
||||||
multiframegain = new char[thisMultiDetector->dataBytesInclGapPixels]();
|
multiframegain = new char[multidatabytes]();
|
||||||
|
|
||||||
int nch;
|
int nch;
|
||||||
|
|
||||||
@ -5933,8 +5936,11 @@ void multiSlsDetector::readFrameFromReceiver(){
|
|||||||
|
|
||||||
//send data to callback
|
//send data to callback
|
||||||
if(running){
|
if(running){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(dataReady) {
|
if(dataReady) {
|
||||||
thisData = new detectorData(NULL,NULL,NULL,getCurrentProgress(),currentFileName.c_str(),maxX,maxY,multiframe, thisMultiDetector->dataBytesInclGapPixels);
|
thisData = new detectorData(NULL,NULL,NULL,getCurrentProgress(),currentFileName.c_str(),maxX,maxY,multiframe, multidatabytes);
|
||||||
dataReady(thisData, currentFrameIndex, currentSubFrameIndex, pCallbackArg);
|
dataReady(thisData, currentFrameIndex, currentSubFrameIndex, pCallbackArg);
|
||||||
delete thisData;
|
delete thisData;
|
||||||
//cout<<"Send frame #"<< currentFrameIndex << " to gui"<<endl;
|
//cout<<"Send frame #"<< currentFrameIndex << " to gui"<<endl;
|
||||||
|
@ -2014,22 +2014,26 @@ int slsDetector::enableGapPixels(int val) {
|
|||||||
val=(val>0)?1:0;
|
val=(val>0)?1:0;
|
||||||
|
|
||||||
// send to receiver
|
// send to receiver
|
||||||
int retval=-1;
|
int ret=OK;
|
||||||
int fnum=F_ENABLE_GAPPIXELS_IN_RECEIVER;
|
|
||||||
int ret=FAIL;
|
|
||||||
int arg=val;
|
|
||||||
if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) {
|
|
||||||
if (connectData() == OK){
|
|
||||||
ret=thisReceiver->sendInt(fnum,retval,arg);
|
|
||||||
disconnectData();
|
|
||||||
}
|
|
||||||
if((arg != retval) || (ret==FAIL)){
|
|
||||||
ret = FAIL;
|
|
||||||
setErrorMask((getErrorMask())|(RECEIVER_ENABLE_GAPPIXELS_NOT_SET));
|
|
||||||
}
|
|
||||||
|
|
||||||
if(ret==FORCE_UPDATE)
|
if (thisDetector->dynamicRange != 4) {
|
||||||
updateReceiver();
|
ret = FAIL;
|
||||||
|
int retval=-1;
|
||||||
|
int fnum=F_ENABLE_GAPPIXELS_IN_RECEIVER;
|
||||||
|
int arg=val;
|
||||||
|
if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) {
|
||||||
|
if (connectData() == OK){
|
||||||
|
ret=thisReceiver->sendInt(fnum,retval,arg);
|
||||||
|
disconnectData();
|
||||||
|
}
|
||||||
|
if((arg != retval) || (ret==FAIL)){
|
||||||
|
ret = FAIL;
|
||||||
|
setErrorMask((getErrorMask())|(RECEIVER_ENABLE_GAPPIXELS_NOT_SET));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ret==FORCE_UPDATE)
|
||||||
|
updateReceiver();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update client
|
// update client
|
||||||
|
Loading…
x
Reference in New Issue
Block a user