diff --git a/adsApp/src/ADSPortDriver.cpp b/adsApp/src/ADSPortDriver.cpp index 3f4f92b..d56ca92 100644 --- a/adsApp/src/ADSPortDriver.cpp +++ b/adsApp/src/ADSPortDriver.cpp @@ -329,10 +329,11 @@ asynStatus ADSPortDriver::ADSConnect(asynUser *pasynUser) { status = static_cast( adsConnection->resolve_variables(ads_read_vars)); - if (status) { + if (status && lastReadError != status) { LOG_ERR_ASYN(pasynUser, "Could not resolve ADS read variable names (%i): %s", status, ads_errors[status].c_str()); + lastReadError = status; return status; } } @@ -341,11 +342,11 @@ asynStatus ADSPortDriver::ADSConnect(asynUser *pasynUser) { status = static_cast( adsConnection->resolve_variables(ads_write_vars)); - if (status && lastError != status) { + if (status && lastWriteError != status) { LOG_ERR_ASYN(pasynUser, "Could not resolve ADS write variable names(%i): %s", status, ads_errors[status].c_str()); - lastError = status; + lastWriteError = status; return status; } } @@ -354,10 +355,11 @@ asynStatus ADSPortDriver::ADSConnect(asynUser *pasynUser) { // initialize sum-read buffers status = static_cast(SumRead.initialize()); - if (status) { + if (status && lastSumReadError != status) { LOG_ERR_ASYN(pasynUser, "Error initializing sum-read request buffers (%i): %s", status, ads_errors[status].c_str()); + lastSumReadError = status; return status; } diff --git a/adsApp/src/ADSPortDriver.h b/adsApp/src/ADSPortDriver.h index 389dc13..99311a8 100644 --- a/adsApp/src/ADSPortDriver.h +++ b/adsApp/src/ADSPortDriver.h @@ -82,7 +82,9 @@ class ADSPortDriver : public Autoparam::Driver { uint32_t const adsFunctionTimeout; const std::shared_ptr adsConnection; const std::chrono::milliseconds sumReadPeriod; - long lastError; + long lastReadError; + long lastWriteError; + long lastSumReadError; SumReadRequest SumRead; diff --git a/adsApp/src/err.h b/adsApp/src/err.h index e5c7871..25b740a 100644 --- a/adsApp/src/err.h +++ b/adsApp/src/err.h @@ -32,10 +32,10 @@ LOG_MSG_ASYN(asyn_user, ASYN_TRACE_ERROR, "ERROR", format, ##__VA_ARGS__) #define LOG_WARN_ASYN(asyn_user, format, ...) \ - LOG_MSG_ASYN(asyn_user, ASYN_TRACE_WARNING, "WARNING", format, ##__VA_ARGS__) + //LOG_MSG_ASYN(asyn_user, ASYN_TRACE_WARNING, "WARNING", format, ##__VA_ARGS__) #define LOG_TRACE_ASYN(asyn_user, format, ...) \ - LOG_MSG_ASYN(asyn_user, ASYN_TRACE_FLOW, "TRACE", format, ##__VA_ARGS__) + //LOG_MSG_ASYN(asyn_user, ASYN_TRACE_FLOW, "TRACE", format, ##__VA_ARGS__) /* Error logging macros for use when asyn_user is not available */ #define LOG_MSG(log_level_str, format, ...) \ @@ -45,10 +45,10 @@ LOG_MSG("ERROR", format, ##__VA_ARGS__) #define LOG_WARN(format, ...) \ - LOG_MSG("WARNING", format, ##__VA_ARGS__) + //LOG_MSG("WARNING", format, ##__VA_ARGS__) #define LOG_TRACE(format, ...) \ - LOG_MSG("TRACE", format, ##__VA_ARGS__) + //LOG_MSG("TRACE", format, ##__VA_ARGS__) /* EPICS ADS specific return codes */ #define EPICSADS_BASE 1000