use recGblSetSevrMsg()
This commit is contained in:
@@ -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];
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user