mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-23 15:00:02 +02:00
eiger receiver, receiving many packets at a time, with 16,8, 4 bitmode sort of working
This commit is contained in:
parent
b256e0b9e3
commit
4d9bbeecc3
@ -76,7 +76,10 @@ private:
|
|||||||
*/
|
*/
|
||||||
void Initialization();
|
void Initialization();
|
||||||
|
|
||||||
|
/** Gets the dynamic range and sets it on the gui
|
||||||
|
* @param setvalue the value set by the gui when used as a check
|
||||||
|
*/
|
||||||
|
void GetDynamicRange(int setvalue = -1);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ void qTabDeveloper::SetupWidgetWindow(){
|
|||||||
dacNames.push_back("v Vtgstv:");
|
dacNames.push_back("v Vtgstv:");
|
||||||
dacNames.push_back("v Vcmp_ll:");
|
dacNames.push_back("v Vcmp_ll:");
|
||||||
dacNames.push_back("v Vcmp_lr:");
|
dacNames.push_back("v Vcmp_lr:");
|
||||||
dacNames.push_back("i cal:");
|
dacNames.push_back("v cal:");
|
||||||
dacNames.push_back("v Vcmp_rl:");
|
dacNames.push_back("v Vcmp_rl:");
|
||||||
dacNames.push_back("v rxb_rb:");
|
dacNames.push_back("v rxb_rb:");
|
||||||
dacNames.push_back("v rxb_lb:");
|
dacNames.push_back("v rxb_lb:");
|
||||||
@ -260,7 +260,8 @@ void qTabDeveloper::SetDacValues(int id){
|
|||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
cout << "Setting dac:" << dacNames[id] << " : " << spinDacs[id]->value() << endl;
|
cout << "Setting dac:" << dacNames[id] << " : " << spinDacs[id]->value() << endl;
|
||||||
#endif
|
#endif
|
||||||
spinDacs[id]->setValue((double)myDet->setDAC((dacs_t)spinDacs[id]->value(),getSLSIndex(id)));
|
//spinDacs[id]->setValue((double)myDet->setDAC((dacs_t)spinDacs[id]->value(),getSLSIndex(id)));
|
||||||
|
myDet->setDAC((dacs_t)spinDacs[id]->value(),getSLSIndex(id));
|
||||||
|
|
||||||
qDefs::checkErrorMessage(myDet,"qTabDeveloper::SetDacValues");
|
qDefs::checkErrorMessage(myDet,"qTabDeveloper::SetDacValues");
|
||||||
}
|
}
|
||||||
|
@ -139,8 +139,8 @@ void qTabMeasurement::SetupTimingMode(){
|
|||||||
item[(int)Gated_Start]->setEnabled(true);
|
item[(int)Gated_Start]->setEnabled(true);
|
||||||
break;
|
break;
|
||||||
case slsDetectorDefs::EIGER:
|
case slsDetectorDefs::EIGER:
|
||||||
item[(int)Trigger_Exp_Series]->setEnabled(false);/**not implemented yet*/
|
item[(int)Trigger_Exp_Series]->setEnabled(true);
|
||||||
item[(int)Trigger_Readout]->setEnabled(false);
|
item[(int)Trigger_Readout]->setEnabled(true);
|
||||||
item[(int)Gated]->setEnabled(true);
|
item[(int)Gated]->setEnabled(true);
|
||||||
item[(int)Gated_Start]->setEnabled(false);
|
item[(int)Gated_Start]->setEnabled(false);
|
||||||
break;
|
break;
|
||||||
@ -638,36 +638,38 @@ void qTabMeasurement::SetTimingMode(int mode){
|
|||||||
if(myDet->setExternalCommunicationMode(slsDetectorDefs::AUTO_TIMING)==slsDetectorDefs::AUTO_TIMING)
|
if(myDet->setExternalCommunicationMode(slsDetectorDefs::AUTO_TIMING)==slsDetectorDefs::AUTO_TIMING)
|
||||||
success = true;
|
success = true;
|
||||||
break;
|
break;
|
||||||
case Trigger_Exp_Series://#Frames, #Triggers, ExpTime, Period, Delay
|
case Trigger_Exp_Series://#(Frames), #Triggers, ExpTime, Period, (Delay)
|
||||||
if(detType == slsDetectorDefs::EIGER)//more than 1 frame per trigger yet to be implemented
|
if(detType == slsDetectorDefs::EIGER) //only 1 frame for each trigger for eiger
|
||||||
spinNumFrames->setValue(1);
|
spinNumFrames->setValue(1);
|
||||||
else{
|
else{
|
||||||
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
|
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
|
||||||
|
lblDelay->setEnabled(true); spinDelay->setEnabled(true); comboDelayUnit->setEnabled(true);
|
||||||
|
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
|
||||||
}
|
}
|
||||||
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
|
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
|
||||||
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
|
|
||||||
lblNumTriggers->setEnabled(true); spinNumTriggers->setEnabled(true);
|
lblNumTriggers->setEnabled(true); spinNumTriggers->setEnabled(true);
|
||||||
lblDelay->setEnabled(true); spinDelay->setEnabled(true); comboDelayUnit->setEnabled(true);
|
|
||||||
if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_EXPOSURE)==slsDetectorDefs::TRIGGER_EXPOSURE)
|
if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_EXPOSURE)==slsDetectorDefs::TRIGGER_EXPOSURE)
|
||||||
success = true;
|
success = true;
|
||||||
break;
|
break;
|
||||||
case Trigger_Readout://#Frames, ExpTime, Period, Delay
|
case Trigger_Readout://#Frames, ExpTime, Period, (Delay)
|
||||||
|
if(detType != slsDetectorDefs::EIGER){
|
||||||
|
lblDelay->setEnabled(true); spinDelay->setEnabled(true); comboDelayUnit->setEnabled(true);
|
||||||
|
}
|
||||||
spinNumTriggers->setValue(1);
|
spinNumTriggers->setValue(1);
|
||||||
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
|
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
|
||||||
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
|
lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->setEnabled(true);
|
||||||
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
|
lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->setEnabled(true);
|
||||||
lblDelay->setEnabled(true); spinDelay->setEnabled(true); comboDelayUnit->setEnabled(true);
|
|
||||||
if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_READOUT)==slsDetectorDefs::TRIGGER_READOUT)
|
if(myDet->setExternalCommunicationMode(slsDetectorDefs::TRIGGER_READOUT)==slsDetectorDefs::TRIGGER_READOUT)
|
||||||
success = true;
|
success = true;
|
||||||
break;
|
break;
|
||||||
case Gated://#Frames, #Gates
|
case Gated://#Frames, #(Gates)
|
||||||
spinNumTriggers->setValue(1);
|
if(detType != slsDetectorDefs::EIGER){
|
||||||
if(detType == slsDetectorDefs::EIGER)//more than 1 frame per trigger yet to be implemented
|
lblNumGates->setEnabled(true); spinNumGates->setEnabled(true);
|
||||||
spinNumGates->setValue(1);
|
|
||||||
else{
|
|
||||||
lblNumGates->setEnabled(true); spinNumGates->setEnabled(true);
|
|
||||||
}
|
}
|
||||||
|
spinNumTriggers->setValue(1);
|
||||||
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
|
lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true);
|
||||||
|
|
||||||
|
|
||||||
if(myDet->setExternalCommunicationMode(slsDetectorDefs::GATE_FIX_NUMBER)==slsDetectorDefs::GATE_FIX_NUMBER)
|
if(myDet->setExternalCommunicationMode(slsDetectorDefs::GATE_FIX_NUMBER)==slsDetectorDefs::GATE_FIX_NUMBER)
|
||||||
success = true;
|
success = true;
|
||||||
break;
|
break;
|
||||||
|
@ -23,8 +23,6 @@ qTabSettings::qTabSettings(QWidget *parent,multiSlsDetector*& detector):
|
|||||||
item[i]=0;
|
item[i]=0;
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
SetupWidgetWindow();
|
SetupWidgetWindow();
|
||||||
Initialization();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
@ -54,21 +52,52 @@ void qTabSettings::SetupWidgetWindow(){
|
|||||||
spinNumModules->setMaximum(myDet->getMaxNumberOfModules());
|
spinNumModules->setMaximum(myDet->getMaxNumberOfModules());
|
||||||
spinNumModules->setValue(myDet->setNumberOfModules());
|
spinNumModules->setValue(myDet->setNumberOfModules());
|
||||||
|
|
||||||
|
Initialization();
|
||||||
|
|
||||||
// Dynamic Range
|
// Dynamic Range
|
||||||
switch(myDet->setDynamicRange(-1)){
|
GetDynamicRange();
|
||||||
|
|
||||||
|
qDefs::checkErrorMessage(myDet,"qTabSettings::SetupWidgetWindow");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
void qTabSettings::GetDynamicRange(int setvalue){
|
||||||
|
#ifdef VERBOSE
|
||||||
|
cout << "Getting dynamic range" << endl;
|
||||||
|
#endif
|
||||||
|
int ret = myDet->setDynamicRange(-1);
|
||||||
|
if(detType == slsDetectorDefs::MYTHEN)
|
||||||
|
if(ret==24)
|
||||||
|
ret=32;
|
||||||
|
else if(ret==24)
|
||||||
|
cout<<"ret:"<<ret<<endl;
|
||||||
|
//check if the set value is equal to return value
|
||||||
|
if((setvalue!=-1) && (setvalue!=ret)){
|
||||||
|
qDefs::Message(qDefs::WARNING,"Dynamic Range cannot be set to this value.","qTabSettings::SetDynamicRange");
|
||||||
|
#ifdef VERBOSE
|
||||||
|
cout << "ERROR: Setting dynamic range to "<< ret << endl;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
//set the final value on gui
|
||||||
|
disconnect(comboDynamicRange, SIGNAL(activated(int)), this, SLOT(SetDynamicRange(int)));
|
||||||
|
switch(ret){
|
||||||
case 32: comboDynamicRange->setCurrentIndex(0); break;
|
case 32: comboDynamicRange->setCurrentIndex(0); break;
|
||||||
case 24: comboDynamicRange->setCurrentIndex(0); break;
|
|
||||||
case 16: comboDynamicRange->setCurrentIndex(1); break;
|
case 16: comboDynamicRange->setCurrentIndex(1); break;
|
||||||
case 8: comboDynamicRange->setCurrentIndex(2); break;
|
case 8: comboDynamicRange->setCurrentIndex(2); break;
|
||||||
case 4: comboDynamicRange->setCurrentIndex(3); break;
|
case 4: comboDynamicRange->setCurrentIndex(3); break;
|
||||||
default: comboDynamicRange->setCurrentIndex(0); break;
|
default: comboDynamicRange->setCurrentIndex(0); break;
|
||||||
}
|
}
|
||||||
|
connect(comboDynamicRange, SIGNAL(activated(int)), this, SLOT(SetDynamicRange(int)));
|
||||||
qDefs::checkErrorMessage(myDet,"qTabSettings::SetupWidgetWindow");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
void qTabSettings::SetupDetectorSettings(){
|
void qTabSettings::SetupDetectorSettings(){
|
||||||
// Get detector settings from detector
|
// Get detector settings from detector
|
||||||
slsDetectorDefs::detectorSettings sett = myDet->getSettings();
|
slsDetectorDefs::detectorSettings sett = myDet->getSettings();
|
||||||
@ -200,34 +229,20 @@ void qTabSettings::SetNumberOfModules(int index){
|
|||||||
|
|
||||||
|
|
||||||
void qTabSettings::SetDynamicRange(int index){
|
void qTabSettings::SetDynamicRange(int index){
|
||||||
int ret,dr;
|
int dr;
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0: dr=32; break;
|
case 0: dr=32; break;
|
||||||
case 1: dr=16; break;
|
case 1: dr=16; break;
|
||||||
case 2: dr=8; break;
|
case 2: dr=8; break;
|
||||||
case 3: dr=4; break;
|
case 3: dr=4; break;
|
||||||
default: dr=32; break;
|
default: dr=32; break;
|
||||||
}
|
}
|
||||||
ret=myDet->setDynamicRange(dr);
|
myDet->setDynamicRange(dr);
|
||||||
if((ret==24)&&(dr==32)) dr = ret;
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
cout << "Setting dynamic range to "<< dr << endl;
|
cout << "Setting dynamic range to "<< dr << endl;
|
||||||
#endif
|
#endif
|
||||||
if(ret!=dr){
|
//check
|
||||||
qDefs::Message(qDefs::WARNING,"Dynamic Range cannot be set to this value.","qTabSettings::SetDynamicRange");
|
GetDynamicRange(dr);
|
||||||
#ifdef VERBOSE
|
|
||||||
cout << "ERROR: Setting dynamic range to "<< ret << endl;
|
|
||||||
#endif
|
|
||||||
switch(ret){
|
|
||||||
case 32: comboDynamicRange->setCurrentIndex(0); break;
|
|
||||||
case 24: comboDynamicRange->setCurrentIndex(0); break;
|
|
||||||
case 16: comboDynamicRange->setCurrentIndex(1); break;
|
|
||||||
case 8: comboDynamicRange->setCurrentIndex(2); break;
|
|
||||||
case 4: comboDynamicRange->setCurrentIndex(3); break;
|
|
||||||
default: comboDynamicRange->setCurrentIndex(0); break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
qDefs::checkErrorMessage(myDet,"qTabSettings::SetDynamicRange");
|
qDefs::checkErrorMessage(myDet,"qTabSettings::SetDynamicRange");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -263,7 +278,6 @@ void qTabSettings::Refresh(){
|
|||||||
|
|
||||||
disconnect(comboSettings, SIGNAL(currentIndexChanged(int)), this, SLOT(setSettings(int)));
|
disconnect(comboSettings, SIGNAL(currentIndexChanged(int)), this, SLOT(setSettings(int)));
|
||||||
disconnect(spinNumModules, SIGNAL(valueChanged(int)), this, SLOT(SetNumberOfModules(int)));
|
disconnect(spinNumModules, SIGNAL(valueChanged(int)), this, SLOT(SetNumberOfModules(int)));
|
||||||
disconnect(comboDynamicRange, SIGNAL(activated(int)), this, SLOT(SetDynamicRange(int)));
|
|
||||||
disconnect(spinThreshold, SIGNAL(valueChanged(int)), this, SLOT(SetEnergy()));
|
disconnect(spinThreshold, SIGNAL(valueChanged(int)), this, SLOT(SetEnergy()));
|
||||||
|
|
||||||
|
|
||||||
@ -278,18 +292,7 @@ void qTabSettings::Refresh(){
|
|||||||
spinNumModules->setValue(numMod);
|
spinNumModules->setValue(numMod);
|
||||||
|
|
||||||
// Dynamic Range
|
// Dynamic Range
|
||||||
#ifdef VERBOSE
|
GetDynamicRange();
|
||||||
cout << "Getting dynamic range" << endl;
|
|
||||||
#endif
|
|
||||||
switch(myDet->setDynamicRange(-1)){
|
|
||||||
case 32: comboDynamicRange->setCurrentIndex(0); break;
|
|
||||||
case 24: comboDynamicRange->setCurrentIndex(0); break;
|
|
||||||
case 16: comboDynamicRange->setCurrentIndex(1); break;
|
|
||||||
case 8: comboDynamicRange->setCurrentIndex(2); break;
|
|
||||||
case 4: comboDynamicRange->setCurrentIndex(3); break;
|
|
||||||
default: comboDynamicRange->setCurrentIndex(0); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
@ -319,7 +322,6 @@ void qTabSettings::Refresh(){
|
|||||||
|
|
||||||
connect(comboSettings, SIGNAL(currentIndexChanged(int)), this, SLOT(setSettings(int)));
|
connect(comboSettings, SIGNAL(currentIndexChanged(int)), this, SLOT(setSettings(int)));
|
||||||
connect(spinNumModules, SIGNAL(valueChanged(int)), this, SLOT(SetNumberOfModules(int)));
|
connect(spinNumModules, SIGNAL(valueChanged(int)), this, SLOT(SetNumberOfModules(int)));
|
||||||
connect(comboDynamicRange, SIGNAL(activated(int)), this, SLOT(SetDynamicRange(int)));
|
|
||||||
connect(spinThreshold, SIGNAL(valueChanged(int)), this, SLOT(SetEnergy()));
|
connect(spinThreshold, SIGNAL(valueChanged(int)), this, SLOT(SetEnergy()));
|
||||||
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user