Index: /trunk/FACT++/src/fscctrl.cc
===================================================================
--- /trunk/FACT++/src/fscctrl.cc	(revision 19584)
+++ /trunk/FACT++/src/fscctrl.cc	(revision 19585)
@@ -61,9 +61,9 @@
     }
 
-private:
+public:
     //
     // From: http://de.wikipedia.org/wiki/Pt100
     //
-    double GetTempPT1000(double R) const 
+    static double GetTempPT1000(double R)
     {
         // This is precise within the range 5degC and 25degC
@@ -83,4 +83,5 @@
     }
 
+private:
     bool CheckChecksum()
     {
@@ -252,4 +253,5 @@
             humidities.push_back((volt[*ph]-offrh[idx])*0.0313);
 
+
         //1019=4.8
         //1005=1.3
@@ -257,6 +259,17 @@
         //1300=76
         //DD 2019/09/01: changed from 970 to 980 as sensor 19 had values slighly larger than -7.6
+
+        const auto min = GetTempPT1000(fTempMin);
+
         for (int *pt=mapt; *pt>=0; pt++)
-            temperatures.push_back(resist[*pt]>=fTempMin && resist[*pt]<=fTempMax ? GetTempPT1000(resist[*pt]) : 0);
+        {
+            const bool valid = resist[*pt]>=fTempMin && resist[*pt]<=fTempMax;
+            temperatures.push_back(valid ? GetTempPT1000(resist[*pt]) : 0);
+
+            if (valid && temperatures.back()<min+1)
+                Warn(Tools::Form("Temperature sensor %2d has reading (%d=%.2f degC) closer than 1K to lower limit (%d=%.2f degC)",
+                                 temperatures.size()-1, resist[*pt], temperatures.back(), fTempMin, min));
+
+        }
 
         // 0 = 3-(3+0)%4
@@ -592,4 +605,14 @@
     }
 
+    uint16_t GetTempMin() const
+    {
+        return fTempMin;
+    }
+
+    uint16_t GetTempMax() const
+    {
+        return fTempMax;
+    }
+
     bool IsOpen() const
     {
@@ -637,7 +660,4 @@
             if (temp[i]!=0)
             {
-                if (temp[i]<0)
-                    Warn(Tools::Form("Temperature sensor %2d has negative temperature (%7.2f deg C)", i, temp[i]));
-
                 T.emplace_back(temp[i]);
                 xy.emplace_back(fPositionsSensors[i]);
@@ -875,4 +895,8 @@
         fFSC.SetTempMax(conf.Get<uint16_t>("temp-adc-max"));
 
+        T::Info(Tools::Form("Accepting temperatures between %.2f degC (%d) and %.2f degC (%d)",
+                        S::GetTempPT1000(fFSC.GetTempMin()), fFSC.GetTempMin(),
+                        S::GetTempPT1000(fFSC.GetTempMax()), fFSC.GetTempMax()));
+
         const string fname1 = conf.GetPrefixedString("sensor-pos-file");
         const auto v1 = Interpolator2D::ReadGrid(fname1);
@@ -919,6 +943,6 @@
         ("patch-pos-file",  var<string>()->required(),  "File with the positions of the 320 bias patches")
         ("quiet,q",       po_bool(true),  "Disable printing contents of all received messages (except dynamic data) in clear text.")
-        ("temp-adc-min",  var<uint16_t>(uint16_t(980)),  "Minimum ADC value for allowed range of temperature ADCs (default ~ -7.4 deg C)")
-        ("temp-adc-max",  var<uint16_t>(uint16_t(1300)), "Maximum ADC value for allowed range of temperature ADCs (default ~ 76 deg C)")
+        ("temp-adc-min",  var<uint16_t>(uint16_t(980)),  "Minimum ADC value for allowed range of temperature ADCs (default ~ -7.4 degC)")
+        ("temp-adc-max",  var<uint16_t>(uint16_t(1300)), "Maximum ADC value for allowed range of temperature ADCs (default ~ 76 degC)")
         ;
 
