From 1c683c68f270093d92ecf9cc18e0294358acbc69 Mon Sep 17 00:00:00 2001
From: Gabriel Fedel <gabriel.fedel@ess.eu>
Date: Wed, 3 Nov 2021 14:08:12 +0100
Subject: [PATCH] If the read values are Nan set them to 0 (SP w/ cav)

This could happen when during the calibration the W is negative.
---
 src/sis8300llrfSPWithCavityChannel.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/sis8300llrfSPWithCavityChannel.cpp b/src/sis8300llrfSPWithCavityChannel.cpp
index cc462222..2ac24621 100644
--- a/src/sis8300llrfSPWithCavityChannel.cpp
+++ b/src/sis8300llrfSPWithCavityChannel.cpp
@@ -80,6 +80,8 @@ ndsStatus sis8300llrfSPWithCavityChannel::updateMagAngRBV() {
     // if gradient calibration is enabled
     if (m_CavChannel->isGradCalibrated()) {
         _MagRBV = m_CavChannel->calibrateGrad(calibratorRaw2EGU->calibrate(_MagRaw));
+       if (_MagRBV != _MagRBV) // Nan
+           _MagRBV = 0;
     }
     else
         if (calibratorRaw2EGU->isEnabled())
@@ -226,6 +228,8 @@ ndsStatus sis8300llrfSPWithCavityChannel::getMagTable(
     if (m_CavChannel->isGradCalibrated()) {
        for (int i = 0; i <  _MagTableCount; i++){
            value[i] = m_CavChannel->calibrateGrad(calibratorRaw2EGU->calibrate(_MagTable[i]));
+           if (value[i] != value[i]) // Nan
+               value[i] = 0;
         }
     }
     else
-- 
GitLab