use recGblSetSevrMsg()

This commit is contained in:
Michael Davidsaver
2020-03-30 21:32:15 -07:00
parent 892a361de7
commit d19586fdfd
5 changed files with 28 additions and 15 deletions

View File

@@ -523,7 +523,7 @@ long dbProcess(dbCommon *precord)
(precord->lcnt++ < MAX_LOCK) ||
(precord->sevr >= INVALID_ALARM)) goto all_done;
recGblSetSevr(precord, SCAN_ALARM, INVALID_ALARM);
recGblSetSevrMsg(precord, SCAN_ALARM, INVALID_ALARM, "Async in progress");
monitor_mask = recGblResetAlarms(precord);
monitor_mask |= DBE_VALUE|DBE_LOG;
pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->indvalFlddes];

View File

@@ -313,10 +313,27 @@ long dbTryGetLink(struct link *plink, short dbrType, void *pbuffer,
return plset->getValue(plink, dbrType, pbuffer, pnRequest);
}
static
void setLinkAlarm(struct link* plink)
{
struct dbCommon *precord = plink->precord;
dbRecordType *rdes = precord->rdes;
const char* amsg = NULL;
short i;
for(i=0; i<rdes->no_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);
}
long dbGetLink(struct link *plink, short dbrType, void *pbuffer,
long *poptions, long *pnRequest)
{
struct dbCommon *precord = plink->precord;
long status;
if (poptions && *poptions) {
@@ -328,7 +345,7 @@ long dbGetLink(struct link *plink, short dbrType, void *pbuffer,
if (status == S_db_noLSET)
return -1;
if (status)
recGblSetSevr(precord, LINK_ALARM, INVALID_ALARM);
setLinkAlarm(plink);
return status;
}
@@ -416,9 +433,7 @@ long dbPutLink(struct link *plink, short dbrType, const void *pbuffer,
status = plset->putValue(plink, dbrType, pbuffer, nRequest);
if (status) {
struct dbCommon *precord = plink->precord;
recGblSetSevr(precord, LINK_ALARM, INVALID_ALARM);
setLinkAlarm(plink);
}
return status;
}
@@ -443,9 +458,7 @@ long dbPutLinkAsync(struct link *plink, short dbrType, const void *pbuffer,
status = plset->putAsync(plink, dbrType, pbuffer, nRequest);
if (status) {
struct dbCommon *precord = plink->precord;
recGblSetSevr(precord, LINK_ALARM, INVALID_ALARM);
setLinkAlarm(plink);
}
return status;
}

View File

@@ -63,7 +63,7 @@ static long read_lsi(lsiRecord *prec)
prec->val[0] = 0;
prec->len = 1;
prec->udf = TRUE;
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
recGblSetSevrMsg(prec, UDF_ALARM, prec->udfs, "No such ENV");
}
return 0;
@@ -114,7 +114,7 @@ static long read_stringin(stringinRecord *prec)
else {
prec->val[0] = 0;
prec->udf = TRUE;
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
recGblSetSevrMsg(prec, UDF_ALARM, prec->udfs, "No such ENV");
}
return 0;

View File

@@ -432,7 +432,7 @@ static void convert(aiRecord *prec)
default: /* must use breakpoint table */
if (cvtRawToEngBpt(&val,prec->linr,prec->init,(void *)&prec->pbrk,&prec->lbrk)!=0) {
recGblSetSevr(prec,SOFT_ALARM,MAJOR_ALARM);
recGblSetSevrMsg(prec,SOFT_ALARM,MAJOR_ALARM, "BPT Error");
}
}

View File

@@ -236,7 +236,7 @@ static long process(struct dbCommon *pcommon)
}
if (fetch_values(prec) == 0) {
if (calcPerform(&prec->a, &prec->val, prec->rpcl)) {
recGblSetSevr(prec, CALC_ALARM, INVALID_ALARM);
recGblSetSevrMsg(prec, CALC_ALARM, INVALID_ALARM, "calcPerform");
} else {
prec->udf = isnan(prec->val);
}
@@ -610,7 +610,7 @@ static void execOutput(calcoutRecord *prec)
break;
case calcoutDOPT_Use_OVAL:
if (calcPerform(&prec->a, &prec->oval, prec->orpc)) {
recGblSetSevr(prec, CALC_ALARM, INVALID_ALARM);
recGblSetSevrMsg(prec, CALC_ALARM, INVALID_ALARM, "OCAL calcPerform");
} else {
prec->udf = isnan(prec->oval);
}
@@ -770,7 +770,7 @@ static long writeValue(calcoutRecord *prec)
if (!pcalcoutDSET || !pcalcoutDSET->write) {
errlogPrintf("%s DSET write does not exist\n", prec->name);
recGblSetSevr(prec, SOFT_ALARM, INVALID_ALARM);
recGblSetSevrMsg(prec, SOFT_ALARM, INVALID_ALARM, "DSET write does not exist");
prec->pact = TRUE;
return(-1);
}