From 3f4432b7bd1af4f31edfb778520598c1ea6d3fe3 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Mon, 8 Mar 2021 21:17:03 -0800 Subject: [PATCH] review cleanup --- modules/database/src/ioc/db/dbDbLink.c | 13 +---------- modules/database/src/ioc/db/dbLink.c | 15 ++---------- modules/database/src/ioc/db/dbLink.h | 4 +--- .../database/src/std/filters/filters.dbd.pod | 23 +++++++++++++++++++ modules/database/src/std/link/lnkCalc.c | 13 +---------- 5 files changed, 28 insertions(+), 40 deletions(-) diff --git a/modules/database/src/ioc/db/dbDbLink.c b/modules/database/src/ioc/db/dbDbLink.c index db7f67cb2..f8cfd8b5e 100644 --- a/modules/database/src/ioc/db/dbDbLink.c +++ b/modules/database/src/ioc/db/dbDbLink.c @@ -353,12 +353,6 @@ static long dbDbGetAlarmMsg(const struct link *plink, epicsEnum16 *status, return 0; } -static long dbDbGetAlarm(const struct link *plink, epicsEnum16 *status, - epicsEnum16 *severity) -{ - return dbDbGetAlarmMsg(plink, status, severity, NULL, 0u); -} - static long dbDbGetTimeStampTag(const struct link *plink, epicsTimeStamp *pstamp, epicsUTag *ptag) { dbChannel *chan = linkChannel(plink); @@ -369,11 +363,6 @@ static long dbDbGetTimeStampTag(const struct link *plink, epicsTimeStamp *pstamp return 0; } -static long dbDbGetTimeStamp(const struct link *plink, epicsTimeStamp *pstamp) -{ - return dbDbGetTimeStampTag(plink, pstamp, NULL); -} - static long dbDbPutValue(struct link *plink, short dbrType, const void *pbuffer, long nRequest) { @@ -418,7 +407,7 @@ static lset dbDb_lset = { dbDbGetValue, dbDbGetControlLimits, dbDbGetGraphicLimits, dbDbGetAlarmLimits, dbDbGetPrecision, dbDbGetUnits, - dbDbGetAlarm, dbDbGetTimeStamp, + NULL, NULL, dbDbPutValue, NULL, dbDbScanFwdLink, doLocked, dbDbGetAlarmMsg, diff --git a/modules/database/src/ioc/db/dbLink.c b/modules/database/src/ioc/db/dbLink.c index c9f9137ca..f5d286447 100644 --- a/modules/database/src/ioc/db/dbLink.c +++ b/modules/database/src/ioc/db/dbLink.c @@ -316,19 +316,8 @@ long dbTryGetLink(struct link *plink, short dbrType, void *pbuffer, static void setLinkAlarm(struct link* plink) { - struct dbCommon *precord = plink->precord; - dbRecordType *rdes = precord->rdes; - const char* amsg = NULL; - short i; - - for(i=0; ino_links; i++) { - dbFldDes *fdes = rdes->papFldDes[rdes->link_ind[i]]; - if((char*)plink - (char*)precord == fdes->offset) { - amsg = fdes->name; - } - } - - recGblSetSevrMsg(precord, LINK_ALARM, INVALID_ALARM, "field %s", amsg); + recGblSetSevrMsg(plink->precord, LINK_ALARM, INVALID_ALARM, + "field %s", dbLinkFieldName(plink)); } long dbGetLink(struct link *plink, short dbrType, void *pbuffer, diff --git a/modules/database/src/ioc/db/dbLink.h b/modules/database/src/ioc/db/dbLink.h index 6bab6d993..1933952b9 100644 --- a/modules/database/src/ioc/db/dbLink.h +++ b/modules/database/src/ioc/db/dbLink.h @@ -282,8 +282,6 @@ typedef struct lset { * @param status where to put the alarm status (or NULL) * @param severity where to put the severity (or NULL) * @returns status value - * - * @note Link types which provide getAlarm should also provided getAlarmMsg(). */ long (*getAlarm)(const struct link *plink, epicsEnum16 *status, epicsEnum16 *severity); @@ -368,7 +366,7 @@ typedef struct lset { * * Equivalent of getAlarm() and also copy out alarm message string. * The msgbuf argument may be NULL and/or msgbuflen==0, in which case - * the call must be the same as a call to getAlarm(). + * the effect must be the same as a call to getAlarm(). * * Implementations must write a trailing nil to msgbuf whenever * @code msgbuf!=NULL && msgbuflen>0 @endcode . diff --git a/modules/database/src/std/filters/filters.dbd.pod b/modules/database/src/std/filters/filters.dbd.pod index ae43b3c2f..7b3146609 100644 --- a/modules/database/src/std/filters/filters.dbd.pod +++ b/modules/database/src/std/filters/filters.dbd.pod @@ -16,6 +16,8 @@ The following filters are available in this release: =item * L +=item * L + =back =head2 Using Filters @@ -287,3 +289,24 @@ once every minute: =cut registrar(utagInitialize) + +=head3 UTag Filter C<"utag"> + +This filter applies a test UTAG&M==V to the value taken from the UTAG record field +and drops those updates which evaluate as false. + +=head4 Parameters + +=over + +=item Mask C<"M"> + +Bit mask. + +=item Value C<"V"> + +Required value. + +=back + +=cut diff --git a/modules/database/src/std/link/lnkCalc.c b/modules/database/src/std/link/lnkCalc.c index 01eff15f4..96a12f128 100644 --- a/modules/database/src/std/link/lnkCalc.c +++ b/modules/database/src/std/link/lnkCalc.c @@ -748,12 +748,6 @@ static long lnkCalc_getAlarmMsg(const struct link *plink, epicsEnum16 *status, return 0; } -static long lnkCalc_getAlarm(const struct link *plink, epicsEnum16 *status, - epicsEnum16 *severity) -{ - return lnkCalc_getAlarmMsg(plink, status, severity, NULL, 0u); -} - static long lnkCalc_getTimestampTag(const struct link *plink, epicsTimeStamp *pstamp, epicsUTag *ptag) { calc_link *clink = CONTAINER(plink->value.json.jlink, @@ -769,11 +763,6 @@ static long lnkCalc_getTimestampTag(const struct link *plink, epicsTimeStamp *ps return -1; } -static long lnkCalc_getTimestamp(const struct link *plink, epicsTimeStamp *pstamp) -{ - return lnkCalc_getTimestampTag(plink, pstamp, NULL); -} - static long doLocked(struct link *plink, dbLinkUserCallback rtn, void *priv) { return rtn(plink, priv); @@ -790,7 +779,7 @@ static lset lnkCalc_lset = { lnkCalc_getValue, NULL, NULL, NULL, lnkCalc_getPrecision, lnkCalc_getUnits, - lnkCalc_getAlarm, lnkCalc_getTimestamp, + NULL, NULL, lnkCalc_putValue, NULL, NULL, doLocked, lnkCalc_getAlarmMsg,