diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index d19664ea1..710798082 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -42,6 +42,43 @@ tells git to ignore all configure/*.local files.
+The following launchpad bugs have fixes included:
+ +Removed the settings for 2017; fixed the hour of the change for MET.
+ +Initialize the first time-stamp from the first monitor, not the client-side +current time in this configuration.
+ +Windows builds using Visual Studio 2015 and later now use the -FS +compiler option to allow parallel builds to work properly.
+ +We now give the -FC option to tell the compiler to print absolute +paths for source files in diagnostic messages.
+The Posix implementation of epicsEventWaitWithTimeout() was limiting the diff --git a/src/ioc/db/dbAccess.c b/src/ioc/db/dbAccess.c index 4b232b37e..4ee2d677d 100644 --- a/src/ioc/db/dbAccess.c +++ b/src/ioc/db/dbAccess.c @@ -291,10 +291,14 @@ static void get_alarm(DBADDR *paddr, char **ppbuffer, if (*options & DBR_AL_LONG) { struct dbr_alLong *pal = (struct dbr_alLong*) pbuffer; - pal->upper_alarm_limit = (epicsInt32) ald.upper_alarm_limit; - pal->upper_warning_limit = (epicsInt32) ald.upper_warning_limit; - pal->lower_warning_limit = (epicsInt32) ald.lower_warning_limit; - pal->lower_alarm_limit = (epicsInt32) ald.lower_alarm_limit; + pal->upper_alarm_limit = finite(ald.upper_alarm_limit) ? + (epicsInt32) ald.upper_alarm_limit : 0; + pal->upper_warning_limit = finite(ald.upper_warning_limit) ? + (epicsInt32) ald.upper_warning_limit : 0; + pal->lower_warning_limit = finite(ald.lower_warning_limit) ? + (epicsInt32) ald.lower_warning_limit : 0; + pal->lower_alarm_limit = finite(ald.lower_alarm_limit) ? + (epicsInt32) ald.lower_alarm_limit : 0; if (no_data) *options ^= DBR_AL_LONG; /*Turn off option*/ diff --git a/src/std/rec/longinRecord.c b/src/std/rec/longinRecord.c index f9a9232e3..5276293f1 100644 --- a/src/std/rec/longinRecord.c +++ b/src/std/rec/longinRecord.c @@ -22,6 +22,7 @@ #include "dbDefs.h" #include "epicsPrint.h" +#include "epicsMath.h" #include "alarm.h" #include "dbAccess.h" #include "dbEvent.h" @@ -225,15 +226,17 @@ static long get_alarm_double(DBADDR *paddr, struct dbr_alDouble *pad) { longinRecord *prec=(longinRecord *)paddr->precord; - if(dbGetFieldIndex(paddr) == indexof(VAL)){ - pad->upper_alarm_limit = prec->hihi; - pad->upper_warning_limit = prec->high; - pad->lower_warning_limit = prec->low; - pad->lower_alarm_limit = prec->lolo; - } else recGblGetAlarmDouble(paddr,pad); - return(0); + if (dbGetFieldIndex(paddr) == indexof(VAL)){ + pad->upper_alarm_limit = prec->hhsv ? prec->hihi : epicsNAN; + pad->upper_warning_limit = prec->hsv ? prec->high : epicsNAN; + pad->lower_warning_limit = prec->lsv ? prec->low : epicsNAN; + pad->lower_alarm_limit = prec->llsv ? prec->lolo : epicsNAN; + } + else + recGblGetAlarmDouble(paddr,pad); + return 0; } - + static void checkAlarms(longinRecord *prec, epicsTimeStamp *timeLast) { enum { diff --git a/src/std/rec/longoutRecord.c b/src/std/rec/longoutRecord.c index b168bf1be..27928d3f7 100644 --- a/src/std/rec/longoutRecord.c +++ b/src/std/rec/longoutRecord.c @@ -19,6 +19,7 @@ #include "dbDefs.h" #include "epicsPrint.h" +#include "epicsMath.h" #include "alarm.h" #include "dbAccess.h" #include "dbEvent.h" @@ -256,15 +257,17 @@ static long get_alarm_double(DBADDR *paddr,struct dbr_alDouble *pad) { longoutRecord *prec=(longoutRecord *)paddr->precord; - if(dbGetFieldIndex(paddr) == indexof(VAL)) { - pad->upper_alarm_limit = prec->hihi; - pad->upper_warning_limit = prec->high; - pad->lower_warning_limit = prec->low; - pad->lower_alarm_limit = prec->lolo; - } else recGblGetAlarmDouble(paddr,pad); - return(0); + if (dbGetFieldIndex(paddr) == indexof(VAL)) { + pad->upper_alarm_limit = prec->hhsv ? prec->hihi : epicsNAN; + pad->upper_warning_limit = prec->hsv ? prec->high : epicsNAN; + pad->lower_warning_limit = prec->lsv ? prec->low : epicsNAN; + pad->lower_alarm_limit = prec->llsv ? prec->lolo : epicsNAN; + } + else + recGblGetAlarmDouble(paddr,pad); + return 0; } - + static void checkAlarms(longoutRecord *prec) { epicsInt32 val, hyst, lalm; diff --git a/src/template/base/top/exampleApp/src/xxxRecord.c b/src/template/base/top/exampleApp/src/xxxRecord.c index f4b65d204..5cf0d1545 100644 --- a/src/template/base/top/exampleApp/src/xxxRecord.c +++ b/src/template/base/top/exampleApp/src/xxxRecord.c @@ -198,8 +198,8 @@ static long get_alarm_double(DBADDR *paddr,struct dbr_alDouble *pad) static void checkAlarms(xxxRecord *prec) { - double val; - float hyst, lalm, hihi, high, low, lolo; + double val, hyst, lalm; + float hihi, high, low, lolo; unsigned short hhsv, llsv, hsv, lsv; if(prec->udf == TRUE ){ diff --git a/src/tools/convertRelease.pl b/src/tools/convertRelease.pl index d1a054e87..b80ae6ff7 100644 --- a/src/tools/convertRelease.pl +++ b/src/tools/convertRelease.pl @@ -21,8 +21,7 @@ use Getopt::Std; use EPICS::Path; use EPICS::Release; -use vars qw($arch $top $iocroot $root); - +our ($arch, $top, $iocroot, $root); our ($opt_a, $opt_t, $opt_T); $Getopt::Std::OUTPUT_HELP_VERSION = 1;