Index: trunk/FACT++/src/fscctrl.cc
===================================================================
--- trunk/FACT++/src/fscctrl.cc	(revision 18188)
+++ trunk/FACT++/src/fscctrl.cc	(revision 18189)
@@ -78,38 +78,8 @@
     }
 
-    template<typename T>
-    uint16_t fletcher16(const T *t, size_t cnt)
-    {
-        const uint8_t *data = reinterpret_cast<const uint8_t*>(t);
-
-        size_t bytes = cnt*sizeof(T);
-
-        uint16_t sum1 = 0xff;
-        uint16_t sum2 = 0xff;
-
-        while (bytes) 
-        {
-            size_t tlen = bytes > 20 ? 20 : bytes;
-            bytes -= tlen;
-
-            do {
-                sum2 += sum1 += *data++;
-            } while (--tlen);
-
-            sum1 = (sum1 & 0xff) + (sum1 >> 8);
-            sum2 = (sum2 & 0xff) + (sum2 >> 8);
-        }
-
-        // Second reduction step to reduce sums to 8 bits
-        sum1 = (sum1 & 0xff) + (sum1 >> 8);
-        sum2 = (sum2 & 0xff) + (sum2 >> 8);
-
-        return sum2 << 8 | sum1;
-    }
-
     bool CheckChecksum()
     {
-        const uint16_t volt_checksum = fletcher16(fMsg.adc_values,    kNumVoltageChannels);
-        const uint16_t resi_checksum = fletcher16(fMsg.ad7719_values, kNumResistanceChannels);
+        const uint16_t volt_checksum = Tools::Fletcher16(fMsg.adc_values,    kNumVoltageChannels);
+        const uint16_t resi_checksum = Tools::Fletcher16(fMsg.ad7719_values, kNumResistanceChannels);
 
         const bool volt_ok = volt_checksum == fMsg.adc_values_checksum;
