jba Moved set and reset of alarm stat and sevr to macros
This commit is contained in:
@@ -56,6 +56,7 @@
|
||||
* .16 04-18-90 mrk extensible record and device support
|
||||
* .17 09-18-91 jba fixed bug in break point table conversion
|
||||
* .18 09-30-91 jba Moved break point table conversion to libCom
|
||||
* .19 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -297,10 +298,7 @@ static void alarm(pai)
|
||||
double val=pai->val;
|
||||
|
||||
if(pai->udf == TRUE ){
|
||||
if (pai->nsev<VALID_ALARM){
|
||||
pai->nsta = UDF_ALARM;
|
||||
pai->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(pai,UDF_ALARM,VALID_ALARM);
|
||||
return;
|
||||
}
|
||||
/* if difference is not > hysterisis use lalm not val */
|
||||
@@ -309,43 +307,27 @@ static void alarm(pai)
|
||||
if (ftemp < pai->hyst) val=pai->lalm;
|
||||
|
||||
/* alarm condition hihi */
|
||||
if (pai->nsev<pai->hhsv){
|
||||
if (val > pai->hihi){
|
||||
pai->lalm = val;
|
||||
pai->nsta = HIHI_ALARM;
|
||||
pai->nsev = pai->hhsv;
|
||||
return;
|
||||
}
|
||||
if (val > pai->hihi && recGblSetSevr(pai,HIHI_ALARM,pai->hhsv)){
|
||||
pai->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (pai->nsev<pai->llsv){
|
||||
if (val < pai->lolo){
|
||||
pai->lalm = val;
|
||||
pai->nsta = LOLO_ALARM;
|
||||
pai->nsev = pai->llsv;
|
||||
return;
|
||||
}
|
||||
if (val < pai->lolo && recGblSetSevr(pai,LOLO_ALARM,pai->llsv)){
|
||||
pai->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition high */
|
||||
if (pai->nsev<pai->hsv){
|
||||
if (val > pai->high){
|
||||
pai->lalm = val;
|
||||
pai->nsta = HIGH_ALARM;
|
||||
pai->nsev =pai->hsv;
|
||||
return;
|
||||
}
|
||||
if (val > pai->high && recGblSetSevr(pai,HIGH_ALARM,pai->hsv)){
|
||||
pai->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (pai->nsev<pai->lsv){
|
||||
if (val < pai->low){
|
||||
pai->lalm = val;
|
||||
pai->nsta = LOW_ALARM;
|
||||
pai->nsev = pai->lsv;
|
||||
return;
|
||||
}
|
||||
/* alarm condition low */
|
||||
if (val < pai->low && recGblSetSevr(pai,LOW_ALARM,pai->lsv)){
|
||||
pai->lalm = val;
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -372,10 +354,7 @@ struct aiRecord *pai;
|
||||
}
|
||||
else { /* must use breakpoint table */
|
||||
if (cvtRawToEngBpt(&val,pai->linr,pai->init,&pai->pbrk,&pai->lbrk)!=0) {
|
||||
if(pai->nsev < VALID_ALARM) {
|
||||
pai->nsta = SOFT_ALARM;
|
||||
pai->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(pai,SOFT_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -398,15 +377,7 @@ static void monitor(pai)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pai->stat;
|
||||
sevr=pai->sevr;
|
||||
nsta=pai->nsta;
|
||||
nsev=pai->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pai->stat = nsta;
|
||||
pai->sevr = nsev;
|
||||
pai->nsta = 0;
|
||||
pai->nsev = 0;
|
||||
recGblResetSevr(pai,stat,sevr,nsta,nsev);
|
||||
|
||||
monitor_mask = 0;
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
* .18 07-27-90 lrd implement the output to a database record
|
||||
* .19 10-10-90 mrk extensible record and device support
|
||||
* .20 09-25-91 jba added breakpoint table conversion
|
||||
* .21 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -291,8 +292,8 @@ static long get_control_double(paddr,pcd)
|
||||
{
|
||||
struct aoRecord *pao=(struct aoRecord *)paddr->precord;
|
||||
|
||||
pcd->upper_ctrl_limit = pao->hopr;
|
||||
pcd->lower_ctrl_limit = pao->lopr;
|
||||
pcd->upper_ctrl_limit = pao->drvh;
|
||||
pcd->lower_ctrl_limit = pao->drvl;
|
||||
return(0);
|
||||
}
|
||||
static long get_alarm_double(paddr,pad)
|
||||
@@ -316,10 +317,7 @@ static void alarm(pao)
|
||||
double val=pao->val;
|
||||
|
||||
if(pao->udf == TRUE ){
|
||||
if (pao->nsev<VALID_ALARM){
|
||||
pao->nsta = UDF_ALARM;
|
||||
pao->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(pao,UDF_ALARM,VALID_ALARM);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -329,47 +327,30 @@ static void alarm(pao)
|
||||
if (ftemp < pao->hyst) val=pao->lalm;
|
||||
|
||||
/* alarm condition hihi */
|
||||
if (pao->nsev<pao->hhsv){
|
||||
if (val > pao->hihi){
|
||||
pao->lalm = val;
|
||||
pao->nsta = HIHI_ALARM;
|
||||
pao->nsev = pao->hhsv;
|
||||
return;
|
||||
}
|
||||
if (val > pao->hihi && recGblSetSevr(pao,HIHI_ALARM,pao->hhsv)){
|
||||
pao->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (pao->nsev<pao->llsv){
|
||||
if (val < pao->lolo){
|
||||
pao->lalm = val;
|
||||
pao->nsta = LOLO_ALARM;
|
||||
pao->nsev = pao->llsv;
|
||||
return;
|
||||
}
|
||||
if (val < pao->lolo && recGblSetSevr(pao,LOLO_ALARM,pao->llsv)){
|
||||
pao->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition high */
|
||||
if (pao->nsev<pao->hsv){
|
||||
if (val > pao->high){
|
||||
pao->lalm = val;
|
||||
pao->nsta = HIGH_ALARM;
|
||||
pao->nsev =pao->hsv;
|
||||
return;
|
||||
}
|
||||
if (val > pao->high && recGblSetSevr(pao,HIGH_ALARM,pao->hsv)){
|
||||
pao->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (pao->nsev<pao->lsv){
|
||||
if (val < pao->low){
|
||||
pao->lalm = val;
|
||||
pao->nsta = LOW_ALARM;
|
||||
pao->nsev = pao->lsv;
|
||||
return;
|
||||
}
|
||||
/* alarm condition low */
|
||||
if (val < pao->low && recGblSetSevr(pao,LOW_ALARM,pao->lsv)){
|
||||
pao->lalm = val;
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
static int convert(pao)
|
||||
struct aoRecord *pao;
|
||||
@@ -392,10 +373,7 @@ static int convert(pao)
|
||||
&value,&options,&nRequest);
|
||||
pao->pact = save_pact;
|
||||
if(status) {
|
||||
if(pao->nsev<VALID_ALARM) {
|
||||
pao->nsta = LINK_ALARM;
|
||||
pao->nsev=VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(pao,LINK_ALARM,VALID_ALARM);
|
||||
return(1);
|
||||
}
|
||||
if (pao->oif == OUTPUT_INCREMENTAL) value += pao->val;
|
||||
@@ -433,10 +411,7 @@ static int convert(pao)
|
||||
}
|
||||
}else{
|
||||
if(cvtEngToRawBpt(&value,pao->linr,pao->init,&pao->pbrk,&pao->lbrk)!=0){
|
||||
if (pao->nsev<VALID_ALARM){
|
||||
pao->nsta=SOFT_ALARM;
|
||||
pao->nsev=VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(pao,SOFT_ALARM,VALID_ALARM);
|
||||
return(1);
|
||||
}
|
||||
pao->rval=value;
|
||||
@@ -453,15 +428,7 @@ static void monitor(pao)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pao->stat;
|
||||
sevr=pao->sevr;
|
||||
nsta=pao->nsta;
|
||||
nsev=pao->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pao->stat = nsta;
|
||||
pao->sevr = nsev;
|
||||
pao->nsta = 0;
|
||||
pao->nsev = 0;
|
||||
recGblResetSevr(pao,stat,sevr,nsta,nsev);
|
||||
|
||||
monitor_mask = 0;
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
* .11 04-11-90 lrd make local variables static
|
||||
* .12 10-10-90 mrk Made changes for new record and device support
|
||||
* .13 10-24-91 jba Moved comment
|
||||
* .14 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -229,33 +230,21 @@ static void alarm(pbi)
|
||||
|
||||
|
||||
if(pbi->udf == TRUE){
|
||||
if (pbi->nsev<VALID_ALARM){
|
||||
pbi->nsta = UDF_ALARM;
|
||||
pbi->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(pbi,UDF_ALARM,VALID_ALARM);
|
||||
return;
|
||||
}
|
||||
|
||||
if(val>1)return;
|
||||
/* check for state alarm */
|
||||
if (val == 0){
|
||||
if (pbi->nsev<pbi->zsv){
|
||||
pbi->nsta = STATE_ALARM;
|
||||
pbi->nsev = pbi->zsv;
|
||||
}
|
||||
recGblSetSevr(pbi,STATE_ALARM,pbi->zsv);
|
||||
}else{
|
||||
if (pbi->nsev<pbi->osv){
|
||||
pbi->nsta = STATE_ALARM;
|
||||
pbi->nsev = pbi->osv;
|
||||
}
|
||||
recGblSetSevr(pbi,STATE_ALARM,pbi->osv);
|
||||
}
|
||||
|
||||
/* check for cos alarm */
|
||||
if(val == pbi->lalm) return;
|
||||
if (pbi->nsev<pbi->cosv) {
|
||||
pbi->nsta = COS_ALARM;
|
||||
pbi->nsev = pbi->cosv;
|
||||
}
|
||||
recGblSetSevr(pbi,COS_ALARM,pbi->cosv);
|
||||
pbi->lalm = val;
|
||||
return;
|
||||
}
|
||||
@@ -267,15 +256,7 @@ static void monitor(pbi)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pbi->stat;
|
||||
sevr=pbi->sevr;
|
||||
nsta=pbi->nsta;
|
||||
nsev=pbi->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pbi->stat = nsta;
|
||||
pbi->sevr = nsev;
|
||||
pbi->nsta = 0;
|
||||
pbi->nsev = 0;
|
||||
recGblResetSevr(pbi,stat,sevr,nsta,nsev);
|
||||
|
||||
monitor_mask = 0;
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
* .15 04-11-90 lrd make locals static
|
||||
* .16 05-02-90 lrd fix initial value set in the DOL field
|
||||
* .17 10-10-90 mrk Changes for record and device support
|
||||
* .18 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -214,10 +215,7 @@ static long process(paddr)
|
||||
pbo->val = val;
|
||||
pbo->udf = FALSE;
|
||||
}else {
|
||||
if(pbo->nsev < VALID_ALARM) {
|
||||
pbo->nsev = VALID_ALARM;
|
||||
pbo->nsta = LINK_ALARM;
|
||||
}
|
||||
recGblSetSevr(pbo,LINK_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
if ( pbo->mask != 0 ) {
|
||||
@@ -310,31 +308,19 @@ static void alarm(pbo)
|
||||
|
||||
/* check for udf alarm */
|
||||
if(pbo->udf == TRUE ){
|
||||
if (pbo->nsev<VALID_ALARM){
|
||||
pbo->nsta = UDF_ALARM;
|
||||
pbo->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(pbo,UDF_ALARM,VALID_ALARM);
|
||||
}
|
||||
|
||||
/* check for state alarm */
|
||||
if (val == 0){
|
||||
if (pbo->nsev<pbo->zsv){
|
||||
pbo->nsta = STATE_ALARM;
|
||||
pbo->nsev = pbo->zsv;
|
||||
}
|
||||
recGblSetSevr(pbo,STATE_ALARM,pbo->zsv);
|
||||
}else{
|
||||
if (pbo->nsev<pbo->osv){
|
||||
pbo->nsta = STATE_ALARM;
|
||||
pbo->nsev = pbo->osv;
|
||||
}
|
||||
recGblSetSevr(pbo,STATE_ALARM,pbo->osv);
|
||||
}
|
||||
|
||||
/* check for cos alarm */
|
||||
if(val == pbo->lalm) return;
|
||||
if (pbo->nsev<pbo->cosv) {
|
||||
pbo->nsta = COS_ALARM;
|
||||
pbo->nsev = pbo->cosv;
|
||||
}
|
||||
recGblSetSevr(pbo,COS_ALARM,pbo->cosv);
|
||||
pbo->lalm = val;
|
||||
return;
|
||||
}
|
||||
@@ -346,15 +332,7 @@ static void monitor(pbo)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pbo->stat;
|
||||
sevr=pbo->sevr;
|
||||
nsta=pbo->nsta;
|
||||
nsev=pbo->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pbo->stat = nsta;
|
||||
pbo->sevr = nsev;
|
||||
pbo->nsta = 0;
|
||||
pbo->nsev = 0;
|
||||
recGblResetSevr(pbo,stat,sevr,nsta,nsev);
|
||||
|
||||
monitor_mask = 0;
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
* .18 10-10-90 mrk Made changes for new record support
|
||||
* Note that all calc specific details moved
|
||||
* to libCalc
|
||||
* .19 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -150,10 +151,7 @@ static long process(paddr)
|
||||
pcalc->pact = TRUE;
|
||||
if(fetch_values(pcalc)==0) {
|
||||
if(calcPerform(&pcalc->a,&pcalc->val,pcalc->rpcl)) {
|
||||
if(pcalc->nsev<VALID_ALARM) {
|
||||
pcalc->nsta = CALC_ALARM;
|
||||
pcalc->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(pcalc,CALC_ALARM,VALID_ALARM);
|
||||
} else pcalc->udf = FALSE;
|
||||
}
|
||||
tsLocalTime(&pcalc->time);
|
||||
@@ -263,10 +261,7 @@ static void alarm(pcalc)
|
||||
double val=pcalc->val;
|
||||
|
||||
if(pcalc->udf == TRUE ) {
|
||||
if(pcalc->nsev<VALID_ALARM) {
|
||||
pcalc->nsev = VALID_ALARM;
|
||||
pcalc->nsta = UDF_ALARM;
|
||||
}
|
||||
recGblSetSevr(pcalc,UDF_ALARM,VALID_ALARM);
|
||||
return;
|
||||
}
|
||||
/* if difference is not > hysterisis use lalm not val */
|
||||
@@ -275,43 +270,27 @@ static void alarm(pcalc)
|
||||
if (ftemp < pcalc->hyst) val=pcalc->lalm;
|
||||
|
||||
/* alarm condition hihi */
|
||||
if (pcalc->nsev<pcalc->hhsv){
|
||||
if (val > pcalc->hihi){
|
||||
pcalc->lalm = val;
|
||||
pcalc->nsta = HIHI_ALARM;
|
||||
pcalc->nsev = pcalc->hhsv;
|
||||
return;
|
||||
}
|
||||
if (val > pcalc->hihi && recGblSetSevr(pcalc,HIHI_ALARM,pcalc->hhsv)){
|
||||
pcalc->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (pcalc->nsev<pcalc->llsv){
|
||||
if (val < pcalc->lolo){
|
||||
pcalc->lalm = val;
|
||||
pcalc->nsta = LOLO_ALARM;
|
||||
pcalc->nsev = pcalc->llsv;
|
||||
return;
|
||||
}
|
||||
if (val < pcalc->lolo && recGblSetSevr(pcalc,LOLO_ALARM,pcalc->llsv)){
|
||||
pcalc->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition high */
|
||||
if (pcalc->nsev<pcalc->hsv){
|
||||
if (val > pcalc->high){
|
||||
pcalc->lalm = val;
|
||||
pcalc->nsta = HIGH_ALARM;
|
||||
pcalc->nsev =pcalc->hsv;
|
||||
return;
|
||||
}
|
||||
if (val > pcalc->high && recGblSetSevr(pcalc,HIGH_ALARM,pcalc->hsv)){
|
||||
pcalc->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (pcalc->nsev<pcalc->lsv){
|
||||
if (val < pcalc->low){
|
||||
pcalc->lalm = val;
|
||||
pcalc->nsta = LOW_ALARM;
|
||||
pcalc->nsev = pcalc->lsv;
|
||||
return;
|
||||
}
|
||||
/* alarm condition low */
|
||||
if (val < pcalc->low && recGblSetSevr(pcalc,LOW_ALARM,pcalc->lsv)){
|
||||
pcalc->lalm = val;
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -327,15 +306,7 @@ static void monitor(pcalc)
|
||||
int i;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pcalc->stat;
|
||||
sevr=pcalc->sevr;
|
||||
nsta=pcalc->nsta;
|
||||
nsev=pcalc->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pcalc->stat = nsta;
|
||||
pcalc->sevr = nsev;
|
||||
pcalc->nsta = 0;
|
||||
pcalc->nsev = 0;
|
||||
recGblResetSevr(pcalc,stat,sevr,nsta,nsev);
|
||||
|
||||
monitor_mask = 0;
|
||||
|
||||
@@ -396,10 +367,7 @@ struct calcRecord *pcalc;
|
||||
status = dbGetLink(&plink->value.db_link,pcalc,DBR_DOUBLE,
|
||||
pvalue,&options,&nRequest);
|
||||
if(status!=0) {
|
||||
if(pcalc->nsev<VALID_ALARM) {
|
||||
pcalc->nsev=VALID_ALARM;
|
||||
pcalc->nsta=LINK_ALARM;
|
||||
}
|
||||
recGblSetSevr(pcalc,LINK_ALARM,VALID_ALARM);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
* .09 07-26-90 lrd fixed the N-to-1 character compression
|
||||
* value was not initialized
|
||||
* .10 10-11-90 mrk Made changes for new record support
|
||||
* .11 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -149,10 +150,7 @@ static long process(paddr)
|
||||
if (pcompress->inp.type != DB_LINK) {
|
||||
status=0;
|
||||
}else if (pcompress->wptr == NULL) {
|
||||
if(pcompress->nsev<VALID_ALARM) {
|
||||
pcompress->nsta = READ_ALARM;
|
||||
pcompress->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(pcompress,READ_ALARM,VALID_ALARM);
|
||||
status=0;
|
||||
} else {
|
||||
struct dbAddr *pdbAddr =
|
||||
@@ -163,10 +161,7 @@ static long process(paddr)
|
||||
|
||||
if(dbGetLink(&pcompress->inp.value.db_link,pcompress,DBR_DOUBLE,pcompress->wptr,
|
||||
&options,&no_elements)!=0){
|
||||
if(pcompress->nsev < VALID_ALARM) {
|
||||
pcompress->nsev = VALID_ALARM;
|
||||
pcompress->nsta = LINK_ALARM;
|
||||
}
|
||||
recGblSetSevr(pcompress,LINK_ALARM,VALID_ALARM);
|
||||
}
|
||||
|
||||
if(alg==AVERAGE) {
|
||||
@@ -319,15 +314,7 @@ static void monitor(pcompress)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pcompress->stat;
|
||||
sevr=pcompress->sevr;
|
||||
nsta=pcompress->nsta;
|
||||
nsev=pcompress->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pcompress->stat = nsta;
|
||||
pcompress->sevr = nsev;
|
||||
pcompress->nsta = 0;
|
||||
pcompress->nsev = 0;
|
||||
recGblResetSevr(pcompress,stat,sevr,nsta,nsev);
|
||||
|
||||
monitor_mask = 0;
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
* .07 10-31-90 mrk extensible record and device support
|
||||
* .08 09-25-91 jba added input link for seln
|
||||
* .09 09-26-91 jba added select_mask option
|
||||
* .10 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -131,10 +132,7 @@ static long process(paddr)
|
||||
status=dbGetLink(&(pfanout->sell.value.db_link),pfanout,DBR_USHORT,
|
||||
&(pfanout->seln),&options,&nRequest);
|
||||
if(status!=0) {
|
||||
if (pfanout->nsev<VALID_ALARM) {
|
||||
pfanout->nsev = VALID_ALARM;
|
||||
pfanout->nsta = LINK_ALARM;
|
||||
}
|
||||
recGblSetSevr(pfanout,LINK_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
switch (pfanout->selm){
|
||||
@@ -148,10 +146,7 @@ static long process(paddr)
|
||||
break;
|
||||
case (SELECTED):
|
||||
if(pfanout->seln<0 || pfanout->seln>6) {
|
||||
if(pfanout->nsev<VALID_ALARM) {
|
||||
pfanout->nsev = VALID_ALARM;
|
||||
pfanout->nsta = SOFT_ALARM;
|
||||
}
|
||||
recGblSetSevr(pfanout,SOFT_ALARM,VALID_ALARM);
|
||||
break;
|
||||
}
|
||||
if(pfanout->seln==0) {
|
||||
@@ -166,10 +161,7 @@ static long process(paddr)
|
||||
break;
|
||||
}
|
||||
if(pfanout->seln<0 || pfanout->seln>63 ) {
|
||||
if(pfanout->nsev<VALID_ALARM) {
|
||||
pfanout->nsev = VALID_ALARM;
|
||||
pfanout->nsta = SOFT_ALARM;
|
||||
}
|
||||
recGblSetSevr(pfanout,SOFT_ALARM,VALID_ALARM);
|
||||
break;
|
||||
}
|
||||
plink=&(pfanout->lnk1);
|
||||
@@ -179,24 +171,13 @@ static long process(paddr)
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if(pfanout->nsev<VALID_ALARM) {
|
||||
pfanout->nsev = VALID_ALARM;
|
||||
pfanout->nsta = SOFT_ALARM;
|
||||
}
|
||||
recGblSetSevr(pfanout,SOFT_ALARM,VALID_ALARM);
|
||||
}
|
||||
pfanout->udf=FALSE;
|
||||
tsLocalTime(&pfanout->time);
|
||||
/* check monitors*/
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pfanout->stat;
|
||||
sevr=pfanout->sevr;
|
||||
nsta=pfanout->nsta;
|
||||
nsev=pfanout->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pfanout->stat = nsta;
|
||||
pfanout->sevr = nsev;
|
||||
pfanout->nsta = 0;
|
||||
pfanout->nsev = 0;
|
||||
recGblResetSevr(pfanout,stat,sevr,nsta,nsev);
|
||||
if((stat!=nsta || sevr!=nsev)){
|
||||
db_post_events(pfanout,&pfanout->stat,DBE_VALUE);
|
||||
db_post_events(pfanout,&pfanout->sevr,DBE_VALUE);
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
*
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 mm-dd-yy iii Comment
|
||||
* .01 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
|
||||
@@ -217,10 +217,7 @@ static void alarm(plongin)
|
||||
long val=plongin->val;
|
||||
|
||||
if(plongin->udf == TRUE ){
|
||||
if (plongin->nsev<VALID_ALARM){
|
||||
plongin->nsta = UDF_ALARM;
|
||||
plongin->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(plongin,UDF_ALARM,VALID_ALARM);
|
||||
return;
|
||||
}
|
||||
/* if difference is not > hysterisis use lalm not val */
|
||||
@@ -228,46 +225,30 @@ static void alarm(plongin)
|
||||
if(ftemp<0) ftemp = -ftemp;
|
||||
if (ftemp < plongin->hyst) val=plongin->lalm;
|
||||
|
||||
/* alarm condition hihi */
|
||||
if (plongin->nsev<plongin->hhsv){
|
||||
if (val > plongin->hihi){
|
||||
plongin->lalm = val;
|
||||
plongin->nsta = HIHI_ALARM;
|
||||
plongin->nsev = plongin->hhsv;
|
||||
return;
|
||||
}
|
||||
}
|
||||
/* alarm condition hihi */
|
||||
if (val > plongin->hihi && recGblSetSevr(plongin,HIHI_ALARM,plongin->hhsv)){
|
||||
plongin->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (plongin->nsev<plongin->llsv){
|
||||
if (val < plongin->lolo){
|
||||
plongin->lalm = val;
|
||||
plongin->nsta = LOLO_ALARM;
|
||||
plongin->nsev = plongin->llsv;
|
||||
return;
|
||||
}
|
||||
}
|
||||
/* alarm condition lolo */
|
||||
if (val < plongin->lolo && recGblSetSevr(plongin,LOLO_ALARM,plongin->llsv)){
|
||||
plongin->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition high */
|
||||
if (plongin->nsev<plongin->hsv){
|
||||
if (val > plongin->high){
|
||||
plongin->lalm = val;
|
||||
plongin->nsta = HIGH_ALARM;
|
||||
plongin->nsev =plongin->hsv;
|
||||
return;
|
||||
}
|
||||
}
|
||||
/* alarm condition high */
|
||||
if (val > plongin->high && recGblSetSevr(plongin,HIGH_ALARM,plongin->hsv)){
|
||||
plongin->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (plongin->nsev<plongin->lsv){
|
||||
if (val < plongin->low){
|
||||
plongin->lalm = val;
|
||||
plongin->nsta = LOW_ALARM;
|
||||
plongin->nsev = plongin->lsv;
|
||||
return;
|
||||
}
|
||||
}
|
||||
return;
|
||||
/* alarm condition low */
|
||||
if (val < plongin->low && recGblSetSevr(plongin,LOW_ALARM,plongin->lsv)){
|
||||
plongin->lalm = val;
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
static void monitor(plongin)
|
||||
@@ -278,15 +259,7 @@ static void monitor(plongin)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=plongin->stat;
|
||||
sevr=plongin->sevr;
|
||||
nsta=plongin->nsta;
|
||||
nsev=plongin->nsev;
|
||||
/*set current stat and sevr*/
|
||||
plongin->stat = nsta;
|
||||
plongin->sevr = nsev;
|
||||
plongin->nsta = 0;
|
||||
plongin->nsev = 0;
|
||||
recGblResetSevr(plongin,stat,sevr,nsta,nsev);
|
||||
|
||||
/* Flags which events to fire on the value field */
|
||||
monitor_mask = 0;
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
*
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 mm-dd-yy iii Comment
|
||||
* .01 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
|
||||
@@ -148,10 +148,7 @@ static long process(paddr)
|
||||
DBR_LONG,&plongout->val,&options,&nRequest);
|
||||
plongout->pact = FALSE;
|
||||
if(status!=0){
|
||||
if(plongout->nsev < VALID_ALARM) {
|
||||
plongout->nsev = VALID_ALARM;
|
||||
plongout->nsta = LINK_ALARM;
|
||||
}
|
||||
recGblSetSevr(plongout,LINK_ALARM,VALID_ALARM);
|
||||
} else plongout->udf=FALSE;
|
||||
}
|
||||
}
|
||||
@@ -240,10 +237,7 @@ static void alarm(plongout)
|
||||
long val=plongout->val;
|
||||
|
||||
if(plongout->udf == TRUE ){
|
||||
if (plongout->nsev<VALID_ALARM){
|
||||
plongout->nsta = UDF_ALARM;
|
||||
plongout->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(plongout,UDF_ALARM,VALID_ALARM);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -253,47 +247,30 @@ static void alarm(plongout)
|
||||
if (ftemp < plongout->hyst) val=plongout->lalm;
|
||||
|
||||
/* alarm condition hihi */
|
||||
if (plongout->nsev<plongout->hhsv){
|
||||
if (val > plongout->hihi){
|
||||
plongout->lalm = val;
|
||||
plongout->nsta = HIHI_ALARM;
|
||||
plongout->nsev = plongout->hhsv;
|
||||
return;
|
||||
}
|
||||
if (val > plongout->hihi && recGblSetSevr(plongout,HIHI_ALARM,plongout->hhsv)){
|
||||
plongout->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (plongout->nsev<plongout->llsv){
|
||||
if (val < plongout->lolo){
|
||||
plongout->lalm = val;
|
||||
plongout->nsta = LOLO_ALARM;
|
||||
plongout->nsev = plongout->llsv;
|
||||
return;
|
||||
}
|
||||
if (val < plongout->lolo && recGblSetSevr(plongout,LOLO_ALARM,plongout->llsv)){
|
||||
plongout->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition high */
|
||||
if (plongout->nsev<plongout->hsv){
|
||||
if (val > plongout->high){
|
||||
plongout->lalm = val;
|
||||
plongout->nsta = HIGH_ALARM;
|
||||
plongout->nsev =plongout->hsv;
|
||||
return;
|
||||
}
|
||||
if (val > plongout->high && recGblSetSevr(plongout,HIGH_ALARM,plongout->hsv)){
|
||||
plongout->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (plongout->nsev<plongout->lsv){
|
||||
if (val < plongout->low){
|
||||
plongout->lalm = val;
|
||||
plongout->nsta = LOW_ALARM;
|
||||
plongout->nsev = plongout->lsv;
|
||||
return;
|
||||
}
|
||||
/* alarm condition low */
|
||||
if (val < plongout->low && recGblSetSevr(plongout,LOW_ALARM,plongout->lsv)){
|
||||
plongout->lalm = val;
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
static void monitor(plongout)
|
||||
struct longoutRecord *plongout;
|
||||
@@ -304,15 +281,7 @@ static void monitor(plongout)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=plongout->stat;
|
||||
sevr=plongout->sevr;
|
||||
nsta=plongout->nsta;
|
||||
nsev=plongout->nsev;
|
||||
/*set current stat and sevr*/
|
||||
plongout->stat = nsta;
|
||||
plongout->sevr = nsev;
|
||||
plongout->nsta = 0;
|
||||
plongout->nsev = 0;
|
||||
recGblResetSevr(plongout,stat,sevr,nsta,nsev);
|
||||
|
||||
/* Flags which events to fire on the value field */
|
||||
monitor_mask = 0;
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
* .11 12-06-89 lrd add database fetch support
|
||||
* .12 02-08-90 lrd add Allen-Bradley PLC support
|
||||
* .13 10-31-90 mrk changes for new record and device support
|
||||
* .14 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -312,35 +313,22 @@ static void alarm(pmbbi)
|
||||
|
||||
/* check for udf alarm */
|
||||
if(pmbbi->udf == TRUE ){
|
||||
if (pmbbi->nsev<VALID_ALARM){
|
||||
pmbbi->nsta = UDF_ALARM;
|
||||
pmbbi->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(pmbbi,UDF_ALARM,VALID_ALARM);
|
||||
}
|
||||
|
||||
/* check for state alarm */
|
||||
/* unknown state */
|
||||
if (val > 15){
|
||||
if (pmbbi->nsev<pmbbi->unsv){
|
||||
pmbbi->nsta = STATE_ALARM;
|
||||
pmbbi->nsev = pmbbi->unsv;
|
||||
}
|
||||
recGblSetSevr(pmbbi,STATE_ALARM,pmbbi->unsv);
|
||||
} else {
|
||||
/* in a state which is an error */
|
||||
severities = (unsigned short *)&(pmbbi->zrsv);
|
||||
if (pmbbi->nsev<severities[pmbbi->val]){
|
||||
pmbbi->nsta = STATE_ALARM;
|
||||
pmbbi->nsev = severities[pmbbi->val];
|
||||
}
|
||||
recGblSetSevr(pmbbi,STATE_ALARM,severities[pmbbi->val]);
|
||||
}
|
||||
|
||||
/* check for cos alarm */
|
||||
if(val == pmbbi->lalm) return;
|
||||
if (pmbbi->nsev<pmbbi->cosv){
|
||||
pmbbi->nsta = COS_ALARM;
|
||||
pmbbi->nsev = pmbbi->cosv;
|
||||
return;
|
||||
}
|
||||
recGblSetSevr(pmbbi,COS_ALARM,pmbbi->cosv);
|
||||
pmbbi->lalm = val;
|
||||
return;
|
||||
}
|
||||
@@ -352,18 +340,9 @@ static void monitor(pmbbi)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pmbbi->stat;
|
||||
sevr=pmbbi->sevr;
|
||||
nsta=pmbbi->nsta;
|
||||
nsev=pmbbi->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pmbbi->stat = nsta;
|
||||
pmbbi->sevr = nsev;
|
||||
pmbbi->nsta = 0;
|
||||
pmbbi->nsev = 0;
|
||||
recGblResetSevr(pmbbi,stat,sevr,nsta,nsev);
|
||||
|
||||
monitor_mask = 0;
|
||||
|
||||
/* alarm condition changed this scan */
|
||||
if (stat!=nsta || sevr!=nsev){
|
||||
/* post events for alarm condition change*/
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
* Allen-Bradley and added PLC support
|
||||
* .15 04-11-90 lrd make locals static
|
||||
* .16 10-11-90 mrk make changes for new record and device support
|
||||
* .17 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -192,7 +193,7 @@ static long init_record(pmbbo)
|
||||
pmbbo->val = (unsigned short)rval;
|
||||
}
|
||||
pmbbo->udf = FALSE;
|
||||
} else if (status==2) status==0;
|
||||
} else if (status==2) status=0;
|
||||
}
|
||||
init_common(pmbbo);
|
||||
return(0);
|
||||
@@ -227,28 +228,19 @@ static long process(paddr)
|
||||
pmbbo->val= val;
|
||||
pmbbo->udf= FALSE;
|
||||
} else {
|
||||
if(pmbbo->nsev < VALID_ALARM) {
|
||||
pmbbo->nsev = VALID_ALARM;
|
||||
pmbbo->nsta = LINK_ALARM;
|
||||
}
|
||||
recGblSetSevr(pmbbo,LINK_ALARM,VALID_ALARM);
|
||||
goto DONT_WRITE;
|
||||
}
|
||||
}
|
||||
if(pmbbo->udf==TRUE) {
|
||||
if(pmbbo->nsev < VALID_ALARM) {
|
||||
pmbbo->nsev = VALID_ALARM;
|
||||
pmbbo->nsta = UDF_ALARM;
|
||||
}
|
||||
recGblSetSevr(pmbbo,UDF_ALARM,VALID_ALARM);
|
||||
goto DONT_WRITE;
|
||||
}
|
||||
if(pmbbo->sdef) {
|
||||
unsigned long *pvalues = &(pmbbo->zrvl);
|
||||
|
||||
if(pmbbo->val>15) {
|
||||
if(pmbbo->nsev<VALID_ALARM ) {
|
||||
pmbbo->nsta = SOFT_ALARM;
|
||||
pmbbo->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(pmbbo,SOFT_ALARM,VALID_ALARM);
|
||||
goto DONT_WRITE;
|
||||
}
|
||||
pmbbo->rval = pvalues[pmbbo->val];
|
||||
@@ -370,26 +362,16 @@ static void alarm(pmbbo)
|
||||
/* check for state alarm */
|
||||
/* unknown state */
|
||||
if (val > 15){
|
||||
if (pmbbo->nsev<pmbbo->unsv){
|
||||
pmbbo->nsta = STATE_ALARM;
|
||||
pmbbo->nsev = pmbbo->unsv;
|
||||
}
|
||||
recGblSetSevr(pmbbo,STATE_ALARM,pmbbo->unsv);
|
||||
} else {
|
||||
/* in a state which is an error */
|
||||
severities = (unsigned short *)&(pmbbo->zrsv);
|
||||
if (pmbbo->nsev<severities[pmbbo->val]){
|
||||
pmbbo->nsta = STATE_ALARM;
|
||||
pmbbo->nsev = severities[pmbbo->val];
|
||||
}
|
||||
recGblSetSevr(pmbbo,STATE_ALARM,severities[pmbbo->val]);
|
||||
}
|
||||
|
||||
/* check for cos alarm */
|
||||
if(val == pmbbo->lalm) return;
|
||||
if (pmbbo->nsev<pmbbo->cosv){
|
||||
pmbbo->nsta = COS_ALARM;
|
||||
pmbbo->nsev = pmbbo->cosv;
|
||||
return;
|
||||
}
|
||||
if(recGblSetSevr(pmbbo,COS_ALARM,pmbbo->cosv)) return;
|
||||
pmbbo->lalm = val;
|
||||
return;
|
||||
}
|
||||
@@ -401,15 +383,7 @@ static void monitor(pmbbo)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pmbbo->stat;
|
||||
sevr=pmbbo->sevr;
|
||||
nsta=pmbbo->nsta;
|
||||
nsev=pmbbo->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pmbbo->stat = nsta;
|
||||
pmbbo->sevr = nsev;
|
||||
pmbbo->nsta = 0;
|
||||
pmbbo->nsev = 0;
|
||||
recGblResetSevr(pmbbo,stat,sevr,nsta,nsev);
|
||||
|
||||
monitor_mask = 0;
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 10-10-90 mrk extensible record and device support
|
||||
* .02 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -121,15 +122,7 @@ static void monitor(ppermissive)
|
||||
unsigned short val,oval,wflg,oflg;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=ppermissive->stat;
|
||||
sevr=ppermissive->sevr;
|
||||
nsta=ppermissive->nsta;
|
||||
nsev=ppermissive->nsev;
|
||||
/*set current stat and sevr*/
|
||||
ppermissive->stat = nsta;
|
||||
ppermissive->sevr = nsev;
|
||||
ppermissive->nsta = 0;
|
||||
ppermissive->nsev = 0;
|
||||
recGblResetSevr(ppermissive,stat,sevr,nsta,nsev);
|
||||
/* get val,oval,wflg,oflg*/
|
||||
val=ppermissive->val;
|
||||
oval=ppermissive->oval;
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 10-15-90 mrk changes for new record support
|
||||
* .02 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -211,43 +212,27 @@ static void alarm(ppid)
|
||||
if (ftemp < ppid->hyst) val=ppid->lalm;
|
||||
|
||||
/* alarm condition hihi */
|
||||
if (ppid->nsev<ppid->hhsv){
|
||||
if (val > ppid->hihi){
|
||||
ppid->lalm = val;
|
||||
ppid->nsta = HIHI_ALARM;
|
||||
ppid->nsev = ppid->hhsv;
|
||||
return;
|
||||
}
|
||||
if (val > ppid->hihi && recGblSetSevr(ppid,HIHI_ALARM,ppid->hhsv)){
|
||||
ppid->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (ppid->nsev<ppid->llsv){
|
||||
if (val < ppid->lolo){
|
||||
ppid->lalm = val;
|
||||
ppid->nsta = LOLO_ALARM;
|
||||
ppid->nsev = ppid->llsv;
|
||||
return;
|
||||
}
|
||||
if (val < ppid->lolo && recGblSetSevr(ppid,LOLO_ALARM,ppid->llsv)){
|
||||
ppid->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition high */
|
||||
if (ppid->nsev<ppid->hsv){
|
||||
if (val > ppid->high){
|
||||
ppid->lalm = val;
|
||||
ppid->nsta = HIGH_ALARM;
|
||||
ppid->nsev =ppid->hsv;
|
||||
return;
|
||||
}
|
||||
if (val > ppid->high && recGblSetSevr(ppid,HIGH_ALARM,ppid->hsv)){
|
||||
ppid->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (ppid->nsev<ppid->lsv){
|
||||
if (val < ppid->low){
|
||||
ppid->lalm = val;
|
||||
ppid->nsta = LOW_ALARM;
|
||||
ppid->nsev = ppid->lsv;
|
||||
return;
|
||||
}
|
||||
/* alarm condition low */
|
||||
if (val < ppid->low && recGblSetSevr(ppid,LOW_ALARM,ppid->lsv)){
|
||||
ppid->lalm = val;
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -260,15 +245,7 @@ static void monitor(ppid)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=ppid->stat;
|
||||
sevr=ppid->sevr;
|
||||
nsta=ppid->nsta;
|
||||
nsev=ppid->nsev;
|
||||
/*set current stat and sevr*/
|
||||
ppid->stat = nsta;
|
||||
ppid->sevr = nsev;
|
||||
ppid->nsta = 0;
|
||||
ppid->nsev = 0;
|
||||
recGblResetSevr(ppid,stat,sevr,nsta,nsev);
|
||||
|
||||
monitor_mask = 0;
|
||||
|
||||
@@ -361,20 +338,13 @@ struct pidRecord *ppid;
|
||||
|
||||
/* fetch the controlled value */
|
||||
if (ppid->cvl.type != DB_LINK) { /* nothing to control*/
|
||||
if (ppid->nsev<VALID_ALARM) {
|
||||
ppid->nsta = SOFT_ALARM;
|
||||
ppid->nsev = VALID_ALARM;
|
||||
return(0);
|
||||
}
|
||||
if (recGblSetSevr(ppid,SOFT_ALARM,VALID_ALARM)) return(0);
|
||||
}
|
||||
options=0;
|
||||
nRequest=1;
|
||||
if(dbGetLink(&(ppid->cvl.value.db_link),ppid,DBR_FLOAT,
|
||||
&cval,&options,&nRequest)!=NULL) {
|
||||
if (ppid->nsev<VALID_ALARM) {
|
||||
ppid->nsta = LINK_ALARM;
|
||||
ppid->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(ppid,LINK_ALARM,VALID_ALARM);
|
||||
return(0);
|
||||
}
|
||||
/* fetch the setpoint */
|
||||
@@ -383,19 +353,13 @@ struct pidRecord *ppid;
|
||||
nRequest=1;
|
||||
if(dbGetLink(&(ppid->stpl.value.db_link),ppid,DBR_FLOAT,
|
||||
&(ppid->val),&options,&nRequest)!=NULL) {
|
||||
if (ppid->nsev<VALID_ALARM) {
|
||||
ppid->nsta = LINK_ALARM;
|
||||
ppid->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(ppid,LINK_ALARM,VALID_ALARM);
|
||||
return(0);
|
||||
} else ppid->udf=FALSE;
|
||||
}
|
||||
val = ppid->val;
|
||||
if (ppid->udf == TRUE ) {
|
||||
if (ppid->nsev<VALID_ALARM) {
|
||||
ppid->nsta = UDF_ALARM;
|
||||
ppid->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(ppid,UDF_ALARM,VALID_ALARM);
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* recPulseCounter.c */
|
||||
/* share/src/rec $Id$ */
|
||||
|
||||
/* recPulser.c - Record Support Routines for PulseCounter records */
|
||||
/* recPulseCounter.c - Record Support Routines for PulseCounter records */
|
||||
/*
|
||||
* Author: Janet Anderson
|
||||
* Date: 10-17-91
|
||||
@@ -29,7 +29,7 @@
|
||||
*
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 mm-dd-yy iii Comment
|
||||
* .01 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -163,10 +163,7 @@ static long process(paddr)
|
||||
&ppc->sgv,&options,&nRequest);
|
||||
ppc->pact = FALSE;
|
||||
if(status!=0) {
|
||||
if (ppc->nsev<VALID_ALARM) {
|
||||
ppc->nsta = LINK_ALARM;
|
||||
ppc->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(ppc,LINK_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
if(status=0){
|
||||
@@ -181,16 +178,14 @@ static long process(paddr)
|
||||
ppc->cmd=save;
|
||||
ppc->osgv=ppc->sgv;
|
||||
if(status!=0) {
|
||||
if (ppc->nsev<VALID_ALARM) {
|
||||
ppc->nsta = SOFT_ALARM;
|
||||
ppc->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(ppc,SOFT_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(ppc->cmd>0){
|
||||
ppc->scmd=ppc->cmd;
|
||||
status=(*pdset->cmd_pc)(ppc);
|
||||
ppc->cmd=CTR_READ;
|
||||
}
|
||||
@@ -277,15 +272,7 @@ static void monitor(ppc)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=ppc->stat;
|
||||
sevr=ppc->sevr;
|
||||
nsta=ppc->nsta;
|
||||
nsev=ppc->nsev;
|
||||
/*set current stat and sevr*/
|
||||
ppc->stat = nsta;
|
||||
ppc->sevr = nsev;
|
||||
ppc->nsta = 0;
|
||||
ppc->nsev = 0;
|
||||
recGblResetSevr(ppc,stat,sevr,nsta,nsev);
|
||||
|
||||
/* Flags which events to fire on the value field */
|
||||
monitor_mask = 0;
|
||||
@@ -301,7 +288,9 @@ static void monitor(ppc)
|
||||
|
||||
monitor_mask |= (DBE_VALUE | DBE_LOG);
|
||||
db_post_events(ppc,&ppc->val,monitor_mask);
|
||||
db_post_events(ppc,&ppc->cmd,monitor_mask);
|
||||
|
||||
if (ppc->scmd != ppc->cmd) {
|
||||
db_post_events(ppc,&ppc->scmd,monitor_mask);
|
||||
ppc->scmd=ppc->cmd;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
*
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 mm-dd-yy iii Comment
|
||||
* .01 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -219,15 +219,7 @@ static void monitor(ppd)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=ppd->stat;
|
||||
sevr=ppd->sevr;
|
||||
nsta=ppd->nsta;
|
||||
nsev=ppd->nsev;
|
||||
/*set current stat and sevr*/
|
||||
ppd->stat = nsta;
|
||||
ppd->sevr = nsev;
|
||||
ppd->nsta = 0;
|
||||
ppd->nsev = 0;
|
||||
recGblResetSevr(ppd,stat,sevr,nsta,nsev);
|
||||
|
||||
/* Flags which events to fire on the value field */
|
||||
monitor_mask = 0;
|
||||
@@ -243,8 +235,14 @@ static void monitor(ppd)
|
||||
|
||||
monitor_mask |= (DBE_VALUE | DBE_LOG);
|
||||
db_post_events(ppd,&ppd->val,monitor_mask);
|
||||
db_post_events(ppd,&ppd->dly,monitor_mask);
|
||||
db_post_events(ppd,&ppd->wide,monitor_mask);
|
||||
if(ppd->odly != ppd->dly){
|
||||
db_post_events(ppd,&ppd->dly,monitor_mask);
|
||||
ppd->odly=ppd->dly;
|
||||
}
|
||||
if(ppd->owid != ppd->wide){
|
||||
db_post_events(ppd,&ppd->wide,monitor_mask);
|
||||
ppd->owid=ppd->wide;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 10-24-91 jba New device support changes
|
||||
* .02 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -164,10 +165,7 @@ static long process(paddr)
|
||||
&ppt->sgv,&options,&nRequest);
|
||||
ppt->pact = FALSE;
|
||||
if(status!=0) {
|
||||
if (ppt->nsev<VALID_ALARM) {
|
||||
ppt->nsta = LINK_ALARM;
|
||||
ppt->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(ppt,LINK_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
if(status=0){
|
||||
@@ -179,11 +177,8 @@ static long process(paddr)
|
||||
status=(*pdset->write_pt)(ppt);
|
||||
ppt->dcy=save;
|
||||
if(status!=0) {
|
||||
if (ppt->nsev<VALID_ALARM) {
|
||||
ppt->nsta = WRITE_ALARM;
|
||||
ppt->nsev = VALID_ALARM;
|
||||
}
|
||||
}
|
||||
recGblSetSevr(ppt,WRITE_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
ppt->osgv=ppt->sgv;
|
||||
}
|
||||
@@ -294,15 +289,7 @@ static void monitor(ppt)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=ppt->stat;
|
||||
sevr=ppt->sevr;
|
||||
nsta=ppt->nsta;
|
||||
nsev=ppt->nsev;
|
||||
/*set current stat and sevr*/
|
||||
ppt->stat = nsta;
|
||||
ppt->sevr = nsev;
|
||||
ppt->nsta = 0;
|
||||
ppt->nsev = 0;
|
||||
recGblResetSevr(ppt,stat,sevr,nsta,nsev);
|
||||
|
||||
/* Flags which events to fire on the value field */
|
||||
monitor_mask = 0;
|
||||
@@ -318,8 +305,13 @@ static void monitor(ppt)
|
||||
|
||||
monitor_mask |= (DBE_VALUE | DBE_LOG);
|
||||
db_post_events(ppt,&ppt->val,monitor_mask);
|
||||
db_post_events(ppt,&ppt->per,monitor_mask);
|
||||
db_post_events(ppt,&ppt->dcy,monitor_mask);
|
||||
|
||||
if(ppt->oper != ppt->per){
|
||||
db_post_events(ppt,&ppt->per,monitor_mask);
|
||||
ppt->oper=ppt->per;
|
||||
}
|
||||
if(ppt->odcy != ppt->dcy){
|
||||
db_post_events(ppt,&ppt->dcy,monitor_mask);
|
||||
ppt->odcy=ppt->dcy;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
* .01 11-16-89 lrd fixed select algorithms not to compare against
|
||||
* the previous value
|
||||
* .02 10-12-90 mrk changes for new record support
|
||||
* .03 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -125,10 +126,7 @@ static long process(paddr)
|
||||
psel->pact = TRUE;
|
||||
if(fetch_values(psel)==0) {
|
||||
if(do_sel(psel)!=0) {
|
||||
if(psel->nsev<VALID_ALARM) {
|
||||
psel->nsta = CALC_ALARM;
|
||||
psel->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(psel,CALC_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -224,11 +222,7 @@ static void alarm(psel)
|
||||
|
||||
/* undefined condition */
|
||||
if(psel->udf ==TRUE){
|
||||
if (psel->nsev<VALID_ALARM){
|
||||
psel->nsta = UDF_ALARM;
|
||||
psel->nsev = VALID_ALARM;
|
||||
return;
|
||||
}
|
||||
if(recGblSetSevr(psel,UDF_ALARM,VALID_ALARM)) return;
|
||||
}
|
||||
/* if difference is not > hysterisis use lalm not val */
|
||||
ftemp = psel->lalm - psel->val;
|
||||
@@ -236,40 +230,27 @@ static void alarm(psel)
|
||||
if (ftemp < psel->hyst) val=psel->lalm;
|
||||
|
||||
/* alarm condition hihi */
|
||||
if (psel->nsev<psel->hhsv){
|
||||
if (val > psel->hihi){
|
||||
psel->lalm = val;
|
||||
psel->nsta = HIHI_ALARM;
|
||||
psel->nsev = psel->hhsv;
|
||||
return;
|
||||
}
|
||||
if (val > psel->hihi && recGblSetSevr(psel,HIHI_ALARM,psel->hhsv)){
|
||||
psel->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (psel->nsev<psel->llsv){
|
||||
if (val < psel->lolo){
|
||||
psel->lalm = val;
|
||||
psel->nsta = LOLO_ALARM;
|
||||
psel->nsev = psel->llsv;
|
||||
return;
|
||||
}
|
||||
if (val < psel->lolo && recGblSetSevr(psel,LOLO_ALARM,psel->llsv)){
|
||||
psel->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition high */
|
||||
if (psel->nsev<psel->hsv){
|
||||
if (val > psel->high){
|
||||
psel->lalm = val;
|
||||
psel->nsta = HIGH_ALARM;
|
||||
psel->nsev =psel->hsv;
|
||||
return;
|
||||
}
|
||||
if (val > psel->high && recGblSetSevr(psel,HIGH_ALARM,psel->hsv)){
|
||||
psel->lalm = val;
|
||||
return;
|
||||
}
|
||||
/* alarm condition lolo */
|
||||
if (psel->nsev<psel->lsv){
|
||||
if (val < psel->low){
|
||||
psel->lalm = val;
|
||||
psel->nsta = LOW_ALARM;
|
||||
psel->nsev = psel->lsv;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition low */
|
||||
if (val < psel->low && recGblSetSevr(psel,LOW_ALARM,psel->lsv)){
|
||||
psel->lalm = val;
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -284,16 +265,8 @@ static void monitor(psel)
|
||||
double *pprev;
|
||||
int i;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=psel->stat;
|
||||
sevr=psel->sevr;
|
||||
nsta=psel->nsta;
|
||||
nsev=psel->nsev;
|
||||
/*set current stat and sevr*/
|
||||
psel->stat = nsta;
|
||||
psel->sevr = nsev;
|
||||
psel->nsta = 0;
|
||||
psel->nsev = 0;
|
||||
/* get peevious stat and sevr and new stat and sevr*/
|
||||
recGblResetSevr(psel,stat,sevr,nsta,nsev);
|
||||
|
||||
monitor_mask = 0;
|
||||
|
||||
@@ -417,10 +390,7 @@ struct selRecord *psel;
|
||||
nRequest=1;
|
||||
if(dbGetLink(&(psel->nvl.value.db_link),psel,DBR_USHORT,
|
||||
&(psel->seln),&options,&nRequest)!=NULL) {
|
||||
if (psel->nsev<VALID_ALARM) {
|
||||
psel->nsta = LINK_ALARM;
|
||||
psel->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(psel,LINK_ALARM,VALID_ALARM);
|
||||
return(-1);
|
||||
}
|
||||
}
|
||||
@@ -430,10 +400,7 @@ struct selRecord *psel;
|
||||
nRequest=1;
|
||||
status=dbGetLink(&plink->value.db_link,psel,DBR_DOUBLE,pvalue,&options,&nRequest);
|
||||
if(status!=0) {
|
||||
if(psel->nsev<VALID_ALARM) {
|
||||
psel->nsev=VALID_ALARM;
|
||||
psel->nsta=LINK_ALARM;
|
||||
}
|
||||
recGblSetSevr(psel,LINK_ALARM,VALID_ALARM);
|
||||
return(-1);
|
||||
}
|
||||
}
|
||||
@@ -445,10 +412,7 @@ struct selRecord *psel;
|
||||
nRequest=1;
|
||||
status = dbGetLink(&plink->value.db_link,psel,DBR_DOUBLE,pvalue,&options,&nRequest);
|
||||
if(status!=0) {
|
||||
if(psel->nsev<VALID_ALARM) {
|
||||
psel->nsev=VALID_ALARM;
|
||||
psel->nsta=LINK_ALARM;
|
||||
}
|
||||
recGblSetSevr(psel,LINK_ALARM,VALID_ALARM);
|
||||
return(-1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 10-10-90 mrk extensible record and device support
|
||||
* .02 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -121,15 +122,7 @@ static void monitor(pstate)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pstate->stat;
|
||||
sevr=pstate->sevr;
|
||||
nsta=pstate->nsta;
|
||||
nsev=pstate->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pstate->stat = nsta;
|
||||
pstate->sevr = nsev;
|
||||
pstate->nsta = 0;
|
||||
pstate->nsev = 0;
|
||||
recGblResetSevr(pstate,stat,sevr,nsta,nsev);
|
||||
|
||||
/* Flags which events to fire on the value field */
|
||||
monitor_mask = 0;
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
|
||||
* .21 10-15-90 mrk extensible record and device support
|
||||
* .22 10-24-91 jba bug fix to alarms
|
||||
* .23 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -237,8 +238,8 @@ static long get_control_double(paddr,pcd)
|
||||
{
|
||||
struct steppermotorRecord *psm=(struct steppermotorRecord *)paddr->precord;
|
||||
|
||||
pcd->upper_ctrl_limit = psm->hopr;
|
||||
pcd->lower_ctrl_limit = psm->lopr;
|
||||
pcd->upper_ctrl_limit = psm->drvh;
|
||||
pcd->lower_ctrl_limit = psm->drvl;
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -264,42 +265,25 @@ static void alarm(psm)
|
||||
deviation = psm->val - psm->rbv;
|
||||
|
||||
/* alarm condition hihi */
|
||||
if (psm->nsev<psm->hhsv){
|
||||
if (deviation > psm->hihi){
|
||||
psm->nsta = HIHI_ALARM;
|
||||
psm->nsev = psm->hhsv;
|
||||
return;
|
||||
}
|
||||
if (deviation > psm->hihi && recGblSetSevr(psm,HIHI_ALARM,psm->hhsv)){
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (psm->nsev<psm->llsv){
|
||||
if (deviation < psm->lolo){
|
||||
psm->nsta = LOLO_ALARM;
|
||||
psm->nsev = psm->llsv;
|
||||
return;
|
||||
}
|
||||
if (deviation < psm->lolo && recGblSetSevr(psm,LOLO_ALARM,psm->llsv)){
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition high */
|
||||
if (psm->nsev<psm->hsv){
|
||||
if (deviation > psm->high){
|
||||
psm->nsta = HIGH_ALARM;
|
||||
psm->nsev =psm->hsv;
|
||||
return;
|
||||
}
|
||||
if (deviation > psm->high && recGblSetSevr(psm,HIGH_ALARM,psm->hsv)){
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (psm->nsev<psm->lsv){
|
||||
if (deviation < psm->low){
|
||||
psm->nsta = LOW_ALARM;
|
||||
psm->nsev = psm->lsv;
|
||||
return;
|
||||
}
|
||||
/* alarm condition low */
|
||||
if (deviation < psm->low && recGblSetSevr(psm,LOW_ALARM,psm->lsv)){
|
||||
return;
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
static void monitor(psm)
|
||||
@@ -465,23 +449,12 @@ psm_data->accel
|
||||
|
||||
/* alarm conditions for limit switches */
|
||||
if ((psm->ccw == 0) || (psm->cw == 0)){ /* limit violation */
|
||||
if (psm->nsev<psm->hlsv) {
|
||||
psm->nsta = HW_LIMIT_ALARM;
|
||||
psm->nsev = psm->hlsv;
|
||||
}
|
||||
recGblSetSevr(psm,HW_LIMIT_ALARM,psm->hlsv);
|
||||
}
|
||||
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=psm->stat;
|
||||
sevr=psm->sevr;
|
||||
nsta=psm->nsta;
|
||||
nsev=psm->nsev;
|
||||
/*set current stat and sevr*/
|
||||
psm->stat = nsta;
|
||||
psm->sevr = nsev;
|
||||
psm->nsta = 0;
|
||||
psm->nsev = 0;
|
||||
recGblResetSevr(psm,stat,sevr,nsta,nsev);
|
||||
|
||||
/* anyone waiting for an event on this record */
|
||||
if (psm->mlis.count!=0 && (stat!=nsta || sevr!=nsev) ){
|
||||
@@ -533,7 +506,7 @@ struct steppermotorRecord *psm;
|
||||
{
|
||||
int acceleration,velocity;
|
||||
short card,channel;
|
||||
short status;
|
||||
short status=0;
|
||||
|
||||
/* the motor number is the card number */
|
||||
card = psm->out.value.vmeio.card;
|
||||
@@ -554,10 +527,7 @@ struct steppermotorRecord *psm;
|
||||
/* initialize the motor */
|
||||
/* set mode - first command checks card present */
|
||||
if (sm_driver(psm->dtyp,card,channel,SM_MODE,psm->mode,0) < 0){
|
||||
if(psm->nsev < VALID_ALARM) {
|
||||
psm->nsta = WRITE_ALARM;
|
||||
psm->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(psm,WRITE_ALARM,VALID_ALARM);
|
||||
psm->init = 1;
|
||||
return;
|
||||
}
|
||||
@@ -590,10 +560,7 @@ struct steppermotorRecord *psm;
|
||||
status = sm_driver(psm->dtyp,card,channel,SM_READ,0,0);
|
||||
}
|
||||
if (status < 0){
|
||||
if (psm->nsev < VALID_ALARM) {
|
||||
psm->nsta = WRITE_ALARM;
|
||||
psm->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(psm,WRITE_ALARM,VALID_ALARM);
|
||||
return;
|
||||
}
|
||||
}else if (psm->mode == VELOCITY){
|
||||
@@ -669,10 +636,7 @@ struct steppermotorRecord *psm;
|
||||
long nRequest=1;
|
||||
|
||||
if(dbGetLink(&(psm->dol.value.db_link),psm,DBR_FLOAT,&(psm->val),&options,&nRequest)){
|
||||
if (psm->nsev < VALID_ALARM) {
|
||||
psm->nsta = LINK_ALARM;
|
||||
psm->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(psm,LINK_ALARM,VALID_ALARM);
|
||||
return;
|
||||
} else psm->udf = FALSE;
|
||||
}
|
||||
@@ -722,10 +686,7 @@ struct steppermotorRecord *psm;
|
||||
|
||||
/* move motor */
|
||||
if (sm_driver(psm->dtyp,card,channel,SM_MOVE,psm->rval-psm->rrbv,0) < 0){
|
||||
if (psm->nsev < VALID_ALARM) {
|
||||
psm->nsta = WRITE_ALARM;
|
||||
psm->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(psm,WRITE_ALARM,VALID_ALARM);
|
||||
return;
|
||||
}
|
||||
psm->movn = 1;
|
||||
@@ -777,10 +738,7 @@ struct steppermotorRecord *psm;
|
||||
long nRequest=1;
|
||||
|
||||
if(dbGetLink(&(psm->dol.value.db_link),psm,DBR_FLOAT,&(psm->val),&options,&nRequest)) {
|
||||
if (psm->nsev < VALID_ALARM) {
|
||||
psm->nsta = LINK_ALARM;
|
||||
psm->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(psm,LINK_ALARM,VALID_ALARM);
|
||||
return;
|
||||
} else psm->udf=FALSE;
|
||||
}
|
||||
@@ -817,10 +775,7 @@ struct steppermotorRecord *psm;
|
||||
|
||||
/*the last arg of next call is check for direction */
|
||||
if(sm_driver(psm->dtyp,card,channel,SM_MOTION,1,(psm->val < 0))){
|
||||
if (psm->nsev < VALID_ALARM) {
|
||||
psm->stat = WRITE_ALARM;
|
||||
psm->sevr = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(psm,WRITE_ALARM,VALID_ALARM);
|
||||
return;
|
||||
}
|
||||
psm->cvel = 0;
|
||||
@@ -868,10 +823,7 @@ short moving;
|
||||
reset = psm->init;
|
||||
if (reset == 0) psm->init = 1;
|
||||
if(dbGetLink(&(psm->rdbl.value.db_link),psm,DBR_FLOAT,&new_pos,&options,&nRequest)){
|
||||
if (psm->nsev < VALID_ALARM) {
|
||||
psm->nsta = READ_ALARM;
|
||||
psm->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(psm,READ_ALARM,VALID_ALARM);
|
||||
psm->init = reset;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
*
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 mm-dd-yy iii Comment
|
||||
* .01 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
|
||||
@@ -169,15 +169,7 @@ static void monitor(pstringin)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pstringin->stat;
|
||||
sevr=pstringin->sevr;
|
||||
nsta=pstringin->nsta;
|
||||
nsev=pstringin->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pstringin->stat = nsta;
|
||||
pstringin->sevr = nsev;
|
||||
pstringin->nsta = 0;
|
||||
pstringin->nsev = 0;
|
||||
recGblResetSevr(pstringin,stat,sevr,nsta,nsev);
|
||||
|
||||
/* Flags which events to fire on the value field */
|
||||
monitor_mask = 0;
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 10-24-91 jba Removed unused code
|
||||
* .02 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
|
||||
@@ -148,10 +149,7 @@ static long process(paddr)
|
||||
DBR_STRING,pstringout->val,&options,&nRequest);
|
||||
pstringout->pact = FALSE;
|
||||
if(!status==0){
|
||||
if(pstringout->nsev < VALID_ALARM) {
|
||||
pstringout->nsev = VALID_ALARM;
|
||||
pstringout->nsta = LINK_ALARM;
|
||||
}
|
||||
recGblSetSevr(pstringout,LINK_ALARM,VALID_ALARM);
|
||||
} else pstringout->udf=FALSE;
|
||||
}
|
||||
}
|
||||
@@ -194,15 +192,7 @@ static void monitor(pstringout)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pstringout->stat;
|
||||
sevr=pstringout->sevr;
|
||||
nsta=pstringout->nsta;
|
||||
nsev=pstringout->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pstringout->stat = nsta;
|
||||
pstringout->sevr = nsev;
|
||||
pstringout->nsta = 0;
|
||||
pstringout->nsev = 0;
|
||||
recGblResetSevr(pstringout,stat,sevr,nsta,nsev);
|
||||
|
||||
/* Flags which events to fire on the value field */
|
||||
monitor_mask = 0;
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 10-10-90 mrk Made changes for new record support
|
||||
* .02 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -244,11 +245,7 @@ static void alarm(psub)
|
||||
|
||||
/* undefined condition */
|
||||
if(psub->udf == TRUE) {
|
||||
if (psub->nsev<VALID_ALARM){
|
||||
psub->nsta = UDF_ALARM;
|
||||
psub->nsev = VALID_ALARM;
|
||||
return;
|
||||
}
|
||||
if(recGblSetSevr(psub,UDF_ALARM,VALID_ALARM)) return;
|
||||
}
|
||||
/* if difference is not > hysterisis use lalm not val */
|
||||
ftemp = psub->lalm - psub->val;
|
||||
@@ -256,42 +253,27 @@ static void alarm(psub)
|
||||
if (ftemp < psub->hyst) val=psub->lalm;
|
||||
|
||||
/* alarm condition hihi */
|
||||
if (psub->nsev<psub->hhsv){
|
||||
if (val > psub->hihi){
|
||||
psub->lalm = val;
|
||||
psub->nsta = HIHI_ALARM;
|
||||
psub->nsev = psub->hhsv;
|
||||
return;
|
||||
}
|
||||
if (val > psub->hihi && recGblSetSevr(psub,HIHI_ALARM,psub->hhsv)){
|
||||
psub->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition lolo */
|
||||
if (psub->nsev<psub->llsv){
|
||||
if (val < psub->lolo){
|
||||
psub->lalm = val;
|
||||
psub->nsta = LOLO_ALARM;
|
||||
psub->nsev = psub->llsv;
|
||||
return;
|
||||
}
|
||||
if (val < psub->lolo && recGblSetSevr(psub,LOLO_ALARM,psub->llsv)){
|
||||
psub->lalm = val;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition high */
|
||||
if (psub->nsev<psub->hsv){
|
||||
if (val > psub->high){
|
||||
psub->lalm = val;
|
||||
psub->nsta = HIGH_ALARM;
|
||||
psub->nsev =psub->hsv;
|
||||
return;
|
||||
}
|
||||
if (val > psub->high && recGblSetSevr(psub,HIGH_ALARM,psub->hsv)){
|
||||
psub->lalm = val;
|
||||
return;
|
||||
}
|
||||
/* alarm condition lolo */
|
||||
if (psub->nsev<psub->lsv){
|
||||
if (val < psub->low){
|
||||
psub->lalm = val;
|
||||
psub->nsta = LOW_ALARM;
|
||||
psub->nsev = psub->lsv;
|
||||
return;
|
||||
}
|
||||
|
||||
/* alarm condition low */
|
||||
if (val < psub->low && recGblSetSevr(psub,LOW_ALARM,psub->lsv)){
|
||||
psub->lalm = val;
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -307,15 +289,7 @@ static void monitor(psub)
|
||||
int i;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=psub->stat;
|
||||
sevr=psub->sevr;
|
||||
nsta=psub->nsta;
|
||||
nsev=psub->nsev;
|
||||
/*set current stat and sevr*/
|
||||
psub->stat = nsta;
|
||||
psub->sevr = nsev;
|
||||
psub->nsta = 0;
|
||||
psub->nsev = 0;
|
||||
recGblResetSevr(psub,stat,sevr,nsta,nsev);
|
||||
|
||||
monitor_mask = 0;
|
||||
|
||||
@@ -375,10 +349,7 @@ struct subRecord *psub;
|
||||
status=dbGetLink(&plink->value.db_link,psub,DBR_DOUBLE,
|
||||
pvalue,&options,&nRequest);
|
||||
if(status!=0) {
|
||||
if(psub->nsev<VALID_ALARM) {
|
||||
psub->nsev=VALID_ALARM;
|
||||
psub->nsta=LINK_ALARM;
|
||||
}
|
||||
recGblSetSevr(psub,LINK_ALARM,VALID_ALARM);
|
||||
return(-1);
|
||||
}
|
||||
}
|
||||
@@ -395,18 +366,12 @@ struct subRecord *psub; /* pointer to subroutine record */
|
||||
/* call the subroutine */
|
||||
psubroutine = (FUNCPTR)(psub->sadr);
|
||||
if(psubroutine==NULL) {
|
||||
if(psub->nsev<VALID_ALARM) {
|
||||
psub->nsta = BAD_SUB_ALARM;
|
||||
psub->nsev = VALID_ALARM;
|
||||
}
|
||||
recGblSetSevr(psub,BAD_SUB_ALARM,VALID_ALARM);
|
||||
return(0);
|
||||
}
|
||||
status = psubroutine(psub);
|
||||
if(status < 0){
|
||||
if (psub->nsev<psub->brsv){
|
||||
psub->nsta = SOFT_ALARM;
|
||||
psub->nsev = psub->brsv;
|
||||
}
|
||||
recGblSetSevr(psub,SOFT_ALARM,psub->brsv);
|
||||
} else psub->udf = FALSE;
|
||||
return(status);
|
||||
}
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
* .09 07-26-90 lrd fixed the N-to-1 character waveformion
|
||||
* value was not initialized
|
||||
* .10 10-11-90 mrk Made changes for new record support
|
||||
* .11 11-11-91 jba Moved set and reset of alarm stat and sevr to macros
|
||||
*/
|
||||
|
||||
#include <vxWorks.h>
|
||||
@@ -294,15 +295,7 @@ static void monitor(pwf)
|
||||
short stat,sevr,nsta,nsev;
|
||||
|
||||
/* get previous stat and sevr and new stat and sevr*/
|
||||
stat=pwf->stat;
|
||||
sevr=pwf->sevr;
|
||||
nsta=pwf->nsta;
|
||||
nsev=pwf->nsev;
|
||||
/*set current stat and sevr*/
|
||||
pwf->stat = nsta;
|
||||
pwf->sevr = nsev;
|
||||
pwf->nsta = 0;
|
||||
pwf->nsev = 0;
|
||||
recGblResetSevr(pwf,stat,sevr,nsta,nsev);
|
||||
|
||||
/* Flags which events to fire on the value field */
|
||||
monitor_mask = 0;
|
||||
|
||||
Reference in New Issue
Block a user