From 4d9bbeecc3c2f6a55ae89cc4f9d359822611a2a5 Mon Sep 17 00:00:00 2001 From: Maliakal Dhanya Date: Wed, 2 Jul 2014 10:57:03 +0200 Subject: [PATCH] eiger receiver, receiving many packets at a time, with 16,8, 4 bitmode sort of working --- slsDetectorGui/include/qTabSettings.h | 5 +- slsDetectorGui/src/qTabDeveloper.cpp | 5 +- slsDetectorGui/src/qTabMeasurement.cpp | 34 +++++------ slsDetectorGui/src/qTabSettings.cpp | 80 +++++++++++++------------- 4 files changed, 66 insertions(+), 58 deletions(-) diff --git a/slsDetectorGui/include/qTabSettings.h b/slsDetectorGui/include/qTabSettings.h index e397c606f..e66afedf3 100644 --- a/slsDetectorGui/include/qTabSettings.h +++ b/slsDetectorGui/include/qTabSettings.h @@ -76,7 +76,10 @@ private: */ 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); diff --git a/slsDetectorGui/src/qTabDeveloper.cpp b/slsDetectorGui/src/qTabDeveloper.cpp index 2d88854ee..16091379a 100644 --- a/slsDetectorGui/src/qTabDeveloper.cpp +++ b/slsDetectorGui/src/qTabDeveloper.cpp @@ -88,7 +88,7 @@ void qTabDeveloper::SetupWidgetWindow(){ dacNames.push_back("v Vtgstv:"); dacNames.push_back("v Vcmp_ll:"); 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 rxb_rb:"); dacNames.push_back("v rxb_lb:"); @@ -260,7 +260,8 @@ void qTabDeveloper::SetDacValues(int id){ #ifdef VERBOSE cout << "Setting dac:" << dacNames[id] << " : " << spinDacs[id]->value() << endl; #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"); } diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp index 0b3858326..5e6952b56 100644 --- a/slsDetectorGui/src/qTabMeasurement.cpp +++ b/slsDetectorGui/src/qTabMeasurement.cpp @@ -139,8 +139,8 @@ void qTabMeasurement::SetupTimingMode(){ item[(int)Gated_Start]->setEnabled(true); break; case slsDetectorDefs::EIGER: - item[(int)Trigger_Exp_Series]->setEnabled(false);/**not implemented yet*/ - item[(int)Trigger_Readout]->setEnabled(false); + item[(int)Trigger_Exp_Series]->setEnabled(true); + item[(int)Trigger_Readout]->setEnabled(true); item[(int)Gated]->setEnabled(true); item[(int)Gated_Start]->setEnabled(false); break; @@ -638,36 +638,38 @@ void qTabMeasurement::SetTimingMode(int mode){ if(myDet->setExternalCommunicationMode(slsDetectorDefs::AUTO_TIMING)==slsDetectorDefs::AUTO_TIMING) success = true; break; - case Trigger_Exp_Series://#Frames, #Triggers, ExpTime, Period, Delay - if(detType == slsDetectorDefs::EIGER)//more than 1 frame per trigger yet to be implemented - spinNumFrames->setValue(1); + case Trigger_Exp_Series://#(Frames), #Triggers, ExpTime, Period, (Delay) + if(detType == slsDetectorDefs::EIGER) //only 1 frame for each trigger for eiger + spinNumFrames->setValue(1); 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); - lblPeriod->setEnabled(true); spinPeriod->setEnabled(true); comboPeriodUnit->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) success = true; 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); lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true); lblExpTime->setEnabled(true); spinExpTime->setEnabled(true); comboExpUnit->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) success = true; break; - case Gated://#Frames, #Gates - spinNumTriggers->setValue(1); - if(detType == slsDetectorDefs::EIGER)//more than 1 frame per trigger yet to be implemented - spinNumGates->setValue(1); - else{ - lblNumGates->setEnabled(true); spinNumGates->setEnabled(true); + case Gated://#Frames, #(Gates) + if(detType != slsDetectorDefs::EIGER){ + lblNumGates->setEnabled(true); spinNumGates->setEnabled(true); } + spinNumTriggers->setValue(1); lblNumFrames->setEnabled(true); spinNumFrames->setEnabled(true); + + if(myDet->setExternalCommunicationMode(slsDetectorDefs::GATE_FIX_NUMBER)==slsDetectorDefs::GATE_FIX_NUMBER) success = true; break; diff --git a/slsDetectorGui/src/qTabSettings.cpp b/slsDetectorGui/src/qTabSettings.cpp index b78e6b2cb..e886bc9ba 100644 --- a/slsDetectorGui/src/qTabSettings.cpp +++ b/slsDetectorGui/src/qTabSettings.cpp @@ -23,8 +23,6 @@ qTabSettings::qTabSettings(QWidget *parent,multiSlsDetector*& detector): item[i]=0; setupUi(this); SetupWidgetWindow(); - Initialization(); - } //------------------------------------------------------------------------------------------------------------------------------------------------- @@ -54,21 +52,52 @@ void qTabSettings::SetupWidgetWindow(){ spinNumModules->setMaximum(myDet->getMaxNumberOfModules()); spinNumModules->setValue(myDet->setNumberOfModules()); + Initialization(); + // 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:"<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::SetupWidgetWindow"); + connect(comboDynamicRange, SIGNAL(activated(int)), this, SLOT(SetDynamicRange(int))); } + //------------------------------------------------------------------------------------------------------------------------------------------------- + void qTabSettings::SetupDetectorSettings(){ // Get detector settings from detector slsDetectorDefs::detectorSettings sett = myDet->getSettings(); @@ -200,34 +229,20 @@ void qTabSettings::SetNumberOfModules(int index){ void qTabSettings::SetDynamicRange(int index){ - int ret,dr; + int dr; switch (index) { - case 0: dr=32; break; + case 0: dr=32; break; case 1: dr=16; break; case 2: dr=8; break; case 3: dr=4; break; default: dr=32; break; } - ret=myDet->setDynamicRange(dr); - if((ret==24)&&(dr==32)) dr = ret; + myDet->setDynamicRange(dr); #ifdef VERBOSE cout << "Setting dynamic range to "<< dr << endl; #endif - if(ret!=dr){ - 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 - 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; - } - } - + //check + GetDynamicRange(dr); qDefs::checkErrorMessage(myDet,"qTabSettings::SetDynamicRange"); } @@ -263,7 +278,6 @@ void qTabSettings::Refresh(){ disconnect(comboSettings, SIGNAL(currentIndexChanged(int)), this, SLOT(setSettings(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())); @@ -278,18 +292,7 @@ void qTabSettings::Refresh(){ spinNumModules->setValue(numMod); // Dynamic Range -#ifdef VERBOSE - 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; - } - + GetDynamicRange(); // Settings #ifdef VERBOSE @@ -319,7 +322,6 @@ void qTabSettings::Refresh(){ connect(comboSettings, SIGNAL(currentIndexChanged(int)), this, SLOT(setSettings(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())); #ifdef VERBOSE