From 9ee75b7c591c985a656100f7febbd6da0f9caa79 Mon Sep 17 00:00:00 2001 From: Lucio Zambon <lucio.zambon@elettra.eu> Date: Wed, 19 Jan 2022 03:05:33 +0100 Subject: [PATCH] purge spurious read --- src/Fug.cpp | 4 ++-- src/Fug.h | 1 + src/fugthread.cpp | 10 ++++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Fug.cpp b/src/Fug.cpp index fed09d0..5fc8e20 100644 --- a/src/Fug.cpp +++ b/src/Fug.cpp @@ -402,10 +402,10 @@ void Fug::read_MaxDiffVoltage(Tango::Attribute &attr) { << "Fug::read_MaxDiffVoltage(Tango::Attribute &attr) entering... " << endl; - if (*attr_MaxDiffVoltage_read == -1) { + if (*attr_MaxDiffVoltage_read < -1*MAX_RETRY) { Tango::Except::throw_exception( static_cast<const char *>("Error reading max diff voltage"), - static_cast<const char *>("Buffer not ready"), + static_cast<const char *>("Error reading max voltage"), static_cast<const char *>("Fug::read_MaxDiffVoltage"), Tango::ERR); } diff --git a/src/Fug.h b/src/Fug.h index 55ed007..ca2293d 100644 --- a/src/Fug.h +++ b/src/Fug.h @@ -36,6 +36,7 @@ #define FUG_SER_TOUT 150 //ms. #define FUG_SER_SLEEP 80 //ms. #define FUG_MSG_LEN 80 +#define MAX_RETRY 50 #define FUG_MAX_DIFF_BUFFER 1000 diff --git a/src/fugthread.cpp b/src/fugthread.cpp index 4da9b7c..661830c 100644 --- a/src/fugthread.cpp +++ b/src/fugthread.cpp @@ -206,7 +206,10 @@ int fugthread::MaxVoltageDiff(void) *myfug->attr_MaxDiffVoltage_read = max_tmp_diff; } else { - *myfug->attr_MaxDiffVoltage_read = -1; /* invalid value */ + if (*myfug->attr_MaxDiffVoltage_read < 0) + *myfug->attr_MaxDiffVoltage_read--; + else + *myfug->attr_MaxDiffVoltage_read = -1; /* invalid value */ } myfug->fug_buf_idx++; @@ -216,7 +219,10 @@ int fugthread::MaxVoltageDiff(void) } else { - *myfug->attr_MaxDiffVoltage_read = -1; /* invalid value */ + if (*myfug->attr_MaxDiffVoltage_read < 0) + *myfug->attr_MaxDiffVoltage_read--; + else + *myfug->attr_MaxDiffVoltage_read = -1; /* invalid value */ } return 0; -- GitLab