diff --git a/slsDetectorGui/forms/form_tab_advanced.ui b/slsDetectorGui/forms/form_tab_advanced.ui
index 1de156a38..227ecd3e6 100644
--- a/slsDetectorGui/forms/form_tab_advanced.ui
+++ b/slsDetectorGui/forms/form_tab_advanced.ui
@@ -51,7 +51,7 @@
QTabWidget::North
- 3
+ 1
Qt::ElideLeft
@@ -77,7 +77,7 @@
25
20
- 313
+ 320
31
@@ -124,7 +124,7 @@
5
10
- 746
+ 467
66
@@ -140,9 +140,9 @@
- 510
+ 230
15
- 211
+ 228
44
@@ -169,7 +169,7 @@ Updates plot with Trimbits from Shared Memory, not from Detector.
- 16
+ 24
16
@@ -740,6 +740,54 @@ An extension given by the modules serial number will be attached.
+
+
+ false
+
+
+
+ 518
+ 10
+ 233
+ 66
+
+
+
+ Developer Option
+
+
+ false
+
+
+ false
+
+
+
+
+ 12
+ 28
+ 94
+ 16
+
+
+
+ Set All trimbits:
+
+
+
+
+
+ 121
+ 24
+ 86
+ 25
+
+
+
+ 63
+
+
+
@@ -931,7 +979,7 @@ An extension given by the modules serial number will be attached.
- -1
+ 6
-
@@ -1218,7 +1266,7 @@ An extension given by the modules serial number will be attached.
- -1
+ 6
-
diff --git a/slsDetectorGui/include/qTabAdvanced.h b/slsDetectorGui/include/qTabAdvanced.h
index f6e75ca79..05bde9ccf 100644
--- a/slsDetectorGui/include/qTabAdvanced.h
+++ b/slsDetectorGui/include/qTabAdvanced.h
@@ -63,6 +63,10 @@ private:
*/
int validateBeforeTrimming();
+ /** update the setalltrimbits value from server
+ */
+ void updateAllTrimbitsFromServer();
+
private slots:
@@ -172,6 +176,10 @@ private slots:
*/
void SetDetector(int index);
+ /** Set all trimbits to a value
+ */
+ void SetAllTrimbits();
+
private:
/** The multi detector object */
multiSlsDetector *myDet;
diff --git a/slsDetectorGui/src/qTabAdvanced.cpp b/slsDetectorGui/src/qTabAdvanced.cpp
index b1dfed070..2e141bfe5 100644
--- a/slsDetectorGui/src/qTabAdvanced.cpp
+++ b/slsDetectorGui/src/qTabAdvanced.cpp
@@ -58,6 +58,7 @@ void qTabAdvanced::SetupWidgetWindow(){
dispIP->setEnabled(false);
dispMAC->setEnabled(false);
boxRxr->setEnabled(false);
+ boxSetAllTrimbits->setEnabled(false);
red = QPalette();
@@ -73,7 +74,10 @@ void qTabAdvanced::SetupWidgetWindow(){
detType = myDet->getDetectorsType();
switch(detType){
- case slsDetectorDefs::MYTHEN: isEnergy = true; isAngular = true; break;
+ case slsDetectorDefs::MYTHEN:
+ isEnergy = true;
+ isAngular = true;
+ break;
case slsDetectorDefs::EIGER:
isEnergy = true;
isAngular = false;
@@ -82,6 +86,7 @@ void qTabAdvanced::SetupWidgetWindow(){
dispIP->setEnabled(true);
dispMAC->setEnabled(true);
boxRxr->setEnabled(true);
+ boxSetAllTrimbits->setEnabled(true);
break;
case slsDetectorDefs::MOENCH:
isEnergy = false;
@@ -177,7 +182,6 @@ void qTabAdvanced::SetupWidgetWindow(){
cout << "Getting ROI" << endl;
updateROIList();
-
// print receiver configurations
if(myDet->getDetectorsType() != slsDetectorDefs::MYTHEN){
cout << endl;
@@ -216,6 +220,10 @@ void qTabAdvanced::Initialization(){
connect(dispFile, SIGNAL(editingFinished()), this, SLOT(SetOutputFile()));
connect(btnFile, SIGNAL(clicked()), this, SLOT(BrowseOutputFile()));
+ //setalltrimbits
+ if(boxSetAllTrimbits->isEnabled())
+ connect(spinSetAllTrimbits, SIGNAL(editingFinished()), this, SLOT(SetAllTrimbits()));
+
//enable trimming method group box
connect(boxTrimming, SIGNAL(toggled(bool)), this, SLOT(EnableTrimming(bool)));
@@ -1088,6 +1096,45 @@ void qTabAdvanced::SetDetector(int index){
//-------------------------------------------------------------------------------------------------------------------------------------------------
+void qTabAdvanced::SetAllTrimbits(){
+#ifdef VERBOSE
+ cout<<"Set all trimbits to " << spinSetAllTrimbits->value() << endl;
+#endif
+ myDet->setAllTrimbits(spinSetAllTrimbits->value());
+ qDefs::checkErrorMessage(myDet,"qTabAdvanced::SetAllTrimbits");
+ updateAllTrimbitsFromServer();
+
+}
+
+
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+void qTabAdvanced::updateAllTrimbitsFromServer(){
+#ifdef VERBOSE
+ cout<<"Getting all trimbits value" << endl;
+#endif
+ disconnect(spinSetAllTrimbits, SIGNAL(editingFinished()), this, SLOT(SetAllTrimbits()));
+
+ int ret = myDet->setAllTrimbits(-1);
+ qDefs::checkErrorMessage(myDet,"qTabAdvanced::updateAllTrimbitsFromServer");
+ if(ret<0){
+ qDefs::Message(qDefs::WARNING,"Inconsistent value from alltrimbits value.\n"
+ "Setting it for all detectors involved to 0.","qTabAdvanced::updateAllTrimbitsFromServer");
+ //set to default
+ spinSetAllTrimbits->setValue(0);
+ myDet->setAllTrimbits(0);
+ qDefs::checkErrorMessage(myDet,"qTabAdvanced::updateAllTrimbitsFromServer");
+ }else
+ spinSetAllTrimbits->setValue(ret);
+
+ connect(spinSetAllTrimbits, SIGNAL(editingFinished()), this, SLOT(SetAllTrimbits()));
+}
+
+
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+
+
void qTabAdvanced::Refresh(){
@@ -1261,6 +1308,9 @@ void qTabAdvanced::Refresh(){
#endif
updateROIList();
+ //update alltirmbits from server
+ if(boxSetAllTrimbits->isEnabled())
+ updateAllTrimbitsFromServer();
#ifdef VERBOSE
cout << "**Updated Advanced Tab" << endl << endl;