diff --git a/src/dev/devAiDvx2502.c b/src/dev/devAiDvx2502.c index a4cca25d4..47533b6f9 100644 --- a/src/dev/devAiDvx2502.c +++ b/src/dev/devAiDvx2502.c @@ -34,6 +34,7 @@ * .02 12-02-91 jba Added cmd control to io-interrupt processing * .03 12-12-91 jba Set cmd to zero in io-interrupt processing * .04 03-13-92 jba ANSI C changes + * .05 02-08-94 mrk Issue Hardware Errors BUT prevent Error Message Storms * ... */ @@ -128,7 +129,9 @@ static long read_ai(pai) *((unsigned short*)(&pai->rval))=value; if(status==0 || status==-2) pai->rval = value; if(status==-1) { - recGblSetSevr(pai,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pai,READ_ALARM,INVALID_ALARM) && errVerbose + && (pai->stat!=READ_ALARM || pai->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pai,"dvx_driver Error"); status=2; /*don't convert*/ }else if(status==-2) { status=0; diff --git a/src/dev/devAiXy566Di.c b/src/dev/devAiXy566Di.c index 1aaef7dbe..6c7bfaf3f 100644 --- a/src/dev/devAiXy566Di.c +++ b/src/dev/devAiXy566Di.c @@ -32,6 +32,7 @@ * ----------------- * .01 11-11-91 jba Moved set of alarm stat and sevr to macros * .02 03-13-92 jba ANSI C changes + * .03 02-08-94 mrk Issue Hardware Errors BUT prevent Error Message Storms * ... */ @@ -115,7 +116,9 @@ static long read_ai(pai) status=ai_xy566_driver(pvmeio->card,pvmeio->signal,XY566DI,&value); if(status==-1) { status = 2; /* don't convert*/ - recGblSetSevr(pai,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pai,READ_ALARM,INVALID_ALARM) && errVerbose + && (pai->stat!=READ_ALARM || pai->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pai,"ai_xy566_driver Error"); return(status); }else if(status==-2) { status=0; diff --git a/src/dev/devAiXy566DiL.c b/src/dev/devAiXy566DiL.c index 3fa215354..55912a95c 100644 --- a/src/dev/devAiXy566DiL.c +++ b/src/dev/devAiXy566DiL.c @@ -34,6 +34,7 @@ * .02 12-02-91 jba Added cmd control to io-interrupt processing * .03 12-12-91 jba Set cmd to zero in io-interrupt processing * .04 03-13-92 jba ANSI C changes + * .05 02-08-94 mrk Issue Hardware Errors BUT prevent Error Message Storms * ... */ @@ -124,7 +125,9 @@ static long read_ai(pai) status=ai_xy566_driver(pvmeio->card,pvmeio->signal,XY566DIL,&value); if(status==-1) { status = 2; /*don't convert*/ - recGblSetSevr(pai,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pai,READ_ALARM,INVALID_ALARM) && errVerbose + && (pai->stat!=READ_ALARM || pai->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pai,"ai_xy566_driver Error"); return(status); }else if(status==-2) { status=0; diff --git a/src/dev/devAiXy566Se.c b/src/dev/devAiXy566Se.c index 32ffbba6a..8ad0f89a8 100644 --- a/src/dev/devAiXy566Se.c +++ b/src/dev/devAiXy566Se.c @@ -32,6 +32,7 @@ * ----------------- * .01 11-11-91 jba Moved set of alarm stat and sevr to macros * .02 03-13-92 jba ANSI C changes + * .03 02-08-94 mrk Issue Hardware Errors BUT prevent Error Message Storms * ... */ @@ -114,7 +115,9 @@ static long read_ai(pai) status=ai_xy566_driver(pvmeio->card,pvmeio->signal,XY566SE,&value); if(status==-1) { status = 2; /*don't convert*/ - recGblSetSevr(pai,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pai,READ_ALARM,INVALID_ALARM) && errVerbose + && (pai->stat!=READ_ALARM || pai->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pai,"ai_xy566_driver Error"); return(status); }else if(status==-2) { status=0; diff --git a/src/dev/devAllenBradley.c b/src/dev/devAllenBradley.c index aa16e8766..4fe6d65d9 100644 --- a/src/dev/devAllenBradley.c +++ b/src/dev/devAllenBradley.c @@ -31,6 +31,7 @@ * Modification Log: * ----------------- * .01 08-27-92 mrk Combined all Allen Bradley devive support + * .02 02-08-94 mrk Issue Hardware Errors BUT prevent Error Message Storms * ... */ @@ -198,7 +199,9 @@ static long read_1771Ife(struct aiRecord *pai) pabio->card,pabio->signal,pabio->plc_flag,&value,pai->linr); if(status==0 || status==-2) pai->rval = value; if(status==-1) { - recGblSetSevr(pai,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pai,READ_ALARM,INVALID_ALARM) && errVerbose + && (pai->stat!=READ_ALARM || pai->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pai,"ab_aidriver Error"); status=2; /*dont convert*/ }else if(status==-2) { status=0; @@ -255,7 +258,9 @@ static long read_1771Ife0to5V(struct aiRecord *pai) pabio->card,pabio->signal,pabio->plc_flag,&value,pai->linr); if(status==0 || status==-2) pai->rval = value; if(status==-1) { - recGblSetSevr(pai,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pai,READ_ALARM,INVALID_ALARM) && errVerbose + && (pai->stat!=READ_ALARM || pai->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pai,"ab_aidriver Error"); status=2; /*dont convert*/ }else if(status==-2) { status=0; @@ -312,7 +317,9 @@ static long read_1771IfeMa(struct aiRecord *pai) pabio->card,pabio->signal,pabio->plc_flag,&value,pai->linr); if(status==0 || status==-2) pai->rval = value; if(status==-1) { - recGblSetSevr(pai,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pai,READ_ALARM,INVALID_ALARM) && errVerbose + && (pai->stat!=READ_ALARM || pai->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pai,"ab_aidriver Error"); status=2; /*dont convert*/ }else if(status==-2) { status=0; @@ -369,7 +376,9 @@ static long read_1771IfeSe(struct aiRecord *pai) pabio->card,pabio->signal,pabio->plc_flag,&value,pai->linr); if(status==0 || status==-2) pai->rval = value; if(status==-1) { - recGblSetSevr(pai,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pai,READ_ALARM,INVALID_ALARM) && errVerbose + && (pai->stat!=READ_ALARM || pai->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pai,"ab_aidriver Error"); status = 2; /*don`t convert*/ }else if(status==-2) { status=0; @@ -426,7 +435,9 @@ static long read_1771Il(struct aiRecord *pai) pabio->card,pabio->signal,pabio->plc_flag,&value,pai->linr); if(status==0 || status==-2) pai->rval = value; if(status==-1) { - recGblSetSevr(pai,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pai,READ_ALARM,INVALID_ALARM) && errVerbose + && (pai->stat!=READ_ALARM || pai->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pai,"ab_aidriver Error"); status = 2; /*don't convert*/ }else if(status==-2) { status=0; @@ -515,7 +526,9 @@ static long read_1771Ixe(struct aiRecord *pai) status=2; /*don't convert*/ } } else if(status==-1) { - recGblSetSevr(pai,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pai,READ_ALARM,INVALID_ALARM) && errVerbose + && (pai->stat!=READ_ALARM || pai->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pai,"ab_aidriver Error"); status = 2; /*don't convert*/ } return(status); @@ -569,12 +582,14 @@ static long write_1771Ofe(struct aoRecord *pao) status = ab_aodriver(AB1771OFE,pabio->link,pabio->adapter, pabio->card,pabio->signal,pabio->plc_flag,value); if(status==-1) { - recGblSetSevr(pao,WRITE_ALARM,INVALID_ALARM); + if(recGblSetSevr(pao,WRITE_ALARM,INVALID_ALARM) && errVerbose + && (pao->stat!=WRITE_ALARM || pao->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pao,"ab_aodriver Error"); }else if(status==-2) { status=0; recGblSetSevr(pao,HW_LIMIT_ALARM,INVALID_ALARM); } - return(status); + return(0); } @@ -666,7 +681,9 @@ static long read_bi(struct biRecord *pbi) pbi->rval = value; return(0); } else { - recGblSetSevr(pbi,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pbi,READ_ALARM,INVALID_ALARM) && errVerbose + && (pbi->stat!=READ_ALARM || pbi->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pbi,"ab_bidriver Error"); return(2); } } @@ -722,7 +739,9 @@ static long read_bi16(struct biRecord *pbi) pbi->rval = value; return(0); } else { - recGblSetSevr(pbi,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pbi,READ_ALARM,INVALID_ALARM) && errVerbose + && (pbi->stat!=READ_ALARM || pbi->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pbi,"ab_bidriver Error"); return(2); } } @@ -774,10 +793,13 @@ static long read_mbbi(struct mbbiRecord *pmbbi) pabio->card,pabio->plc_flag,pmbbi->mask,&value); if(status==0) { pmbbi->rval = value; + return(0); } else { - recGblSetSevr(pmbbi,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pmbbi,READ_ALARM,INVALID_ALARM) && errVerbose + && (pmbbi->stat!=READ_ALARM || pmbbi->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pmbbi,"ab_bidriver Error"); + return(2); } - return(status); } static long init_mbbi16(struct mbbiRecord *pmbbi) @@ -820,17 +842,19 @@ static long read_mbbi16(struct mbbiRecord *pmbbi) struct abio *pabio; int status; unsigned long value; - pabio = (struct abio *)&(pmbbi->inp.value); status = ab_bidriver(ABBI_16_BIT,pabio->link,pabio->adapter, pabio->card,pabio->plc_flag,pmbbi->mask,&value); if(status==0) { pmbbi->rval = value; + return(0); } else { - recGblSetSevr(pmbbi,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pmbbi,READ_ALARM,INVALID_ALARM) && errVerbose + && (pmbbi->stat!=READ_ALARM || pmbbi->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pmbbi,"ab_bidriver Error"); + return(2); } - return(status); } static long init_bo(struct boRecord *pbo) @@ -868,9 +892,11 @@ static long write_bo(struct boRecord *pbo) status = ab_bodriver(ABBO_08_BIT,pabio->link,pabio->adapter, pabio->card,pabio->plc_flag,pbo->rval,pbo->mask); if(status!=0) { - recGblSetSevr(pbo,WRITE_ALARM,INVALID_ALARM); + if(recGblSetSevr(pbo,WRITE_ALARM,INVALID_ALARM) && errVerbose + && (pbo->stat!=WRITE_ALARM || pbo->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pbo,"ab_bodriver Error"); } - return(status); + return(0); } static long init_bo16(struct boRecord *pbo) @@ -909,9 +935,11 @@ static long write_bo16(struct boRecord *pbo) status = ab_bodriver(ABBO_16_BIT,pabio->link,pabio->adapter, pabio->card,pabio->plc_flag,pbo->rval,pbo->mask); if(status!=0) { - recGblSetSevr(pbo,WRITE_ALARM,INVALID_ALARM); + if(recGblSetSevr(pbo,WRITE_ALARM,INVALID_ALARM) && errVerbose + && (pbo->stat!=WRITE_ALARM || pbo->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pbo,"ab_bodriver Error"); } - return(status); + return(0); } static long init_mbbo(struct mbboRecord *pmbbo) @@ -949,9 +977,11 @@ static long write_mbbo(struct mbboRecord *pmbbo) status = ab_bodriver(ABBO_08_BIT,pabio->link,pabio->adapter, pabio->card,pabio->plc_flag,pmbbo->rval,pmbbo->mask); if(status!=0) { - recGblSetSevr(pmbbo,WRITE_ALARM,INVALID_ALARM); + if(recGblSetSevr(pmbbo,WRITE_ALARM,INVALID_ALARM) && errVerbose + && (pmbbo->stat!=WRITE_ALARM || pmbbo->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pmbbo,"ab_bodriver Error"); } - return(status); + return(0); } static long init_mbbo16(struct mbboRecord *pmbbo) @@ -988,7 +1018,9 @@ static long write_mbbo16(struct mbboRecord *pmbbo) status = ab_bodriver(ABBO_16_BIT,pabio->link,pabio->adapter, pabio->card,pabio->plc_flag,pmbbo->rval,pmbbo->mask); if(status!=0) { - recGblSetSevr(pmbbo,WRITE_ALARM,INVALID_ALARM); + if(recGblSetSevr(pmbbo,WRITE_ALARM,INVALID_ALARM) && errVerbose + && (pmbbo->stat!=WRITE_ALARM || pmbbo->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pmbbo,"ab_bodriver Error"); } - return(status); + return(0); } diff --git a/src/dev/devAoVmiVme4100.c b/src/dev/devAoVmiVme4100.c index 4bd049743..fbe9197bf 100644 --- a/src/dev/devAoVmiVme4100.c +++ b/src/dev/devAoVmiVme4100.c @@ -33,6 +33,7 @@ * .01 11-11-91 jba Moved set of alarm stat and sevr to macros * .02 03-13-92 jba ANSI C changes * .03 05-11-92 mrk Remove read at init (device does not support) + * .04 02-08-94 mrk Prevent error message storms * ... */ @@ -113,7 +114,10 @@ static long write_ao(pao) status = vmi4100_driver(pvmeio->card,pvmeio->signal,&value,&rbvalue); if(status==0 || status==-2) pao->rbv = rbvalue; if(status==-1) { - recGblSetSevr(pao,WRITE_ALARM,INVALID_ALARM); + status = 0; + if(recGblSetSevr(pao,WRITE_ALARM,INVALID_ALARM) && errVerbose + && (pao->stat!=WRITE_ALARM || pao->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pao,"vmi4100_driver Error"); }else if(status==-2) { status=0; recGblSetSevr(pao,HW_LIMIT_ALARM,INVALID_ALARM); diff --git a/src/dev/devBiMpv910.c b/src/dev/devBiMpv910.c index 036729a83..5d698c7f7 100644 --- a/src/dev/devBiMpv910.c +++ b/src/dev/devBiMpv910.c @@ -104,7 +104,9 @@ static long read_bi(pbi) pbi->rval = value; return(0); } else { - recGblSetSevr(pbi,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pbi,READ_ALARM,INVALID_ALARM) && errVerbose + && (pbi->stat!=READ_ALARM || pbi->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pbi,"bb910_driver Error"); return(2); } } diff --git a/src/dev/devBiXVme210.c b/src/dev/devBiXVme210.c index 94caeae5e..435631906 100644 --- a/src/dev/devBiXVme210.c +++ b/src/dev/devBiXVme210.c @@ -103,7 +103,9 @@ static long read_bi(pbi) pbi->rval = value; return(0); } else { - recGblSetSevr(pbi,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pbi,READ_ALARM,INVALID_ALARM) && errVerbose + && (pbi->stat!=READ_ALARM || pbi->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pbi,"xy210_driver Error"); return(2); } return(status); diff --git a/src/dev/devBoMpv902.c b/src/dev/devBoMpv902.c index d2d87c1a7..c2e3ccbde 100644 --- a/src/dev/devBoMpv902.c +++ b/src/dev/devBoMpv902.c @@ -32,6 +32,7 @@ * ----------------- * .01 11-11-91 jba Moved set of alarm stat and sevr to macros * .02 03-13-92 jba ANSI C changes + * .03 02-08-94 mrk Issue Hardware Errors BUT prevent Error Message Storms * ... */ @@ -111,9 +112,15 @@ static long write_bo(pbo) if(status==0) { status = bb902_read(pvmeio->card,mask,&value); if(status==0) pbo->rbv = value; - else recGblSetSevr(pbo,READ_ALARM,INVALID_ALARM); + else{ + if(recGblSetSevr(pbo,READ_ALARM,INVALID_ALARM) && errVerbose + && (pbo->stat!=READ_ALARM || pbo->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pbo,"bb902_read Error"); + } } else { - recGblSetSevr(pbo,WRITE_ALARM,INVALID_ALARM); + if(recGblSetSevr(pbo,WRITE_ALARM,INVALID_ALARM) && errVerbose + && (pbo->stat!=WRITE_ALARM || pbo->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pbo,"bb902_driver Error"); } - return(status); + return(0); } diff --git a/src/dev/devBoXVme220.c b/src/dev/devBoXVme220.c index 12784c9f6..5caffb231 100644 --- a/src/dev/devBoXVme220.c +++ b/src/dev/devBoXVme220.c @@ -32,6 +32,7 @@ * ----------------- * .01 11-11-91 jba Moved set of alarm stat and sevr to macros * .02 03-13-92 jba ANSI C changes + * .03 02-08-94 mrk Issue Hardware Errors BUT prevent Error Message Storms * ... */ @@ -104,7 +105,9 @@ static long write_bo(pbo) pvmeio = (struct vmeio *)&(pbo->out.value); status = xy220_driver(pvmeio->card,&pbo->rval,pbo->mask); if(status!=0) { - recGblSetSevr(pbo,WRITE_ALARM,INVALID_ALARM); + if(recGblSetSevr(pbo,WRITE_ALARM,INVALID_ALARM) && errVerbose + && (pbo->stat!=WRITE_ALARM || pbo->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pbo,"xy220_driver Error"); } - return(status); + return(0); } diff --git a/src/dev/devMbbiMpv910.c b/src/dev/devMbbiMpv910.c index 7f8db87c4..f43765c32 100644 --- a/src/dev/devMbbiMpv910.c +++ b/src/dev/devMbbiMpv910.c @@ -33,6 +33,7 @@ * ----------------- * .01 11-11-91 jba Moved set of alarm stat and sevr to macros * .02 03-13-92 jba ANSI C changes + * .03 02--8-94 mrk Prevent error message storms * ... */ @@ -101,8 +102,11 @@ static long read_mbbi(pmbbi) status = bb910_driver(pvmeio->card,&value); if(status==0) { pmbbi->rval = value; + return(0); } else { - recGblSetSevr(pmbbi,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pmbbi,READ_ALARM,INVALID_ALARM) && errVerbose + && (pmbbi->stat!=READ_ALARM || pmbbi->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pmbbi,"bb910_driver Error"); + return(2); } - return(status); } diff --git a/src/dev/devMbbiXVme210.c b/src/dev/devMbbiXVme210.c index 5ae9a88b1..48f6ebd52 100644 --- a/src/dev/devMbbiXVme210.c +++ b/src/dev/devMbbiXVme210.c @@ -33,6 +33,7 @@ * ----------------- * .01 11-11-91 jba Moved set of alarm stat and sevr to macros * .02 03-13-92 jba ANSI C changes + * .03 02-08-94 mrk Prevent error message storms * ... */ @@ -100,8 +101,12 @@ static long read_mbbi(pmbbi) status = xy210_driver(pvmeio->card,pmbbi->mask,&value); if(status==0) { pmbbi->rval = value; + return(0); } else { - recGblSetSevr(pmbbi,READ_ALARM,INVALID_ALARM); + if(recGblSetSevr(pmbbi,READ_ALARM,INVALID_ALARM) && errVerbose + && (pmbbi->stat!=READ_ALARM || pmbbi->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pmbbi,"xy210_driver Error"); + return(2); } return(status); } diff --git a/src/dev/devMbboMpv902.c b/src/dev/devMbboMpv902.c index 80b931aa6..bf1009c41 100644 --- a/src/dev/devMbboMpv902.c +++ b/src/dev/devMbboMpv902.c @@ -33,6 +33,7 @@ * ----------------- * .01 11-11-91 jba Moved set of alarm stat and sevr to macros * .02 03-13-92 jba ANSI C changes + * .03 02-08-94 mrk Issue Hardware Errors BUT prevent Error Message Storms * ... */ @@ -112,9 +113,15 @@ static long write_mbbo(pmbbo) if(status==0) { status = bb902_read(pvmeio->card,mask,&value); if(status==0) pmbbo->rbv = value; - else recGblSetSevr(pmbbo,READ_ALARM,INVALID_ALARM); + else { + if(recGblSetSevr(pmbbo,READ_ALARM,INVALID_ALARM) && errVerbose + && (pmbbo->stat!=READ_ALARM || pmbbo->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pmbbo,"bb902_read Error"); + } } else { - recGblSetSevr(pmbbo,WRITE_ALARM,INVALID_ALARM); + if(recGblSetSevr(pmbbo,WRITE_ALARM,INVALID_ALARM) && errVerbose + && (pmbbo->stat!=WRITE_ALARM || pmbbo->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pmbbo,"bb902_driver Error"); } - return(status); + return(0); } diff --git a/src/dev/devMbboXVme220.c b/src/dev/devMbboXVme220.c index 769d5da27..c5db3de26 100644 --- a/src/dev/devMbboXVme220.c +++ b/src/dev/devMbboXVme220.c @@ -33,6 +33,7 @@ * ----------------- * .01 11-11-91 jba Moved set of alarm stat and sevr to macros * .02 03-13-92 jba ANSI C changes + * .03 02-08-94 mrk Issue Hardware Errors BUT prevent Error Message Storms * ... */ @@ -110,7 +111,9 @@ static long write_mbbo(pmbbo) if(status==0) pmbbo->rbv = value; else recGblSetSevr(pmbbo,READ_ALARM,INVALID_ALARM); } else { - recGblSetSevr(pmbbo,WRITE_ALARM,INVALID_ALARM); + if(recGblSetSevr(pmbbo,WRITE_ALARM,INVALID_ALARM) && errVerbose + && (pmbbo->stat!=WRITE_ALARM || pmbbo->sevr!=INVALID_ALARM)) + recGblRecordError(-1,(void *)pmbbo,"xy220_driver Error"); } - return(status); + return(0); }