Index: /trunk/FACT++/gui/FactGui.h
===================================================================
--- /trunk/FACT++/gui/FactGui.h	(revision 12405)
+++ /trunk/FACT++/gui/FactGui.h	(revision 12406)
@@ -424,9 +424,10 @@
     DimStampedInfo fDimFscHumidity;
 
+    DimStampedInfo fDimFeedbackDeviation;
+    DimStampedInfo fDimFeedbackReference;
+    DimStampedInfo fDimFeedbackCalibration;
+
     DimStampedInfo fDimBiasVolt;
     DimStampedInfo fDimBiasCurrent;
-
-    DimStampedInfo fDimFeedbackDeviation;
-    DimStampedInfo fDimFeedbackReference;
 
     DimStampedInfo fDimRateScan;
@@ -2608,4 +2609,15 @@
     }
 
+    vector<float> fBiasOffsets;
+
+    void handleFeedbackCalibration(const DimData &d)
+    {
+        if (!CheckSize(d, 2*416*sizeof(float)))
+            return;
+
+        const float *ptr = d.ptr<float>();
+        fBiasOffsets.assign(ptr, ptr+416);
+    }
+
     // ======================= Rate Scan ====================================
 
@@ -2736,7 +2748,21 @@
 
             // FIXME: Display Overcurrent
-            //dat[i] = abs(ptr[entry.hv()])*5000./4096;
-
-            dat[i] = fVecBiasVolt[entry.hv()]*90./4096 - (abs(ptr[entry.hv()])-1000)*5000./4096*5200*1e-6;
+            /*
+            dat[i] = fVecBiasVolt[entry.hv()]*90./4096;
+            double amp = abs(ptr[entry.hv()]);
+            if (fBiasOffsets.size()>0)
+                amp -= fBiasOffsets[entry.hv()];
+            amp *= 5000./4096;
+            amp *= 5200 *1e-6;
+            dat[i] -= amp;
+            */
+
+            dat[i] = abs(ptr[entry.hv()]);
+            if (fBiasOffsets.size()>0)
+                dat[i] -= fBiasOffsets[entry.hv()];
+            dat[i] *= 5000./4096;
+
+            if (entry.group()==1)
+                dat[i] *= 0.92;
 
             fBiasCamA->SetEnable(i, uint16_t(ptr[entry.hv()])!=0x8000);
@@ -3317,4 +3343,7 @@
             return PostInfoHandler(&FactGui::handleFeedbackDeviation);
 
+        if (getInfo()==&fDimFeedbackCalibration)
+            return PostInfoHandler(&FactGui::handleFeedbackCalibration);
+
         if (getInfo()==&fDimRateScan)
             return PostInfoHandler(&FactGui::handleRateScan);
@@ -3622,8 +3651,17 @@
         if (fVecBiasCurrent.size()>0)
         {
-            fBiasCurrent->setValue(abs(fVecBiasCurrent[ihw])*5000./4096);
+            double val = abs(fVecBiasCurrent[ihw]);
+            if (fBiasOffsets.size()>0)
+                val -= fBiasOffsets[ihw];
+            val *= 5000/4096;
+
+            fBiasCurrent->setValue(val);
             SetLedColor(fBiasOverCurrentLed,
                         fVecBiasCurrent[ihw]<0?kLedRed:kLedGreen, Time());
         }
+
+        if (fBiasOffsets.size()>0)
+            fBiasOffset->setValue(fBiasOffsets[ihw]*5000./4096);
+        fBiasOffset->setEnabled(fBiasOffsets.size()>0);
     }
 
@@ -3880,9 +3918,10 @@
         fDimFscHumidity        ("FSC_CONTROL/HUMIDITY",           (void*)NULL, 0, this),
         //-
+        fDimFeedbackDeviation  ("FEEDBACK/DEVIATION",             (void*)NULL, 0, this),
+        fDimFeedbackReference  ("FEEDBACK/REFERENCE",             (void*)NULL, 0, this),
+        fDimFeedbackCalibration("FEEDBACK/CALIBRATION",           (void*)NULL, 0, this),
+        //-
         fDimBiasVolt           ("BIAS_CONTROL/VOLTAGE",           (void*)NULL, 0, this),
         fDimBiasCurrent        ("BIAS_CONTROL/CURRENT",           (void*)NULL, 0, this),
-        //-
-        fDimFeedbackDeviation  ("FEEDBACK/DEVIATION",             (void*)NULL, 0, this),
-        fDimFeedbackReference  ("FEEDBACK/REFERENCE",             (void*)NULL, 0, this),
         //-
         fDimRateScan           ("RATE_SCAN/DATA",                 (void*)NULL, 0, this),
Index: /trunk/FACT++/gui/design.ui
===================================================================
--- /trunk/FACT++/gui/design.ui	(revision 12405)
+++ /trunk/FACT++/gui/design.ui	(revision 12406)
@@ -38,5 +38,5 @@
      <enum>QLayout::SetDefaultConstraint</enum>
     </property>
-    <item row="1" column="0">
+    <item row="0" column="0">
      <widget class="QTabWidget" name="fTabWidget">
       <property name="enabled">
@@ -4179,29 +4179,4 @@
                   <number>0</number>
                  </property>
-                 <item row="5" column="1">
-                  <widget class="QDoubleSpinBox" name="fBiasCurrent">
-                   <property name="sizePolicy">
-                    <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
-                     <horstretch>0</horstretch>
-                     <verstretch>0</verstretch>
-                    </sizepolicy>
-                   </property>
-                   <property name="alignment">
-                    <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-                   </property>
-                   <property name="readOnly">
-                    <bool>true</bool>
-                   </property>
-                   <property name="buttonSymbols">
-                    <enum>QAbstractSpinBox::NoButtons</enum>
-                   </property>
-                   <property name="suffix">
-                    <string> µA</string>
-                   </property>
-                   <property name="maximum">
-                    <double>9999999.000000000000000</double>
-                   </property>
-                  </widget>
-                 </item>
                  <item row="2" column="2">
                   <widget class="QLabel" name="label_233">
@@ -4211,50 +4186,12 @@
                   </widget>
                  </item>
-                 <item row="4" column="2">
+                 <item row="3" column="2">
                   <widget class="QLabel" name="label_234">
                    <property name="text">
-                    <string>current</string>
+                    <string>set value</string>
                    </property>
                   </widget>
                  </item>
-                 <item row="5" column="0">
-                  <widget class="QPushButton" name="fBiasOverCurrentLed">
-                   <property name="enabled">
-                    <bool>true</bool>
-                   </property>
-                   <property name="sizePolicy">
-                    <sizepolicy hsizetype="Fixed" vsizetype="Minimum">
-                     <horstretch>0</horstretch>
-                     <verstretch>0</verstretch>
-                    </sizepolicy>
-                   </property>
-                   <property name="maximumSize">
-                    <size>
-                     <width>18</width>
-                     <height>16777215</height>
-                    </size>
-                   </property>
-                   <property name="text">
-                    <string/>
-                   </property>
-                   <property name="icon">
-                    <iconset resource="design.qrc">
-                     <normaloff>:/Resources/icons/gray circle 1.png</normaloff>:/Resources/icons/gray circle 1.png</iconset>
-                   </property>
-                   <property name="iconSize">
-                    <size>
-                     <width>16</width>
-                     <height>16</height>
-                    </size>
-                   </property>
-                   <property name="checkable">
-                    <bool>false</bool>
-                   </property>
-                   <property name="flat">
-                    <bool>true</bool>
-                   </property>
-                  </widget>
-                 </item>
-                 <item row="4" column="0">
+                 <item row="3" column="0">
                   <widget class="QPushButton" name="fBiasNominalLed">
                    <property name="enabled">
@@ -4326,20 +4263,4 @@
                   </widget>
                  </item>
-                 <item row="3" column="1">
-                  <spacer name="verticalSpacer_68">
-                   <property name="orientation">
-                    <enum>Qt::Vertical</enum>
-                   </property>
-                   <property name="sizeType">
-                    <enum>QSizePolicy::Preferred</enum>
-                   </property>
-                   <property name="sizeHint" stdset="0">
-                    <size>
-                     <width>20</width>
-                     <height>5</height>
-                    </size>
-                   </property>
-                  </spacer>
-                 </item>
                  <item row="1" column="0" colspan="3">
                   <widget class="Line" name="line_50">
@@ -4372,5 +4293,30 @@
                   </spacer>
                  </item>
-                 <item row="5" column="2">
+                 <item row="4" column="1">
+                  <widget class="QDoubleSpinBox" name="fBiasCurrent">
+                   <property name="sizePolicy">
+                    <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                     <horstretch>0</horstretch>
+                     <verstretch>0</verstretch>
+                    </sizepolicy>
+                   </property>
+                   <property name="alignment">
+                    <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+                   </property>
+                   <property name="readOnly">
+                    <bool>true</bool>
+                   </property>
+                   <property name="buttonSymbols">
+                    <enum>QAbstractSpinBox::NoButtons</enum>
+                   </property>
+                   <property name="suffix">
+                    <string> µA</string>
+                   </property>
+                   <property name="maximum">
+                    <double>9999999.000000000000000</double>
+                   </property>
+                  </widget>
+                 </item>
+                 <item row="4" column="2">
                   <widget class="QLabel" name="label_239">
                    <property name="text">
@@ -4379,5 +4325,43 @@
                   </widget>
                  </item>
-                 <item row="4" column="1">
+                 <item row="4" column="0">
+                  <widget class="QPushButton" name="fBiasOverCurrentLed">
+                   <property name="enabled">
+                    <bool>true</bool>
+                   </property>
+                   <property name="sizePolicy">
+                    <sizepolicy hsizetype="Fixed" vsizetype="Minimum">
+                     <horstretch>0</horstretch>
+                     <verstretch>0</verstretch>
+                    </sizepolicy>
+                   </property>
+                   <property name="maximumSize">
+                    <size>
+                     <width>18</width>
+                     <height>16777215</height>
+                    </size>
+                   </property>
+                   <property name="text">
+                    <string/>
+                   </property>
+                   <property name="icon">
+                    <iconset resource="design.qrc">
+                     <normaloff>:/Resources/icons/gray circle 1.png</normaloff>:/Resources/icons/gray circle 1.png</iconset>
+                   </property>
+                   <property name="iconSize">
+                    <size>
+                     <width>16</width>
+                     <height>16</height>
+                    </size>
+                   </property>
+                   <property name="checkable">
+                    <bool>false</bool>
+                   </property>
+                   <property name="flat">
+                    <bool>true</bool>
+                   </property>
+                  </widget>
+                 </item>
+                 <item row="3" column="1">
                   <widget class="QDoubleSpinBox" name="fBiasVoltCur">
                    <property name="sizePolicy">
@@ -4401,4 +4385,36 @@
                    <property name="maximum">
                     <double>90.000000000000000</double>
+                   </property>
+                  </widget>
+                 </item>
+                 <item row="5" column="1">
+                  <widget class="QDoubleSpinBox" name="fBiasOffset">
+                   <property name="sizePolicy">
+                    <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+                     <horstretch>0</horstretch>
+                     <verstretch>0</verstretch>
+                    </sizepolicy>
+                   </property>
+                   <property name="alignment">
+                    <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+                   </property>
+                   <property name="readOnly">
+                    <bool>true</bool>
+                   </property>
+                   <property name="buttonSymbols">
+                    <enum>QAbstractSpinBox::NoButtons</enum>
+                   </property>
+                   <property name="suffix">
+                    <string> µA</string>
+                   </property>
+                   <property name="maximum">
+                    <double>9999999.000000000000000</double>
+                   </property>
+                  </widget>
+                 </item>
+                 <item row="5" column="2">
+                  <widget class="QLabel" name="label_261">
+                   <property name="text">
+                    <string>offset</string>
                    </property>
                   </widget>
