diff --git a/src/Fug.cpp b/src/Fug.cpp index fed09d093257351d3c8f446c9a10b51250514eff..5fc8e2074c0bdcff1d07ceb665efd976fbfdb9d5 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 55ed007c0715d5ea78b3d7fc4f56f79ec2ffbc9c..ca2293d9477e269d4f503676968ffc86bcb3ecb5 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 4da9b7ccf099542f074423e8ea2fe0fd633f855e..661830c3b8b13b6fb44892d731ab755016326da4 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;