From e87551df243c733d7bd9760c4a5a29e952191ba9 Mon Sep 17 00:00:00 2001 From: "Janet B. Anderson" Date: Fri, 28 Feb 1992 17:43:41 +0000 Subject: [PATCH] Changed get_precision,get_graphic_double,get_control_double, ANSI C changes --- src/rec/recAi.c | 32 ++++++++++------- src/rec/recAo.c | 39 ++++++++++++++------- src/rec/recCalc.c | 39 +++++++++++++-------- src/rec/recCompress.c | 44 +++++++++++++---------- src/rec/recLongin.c | 29 ++++++++++------ src/rec/recPid.c | 42 +++++++++++++++------- src/rec/recPulseDelay.c | 35 ++++++++----------- src/rec/recPulseTrain.c | 61 ++++++++++---------------------- src/rec/recSel.c | 73 ++++++++++++++++++++++++++++++++------- src/rec/recSteppermotor.c | 36 ++++++++++++------- src/rec/recSub.c | 33 +++++++++++------- src/rec/recWaveform.c | 40 +++++++++++++-------- 12 files changed, 309 insertions(+), 194 deletions(-) diff --git a/src/rec/recAi.c b/src/rec/recAi.c index 256c4f0fd..597852692 100644 --- a/src/rec/recAi.c +++ b/src/rec/recAi.c @@ -59,12 +59,15 @@ * .19 11-11-91 jba Moved set and reset of alarm stat and sevr to macros * .20 12-18-91 jba Changed E_IO_INTERRUPT to SCAN_IO_EVENT * .21 02-05-92 jba Changed function arguments from paddr to precord + * .22 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .23 02-28-92 jba ANSI C changes */ #include #include #include #include +#include #include #include @@ -80,21 +83,21 @@ /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); -long special(); -long get_value(); +static long init_record(); +static long process(); +static long special(); +static long get_value(); #define cvt_dbaddr NULL #define get_array_info NULL #define put_array_info NULL -long get_units(); -long get_precision(); +static long get_units(); +static long get_precision(); #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); -long get_alarm_double(); +static long get_graphic_double(); +static long get_control_double(); +static long get_alarm_double(); struct rset aiRSET={ RSETNUMBER, @@ -252,6 +255,8 @@ static long get_precision(paddr,precision) struct aiRecord *pai=(struct aiRecord *)paddr->precord; *precision = pai->prec; + if(paddr->pfield == (void *)&pai->val) return(0); + recGblGetPrec(paddr,precision); return(0); } @@ -261,8 +266,10 @@ static long get_graphic_double(paddr,pgd) { struct aiRecord *pai=(struct aiRecord *)paddr->precord; - pgd->upper_disp_limit = pai->hopr; - pgd->lower_disp_limit = pai->lopr; + if(paddr->pfield==(void *)&pai->val){ + pgd->upper_disp_limit = pai->hopr; + pgd->lower_disp_limit = pai->lopr; + } else recGblGetGraphicDouble(paddr,pgd); return(0); } @@ -272,8 +279,10 @@ static long get_control_double(paddr,pcd) { struct aiRecord *pai=(struct aiRecord *)paddr->precord; + if(paddr->pfield==(void *)&pai->val){ pcd->upper_ctrl_limit = pai->hopr; pcd->lower_ctrl_limit = pai->lopr; + } else recGblGetControlDouble(paddr,pcd); return(0); } @@ -418,4 +427,3 @@ static void monitor(pai) } return; } - diff --git a/src/rec/recAo.c b/src/rec/recAo.c index a8d703851..805b0f07c 100644 --- a/src/rec/recAo.c +++ b/src/rec/recAo.c @@ -53,12 +53,15 @@ * .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 * .22 02-05-92 jba Changed function arguments from paddr to precord + * .23 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .24 02-28-92 jba ANSI C changes */ #include #include #include #include +#include #include #include @@ -73,21 +76,21 @@ /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); -long special(); +static long init_record(); +static long process(); +static long special(); long get_value(); #define cvt_dbaddr NULL #define get_array_info NULL #define put_array_info NULL -long get_units(); -long get_precision(); +static long get_units(); +static long get_precision(); #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); -long get_alarm_double(); +static long get_graphic_double(); +static long get_control_double(); +static long get_alarm_double(); struct rset aoRSET={ RSETNUMBER, @@ -271,6 +274,10 @@ static long get_precision(paddr,precision) struct aoRecord *pao=(struct aoRecord *)paddr->precord; *precision = pao->prec; + if(paddr->pfield == (void *)&pao->val + || paddr->pfield == (void *)&pao->oval + || paddr->pfield == (void *)&pao->pval) return(0); + recGblGetPrec(paddr,precision); return(0); } @@ -280,8 +287,12 @@ static long get_graphic_double(paddr,pgd) { struct aoRecord *pao=(struct aoRecord *)paddr->precord; - pgd->upper_disp_limit = pao->hopr; - pgd->lower_disp_limit = pao->lopr; + if(paddr->pfield==(void *)&pao->val + || paddr->pfield==(void *)&pao->oval + || paddr->pfield==(void *)&pao->pval){ + pgd->upper_disp_limit = pao->hopr; + pgd->lower_disp_limit = pao->lopr; + } else recGblGetGraphicDouble(paddr,pgd); return(0); } @@ -291,8 +302,12 @@ static long get_control_double(paddr,pcd) { struct aoRecord *pao=(struct aoRecord *)paddr->precord; - pcd->upper_ctrl_limit = pao->drvh; - pcd->lower_ctrl_limit = pao->drvl; + if(paddr->pfield==(void *)&pao->val + || paddr->pfield==(void *)&pao->oval + || paddr->pfield==(void *)&pao->pval){ + pcd->upper_ctrl_limit = pao->drvh; + pcd->lower_ctrl_limit = pao->drvl; + } else recGblGetControlDouble(paddr,pcd); return(0); } static long get_alarm_double(paddr,pad) diff --git a/src/rec/recCalc.c b/src/rec/recCalc.c index 3bbe4dd6a..4016d759c 100644 --- a/src/rec/recCalc.c +++ b/src/rec/recCalc.c @@ -60,12 +60,15 @@ * to libCalc * .19 11-11-91 jba Moved set and reset of alarm stat and sevr to macros * .20 02-05-92 jba Changed function arguments from paddr to precord + * .21 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .22 02-28-92 jba ANSI C changes */ #include #include #include #include +#include #include #include @@ -79,21 +82,21 @@ /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); -long special(); -long get_value(); +static long init_record(); +static long process(); +static long special(); +static long get_value(); #define cvt_dbaddr NULL #define get_array_info NULL #define put_array_info NULL -long get_units(); -long get_precision(); +static static long get_units(); +static long get_precision(); #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); -long get_alarm_double(); +static long get_graphic_double(); +static long get_control_double(); +static long get_alarm_double(); struct rset calcRSET={ RSETNUMBER, @@ -139,7 +142,7 @@ static long init_record(pcalc) } status=postfix(pcalc->calc,rpbuf,&error_number); if(status) return(status); - bcopy(rpbuf,pcalc->rpcl,sizeof(pcalc->rpcl)); + memcpy(rpbuf,pcalc->rpcl,sizeof(pcalc->rpcl)); return(0); } @@ -179,7 +182,7 @@ static long special(paddr,after) case(SPC_CALC): status=postfix(pcalc->calc,rpbuf,&error_number); if(status) return(status); - bcopy(rpbuf,pcalc->rpcl,sizeof(pcalc->rpcl)); + memcpy(rpbuf,pcalc->rpcl,sizeof(pcalc->rpcl)); db_post_events(pcalc,pcalc->calc,DBE_VALUE); return(0); default: @@ -215,6 +218,8 @@ static long get_precision(paddr,precision) struct calcRecord *pcalc=(struct calcRecord *)paddr->precord; *precision = pcalc->prec; + if(paddr->pfield == (void *)&pcalc->val) return(0); + recGblGetPrec(paddr,precision); return(0); } @@ -224,8 +229,10 @@ static long get_graphic_double(paddr,pgd) { struct calcRecord *pcalc=(struct calcRecord *)paddr->precord; - pgd->upper_disp_limit = pcalc->hopr; - pgd->lower_disp_limit = pcalc->lopr; + if(paddr->pfield==(void *)&pcalc->val){ + pgd->upper_disp_limit = pcalc->hopr; + pgd->lower_disp_limit = pcalc->lopr; + } else recGblGetGraphicDouble(paddr,pgd); return(0); } @@ -235,8 +242,10 @@ static long get_control_double(paddr,pcd) { struct calcRecord *pcalc=(struct calcRecord *)paddr->precord; - pcd->upper_ctrl_limit = pcalc->hopr; - pcd->lower_ctrl_limit = pcalc->lopr; + if(paddr->pfield==(void *)&pcalc->val){ + pcd->upper_ctrl_limit = pcalc->hopr; + pcd->lower_ctrl_limit = pcalc->lopr; + } else recGblGetControlDouble(paddr,pcd); return(0); } static long get_alarm_double(paddr,pad) diff --git a/src/rec/recCompress.c b/src/rec/recCompress.c index facfe006f..785456e12 100644 --- a/src/rec/recCompress.c +++ b/src/rec/recCompress.c @@ -50,13 +50,17 @@ * .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 * .12 02-05-92 jba Changed function arguments from paddr to precord + * .13 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .14 02-28-92 jba ANSI C changes */ #include #include #include #include +#include #include +#include #include #include @@ -70,20 +74,20 @@ /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); -long special(); -long get_value(); -long cvt_dbaddr(); -long get_array_info(); -long put_array_info(); -long get_units(); -long get_precision(); +static long init_record(); +static long process(); +static long special(); +static long get_value(); +static long cvt_dbaddr(); +static long get_array_info(); +static long put_array_info(); +static long get_units(); +static long get_precision(); #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); +static long get_graphic_double(); +static long get_control_double(); #define get_alarm_double NULL struct rset compressRSET={ @@ -230,7 +234,7 @@ static long cvt_dbaddr(paddr) /* This may get called before init_record. If so just call it*/ if(pcompress->bptr==NULL) (void)init_record(pcompress); - paddr->pfield = (caddr_t)(pcompress->bptr); + paddr->pfield = (void *)(pcompress->bptr); paddr->no_elements = pcompress->nsam; paddr->field_type = DBF_DOUBLE; paddr->field_size = sizeof(double); @@ -280,6 +284,8 @@ static long get_precision(paddr,precision) struct compressRecord *pcompress=(struct compressRecord *)paddr->precord; *precision = pcompress->prec; + if(paddr->pfield == (void *)pcompress->val) return(0); + recGblGetPrec(paddr,precision); return(0); } @@ -289,8 +295,10 @@ static long get_graphic_double(paddr,pgd) { struct compressRecord *pcompress=(struct compressRecord *)paddr->precord; - pgd->upper_disp_limit = pcompress->hopr; - pgd->lower_disp_limit = pcompress->lopr; + if(paddr->pfield==(void *)pcompress->val){ + pgd->upper_disp_limit = pcompress->hopr; + pgd->lower_disp_limit = pcompress->lopr; + } else recGblGetGraphicDouble(paddr,pgd); return(0); } @@ -300,8 +308,10 @@ static long get_control_double(paddr,pcd) { struct compressRecord *pcompress=(struct compressRecord *)paddr->precord; - pcd->upper_ctrl_limit = pcompress->hopr; - pcd->lower_ctrl_limit = pcompress->lopr; + if(paddr->pfield==(void *)pcompress->val){ + pcd->upper_ctrl_limit = pcompress->hopr; + pcd->lower_ctrl_limit = pcompress->lopr; + } else recGblGetControlDouble(paddr,pcd); return(0); } @@ -310,7 +320,6 @@ static void monitor(pcompress) struct compressRecord *pcompress; { unsigned short monitor_mask; - short mdct; short stat,sevr,nsta,nsev; /* get previous stat and sevr and new stat and sevr*/ @@ -367,7 +376,6 @@ long no_elements; long i,j; long nnew; long nsam=pcompress->nsam; - double *pdest; double value; long n; diff --git a/src/rec/recLongin.c b/src/rec/recLongin.c index ce7e9468e..dccf1f674 100644 --- a/src/rec/recLongin.c +++ b/src/rec/recLongin.c @@ -31,6 +31,8 @@ * ----------------- * .01 11-11-91 jba Moved set and reset of alarm stat and sevr to macros * .02 02-05-92 jba Changed function arguments from paddr to precord + * .03 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .04 02-28-92 jba ANSI C changes */ @@ -38,6 +40,7 @@ #include #include #include +#include #include #include @@ -51,21 +54,21 @@ /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); +static long init_record(); +static long process(); #define special NULL -long get_value(); +static long get_value(); #define cvt_dbaddr NULL #define get_array_info NULL #define put_array_info NULL -long get_units(); +static long get_units(); #define get_precision NULL #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); -long get_alarm_double(); +static long get_graphic_double(); +static long get_control_double(); +static long get_alarm_double(); struct rset longinRSET={ RSETNUMBER, @@ -180,8 +183,10 @@ static long get_graphic_double(paddr,pgd) { struct longinRecord *plongin=(struct longinRecord *)paddr->precord; - pgd->upper_disp_limit = plongin->hopr; - pgd->lower_disp_limit = plongin->lopr; + if(paddr->pfield==(void *)plongin->val){ + pgd->upper_disp_limit = plongin->hopr; + pgd->lower_disp_limit = plongin->lopr; + } else recGblGetGraphicDouble(paddr,pgd); return(0); } @@ -191,8 +196,10 @@ static long get_control_double(paddr,pcd) { struct longinRecord *plongin=(struct longinRecord *)paddr->precord; - pcd->upper_ctrl_limit = plongin->hopr; - pcd->lower_ctrl_limit = plongin->lopr; + if(paddr->pfield==(void *)plongin->val){ + pcd->upper_ctrl_limit = plongin->hopr; + pcd->lower_ctrl_limit = plongin->lopr; + } else recGblGetControlDouble(paddr,pcd); return(0); } diff --git a/src/rec/recPid.c b/src/rec/recPid.c index 11261db37..0537d86f5 100644 --- a/src/rec/recPid.c +++ b/src/rec/recPid.c @@ -33,12 +33,15 @@ * .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 * .03 02-05-92 jba Changed function arguments from paddr to precord + * .04 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .05 02-28-92 jba ANSI C changes */ #include #include #include #include +#include /*since tickLib is not defined just define tickGet*/ unsigned long tickGet(); @@ -53,21 +56,21 @@ unsigned long tickGet(); /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); +static long init_record(); +static long process(); #define special NULL -long get_value(); +static long get_value(); #define cvt_dbaddr NULL #define get_array_info NULL #define put_array_info NULL -long get_units(); -long get_precision(); +static long get_units(); +static long get_precision(); #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); -long get_alarm_double(); +static long get_graphic_double(); +static long get_control_double(); +static long get_alarm_double(); struct rset pidRSET={ RSETNUMBER, @@ -160,6 +163,9 @@ static long get_precision(paddr,precision) struct pidRecord *ppid=(struct pidRecord *)paddr->precord; *precision = ppid->prec; + if(paddr->pfield == (void *)&ppid->val + || paddr->pfield == (void *)&ppid->cval) return(0); + recGblGetPrec(paddr,precision); return(0); } @@ -170,8 +176,14 @@ static long get_graphic_double(paddr,pgd) { struct pidRecord *ppid=(struct pidRecord *)paddr->precord; - pgd->upper_disp_limit = ppid->hopr; - pgd->lower_disp_limit = ppid->lopr; + if(paddr->pfield==(void *)&ppid->val + || paddr->pfield==(void *)&ppid->p + || paddr->pfield==(void *)&ppid->i + || paddr->pfield==(void *)&ppid->d + || paddr->pfield==(void *)&ppid->cval){ + pgd->upper_disp_limit = ppid->hopr; + pgd->lower_disp_limit = ppid->lopr; + } else recGblGetGraphicDouble(paddr,pgd); return(0); } @@ -181,8 +193,14 @@ static long get_control_double(paddr,pcd) { struct pidRecord *ppid=(struct pidRecord *)paddr->precord; - pcd->upper_ctrl_limit = ppid->hopr; - pcd->lower_ctrl_limit = ppid->lopr; + if(paddr->pfield==(void *)&ppid->val + || paddr->pfield==(void *)&ppid->p + || paddr->pfield==(void *)&ppid->i + || paddr->pfield==(void *)&ppid->d + || paddr->pfield==(void *)&ppid->cval){ + pcd->upper_ctrl_limit = ppid->hopr; + pcd->lower_ctrl_limit = ppid->lopr; + } else recGblGetControlDouble(paddr,pcd); return(0); } static long get_alarm_double(paddr,pad) diff --git a/src/rec/recPulseDelay.c b/src/rec/recPulseDelay.c index c27ab7a5f..4a501eec0 100644 --- a/src/rec/recPulseDelay.c +++ b/src/rec/recPulseDelay.c @@ -31,6 +31,8 @@ * ----------------- * .01 11-11-91 jba Moved set and reset of alarm stat and sevr to macros * .02 02-05-92 jba Changed function arguments from paddr to precord + * .03 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .04 02-28-92 jba ANSI C changes */ #include @@ -51,20 +53,20 @@ /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); +static long init_record(); +static long process(); #define special NULL -long get_value(); +static long get_value(); #define cvt_dbaddr NULL #define get_array_info NULL #define put_array_info NULL #define get_units NULL -long get_precision(); +static long get_precision(); #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); +static long get_graphic_double(); +static long get_control_double(); #define get_alarm_double NULL struct rset pulseDelayRSET={ @@ -127,7 +129,6 @@ static long process(ppd) { struct pddset *pdset = (struct pddset *)(ppd->dset); long status=0; - long options,nRequest; /* must have write_pd functions defined */ if( (pdset==NULL) || (pdset->write_pd==NULL) ) { @@ -172,6 +173,8 @@ static long get_precision(paddr,precision) struct pulseDelayRecord *ppd=(struct pulseDelayRecord *)paddr->precord; *precision = ppd->prec; + if(paddr->pfield == (void *)&ppd->val) return(0); + recGblGetPrec(paddr,precision); return(0); } @@ -180,16 +183,11 @@ static long get_graphic_double(paddr,pgd) struct dbr_grDouble *pgd; { struct pulseDelayRecord *ppd=(struct pulseDelayRecord *)paddr->precord; - struct fldDes *pfldDes=(struct fldDes *)(paddr->pfldDes); - if(((void *)(paddr->pfield))==((void *)&(ppd->clks))){ - pgd->upper_disp_limit = (double)pfldDes->range2.value.short_value; - pgd->lower_disp_limit = (double)pfldDes->range1.value.short_value; - } else { + if(paddr->pfield==(void *)&ppd->val){ pgd->upper_disp_limit = ppd->hopr; pgd->lower_disp_limit = ppd->lopr; - } - + } else recGblGetGraphicDouble(paddr,pgd); return(0); } @@ -198,16 +196,11 @@ static long get_control_double(paddr,pcd) struct dbr_ctrlDouble *pcd; { struct pulseDelayRecord *ppd=(struct pulseDelayRecord *)paddr->precord; - struct fldDes *pfldDes=(struct fldDes *)(paddr->pfldDes); - if(((void *)(paddr->pfield))==((void *)&(ppd->clks))){ - pcd->upper_ctrl_limit = (double)pfldDes->range2.value.short_value; - pcd->lower_ctrl_limit = (double)pfldDes->range1.value.short_value; - } else { + if(paddr->pfield==(void *)&ppd->val){ pcd->upper_ctrl_limit = ppd->hopr; pcd->lower_ctrl_limit = ppd->lopr; - } - + } else recGblGetControlDouble(paddr,pcd); return(0); } diff --git a/src/rec/recPulseTrain.c b/src/rec/recPulseTrain.c index 0271a2066..bacc65da7 100644 --- a/src/rec/recPulseTrain.c +++ b/src/rec/recPulseTrain.c @@ -32,6 +32,8 @@ * .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 * .03 02-05-92 jba Changed function arguments from paddr to precord + * .04 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .05 02-28-92 jba ANSI C changes */ #include @@ -52,20 +54,20 @@ /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); +static long init_record(); +static long process(); #define special NULL -long get_value(); +static long get_value(); #define cvt_dbaddr NULL #define get_array_info NULL #define put_array_info NULL #define get_units NULL -long get_precision(); +static long get_precision(); #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); +static long get_graphic_double(); +static long get_control_double(); #define get_alarm_double NULL struct rset pulseTrainRSET={ @@ -222,6 +224,9 @@ static long get_precision(paddr,precision) struct pulseTrainRecord *ppt=(struct pulseTrainRecord *)paddr->precord; *precision = ppt->prec; + if(paddr->pfield == (void *)&ppt->val) return(0); + recGblGetPrec(paddr,precision); + return(0); } @@ -230,25 +235,11 @@ static long get_graphic_double(paddr,pgd) struct dbr_grDouble *pgd; { struct pulseTrainRecord *ppt=(struct pulseTrainRecord *)paddr->precord; - struct fldDes *pfldDes=(struct fldDes *)(paddr->pfldDes); - if(((void *)(paddr->pfield))==((void *)&(ppt->clks))){ - pgd->upper_disp_limit = (double)pfldDes->range2.value.short_value; - pgd->lower_disp_limit = (double)pfldDes->range1.value.short_value; - return(0); - } - if(((void *)(paddr->pfield))==((void *)&(ppt->gate))){ - pgd->upper_disp_limit = (double)pfldDes->range2.value.short_value; - pgd->lower_disp_limit = (double)pfldDes->range1.value.short_value; - return(0); - } - if(((void *)(paddr->pfield))==((void *)&(ppt->dcy ))){ - pgd->upper_disp_limit = (double)pfldDes->range2.value.double_value; - pgd->lower_disp_limit = (double)pfldDes->range1.value.double_value; - return(0); - } - pgd->upper_disp_limit = ppt->hopr; - pgd->lower_disp_limit = ppt->lopr; + if(paddr->pfield==(void *)&ppt->val){ + pgd->upper_disp_limit = ppt->hopr; + pgd->lower_disp_limit = ppt->lopr; + } else recGblGetGraphicDouble(paddr,pgd); return(0); } @@ -258,25 +249,11 @@ static long get_control_double(paddr,pcd) struct dbr_ctrlDouble *pcd; { struct pulseTrainRecord *ppt=(struct pulseTrainRecord *)paddr->precord; - struct fldDes *pfldDes=(struct fldDes *)(paddr->pfldDes); - if(((void *)(paddr->pfield))==((void *)&(ppt->clks))){ - pcd->upper_ctrl_limit = (double)pfldDes->range2.value.short_value; - pcd->lower_ctrl_limit = (double)pfldDes->range1.value.short_value; - return(0); - } - if(((void *)(paddr->pfield))==((void *)&(ppt->gate))){ - pcd->upper_ctrl_limit = (double)pfldDes->range2.value.short_value; - pcd->lower_ctrl_limit = (double)pfldDes->range1.value.short_value; - return(0); - } - if(((void *)(paddr->pfield))==((void *)&(ppt->dcy ))){ - pcd->upper_ctrl_limit = (double)pfldDes->range2.value.double_value; - pcd->lower_ctrl_limit = (double)pfldDes->range1.value.double_value; - return(0); - } - pcd->upper_ctrl_limit = ppt->hopr; - pcd->lower_ctrl_limit = ppt->lopr; + if(paddr->pfield==(void *)&ppt->val){ + pcd->upper_ctrl_limit = ppt->hopr; + pcd->lower_ctrl_limit = ppt->lopr; + } else recGblGetControlDouble(paddr,pcd); return(0); } diff --git a/src/rec/recSel.c b/src/rec/recSel.c index 22bd1bf23..c779057da 100644 --- a/src/rec/recSel.c +++ b/src/rec/recSel.c @@ -35,12 +35,15 @@ * .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 * .04 02-05-92 jba Changed function arguments from paddr to precord + * .05 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .06 02-28-92 jba ANSI C changes */ #include #include #include #include +#include #include #include @@ -53,21 +56,21 @@ /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); +static long init_record(); +static long process(); #define special NULL -long get_value(); +static long get_value(); #define cvt_dbaddr NULL #define get_array_info NULL #define put_array_info NULL -long get_units(); -long get_precision(); +static long get_units(); +static long get_precision(); #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); -long get_alarm_double(); +static long get_graphic_double(); +static long get_control_double(); +static long get_alarm_double(); struct rset selRSET={ RSETNUMBER, @@ -171,8 +174,22 @@ static long get_precision(paddr,precision) long *precision; { struct selRecord *psel=(struct selRecord *)paddr->precord; + double *pvalue,*plvalue; + int i; *precision = psel->prec; + if(paddr->pfield==(void *)&psel->val){ + return(0); + } + pvalue = &psel->a; + plvalue = &psel->la; + for(i=0; ipfield==(void *)&pvalue + || paddr->pfield==(void *)&plvalue){ + return(0); + } + } + recGblGetPrec(paddr,precision); return(0); } @@ -182,9 +199,26 @@ static long get_graphic_double(paddr,pgd) struct dbr_grDouble *pgd; { struct selRecord *psel=(struct selRecord *)paddr->precord; + double *pvalue,*plvalue; + int i; - pgd->upper_disp_limit = psel->hopr; - pgd->lower_disp_limit = psel->lopr; + if(paddr->pfield==(void *)&psel->val){ + pgd->upper_disp_limit = psel->hopr; + pgd->lower_disp_limit = psel->lopr; + return(0); + } + + pvalue = &psel->a; + plvalue = &psel->la; + for(i=0; ipfield==(void *)&pvalue + || paddr->pfield==(void *)&plvalue){ + pgd->upper_disp_limit = psel->hopr; + pgd->lower_disp_limit = psel->lopr; + return(0); + } + } + recGblGetGraphicDouble(paddr,pgd); return(0); } @@ -193,9 +227,24 @@ static long get_control_double(paddr,pcd) struct dbr_ctrlDouble *pcd; { struct selRecord *psel=(struct selRecord *)paddr->precord; + double *pvalue; + int i; - pcd->upper_ctrl_limit = psel->hopr; - pcd->lower_ctrl_limit = psel->lopr; + if(paddr->pfield==(void *)&psel->val){ + pcd->upper_ctrl_limit = psel->hopr; + pcd->lower_ctrl_limit = psel->lopr; + return(0); + } + + pvalue = &psel->a; + for(i=0; ipfield==(void *)&pvalue){ + pcd->upper_ctrl_limit = psel->hopr; + pcd->lower_ctrl_limit = psel->lopr; + return(0); + } + } + recGblGetControlDouble(paddr,pcd); return(0); } diff --git a/src/rec/recSteppermotor.c b/src/rec/recSteppermotor.c index 7bce3795a..0db25385f 100644 --- a/src/rec/recSteppermotor.c +++ b/src/rec/recSteppermotor.c @@ -64,12 +64,15 @@ * .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 + * .24 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .25 02-28-92 jba ANSI C changes */ #include #include #include #include +#include #include #include @@ -85,21 +88,21 @@ /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); +static long init_record(); +static long process(); #define special NULL -long get_value(); +static long get_value(); #define cvt_dbaddr NULL #define get_array_info NULL #define put_array_info NULL -long get_units(); -long get_precision(); +static long get_units(); +static long get_precision(); #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); -long get_alarm_double(); +static long get_graphic_double(); +static long get_control_double(); +static long get_alarm_double(); struct rset steppermotorRSET={ RSETNUMBER, @@ -216,6 +219,9 @@ static long get_precision(paddr,precision) struct steppermotorRecord *psm=(struct steppermotorRecord *)paddr->precord; *precision = psm->prec; + if(paddr->pfield==(void *)&psm->val + || paddr->pfield==(void *)&psm->lval) return(0); + recGblGetPrec(paddr,precision); return(0); } @@ -225,8 +231,11 @@ static long get_graphic_double(paddr,pgd) { struct steppermotorRecord *psm=(struct steppermotorRecord *)paddr->precord; - pgd->upper_disp_limit = psm->hopr; - pgd->lower_disp_limit = psm->lopr; + if(paddr->pfield==(void *)&psm->val + || paddr->pfield==(void *)&psm->lval){ + pgd->upper_disp_limit = psm->hopr; + pgd->lower_disp_limit = psm->lopr; + } else recGblGetGraphicDouble(paddr,pgd); return(0); } @@ -236,8 +245,11 @@ static long get_control_double(paddr,pcd) { struct steppermotorRecord *psm=(struct steppermotorRecord *)paddr->precord; - pcd->upper_ctrl_limit = psm->drvh; - pcd->lower_ctrl_limit = psm->drvl; + if(paddr->pfield==(void *)&psm->val + || paddr->pfield==(void *)&psm->lval){ + pcd->upper_ctrl_limit = psm->drvh; + pcd->lower_ctrl_limit = psm->drvl; + } else recGblGetControlDouble(paddr,pcd); return(0); } diff --git a/src/rec/recSub.c b/src/rec/recSub.c index 8c0711461..6ffc47267 100644 --- a/src/rec/recSub.c +++ b/src/rec/recSub.c @@ -34,6 +34,8 @@ * .02 11-11-91 jba Moved set and reset of alarm stat and sevr to macros * .03 01-08-92 jba Added casts in symFindByName to avoid compile warning messages * .04 02-05-92 jba Changed function arguments from paddr to precord + * .05 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .06 02-28-92 jba ANSI C changes */ @@ -41,6 +43,7 @@ #include #include #include +#include #include #include /* for sysSymTbl*/ #include /* for N_TEXT */ @@ -56,21 +59,21 @@ /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); +static long init_record(); +static long process(); #define special NULL -long get_value(); +static long get_value(); #define cvt_dbaddr NULL #define get_array_info NULL #define put_array_info NULL -long get_units(); -long get_precision(); +static long get_units(); +static long get_precision(); #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); -long get_alarm_double(); +static long get_graphic_double(); +static long get_control_double(); +static long get_alarm_double(); struct rset subRSET={ RSETNUMBER, @@ -199,6 +202,8 @@ static long get_precision(paddr,precision) struct subRecord *psub=(struct subRecord *)paddr->precord; *precision = psub->prec; + if(paddr->pfield==(void *)&psub->val) return(0); + recGblGetPrec(paddr,precision); return(0); } @@ -209,8 +214,10 @@ static long get_graphic_double(paddr,pgd) { struct subRecord *psub=(struct subRecord *)paddr->precord; - pgd->upper_disp_limit = psub->hopr; - pgd->lower_disp_limit = psub->lopr; + if(paddr->pfield==(void *)&psub->val){ + pgd->upper_disp_limit = psub->hopr; + pgd->lower_disp_limit = psub->lopr; + } else recGblGetGraphicDouble(paddr,pgd); return(0); } @@ -220,8 +227,10 @@ static long get_control_double(paddr,pcd) { struct subRecord *psub=(struct subRecord *)paddr->precord; - pcd->upper_ctrl_limit = psub->hopr; - pcd->lower_ctrl_limit = psub->lopr; + if(paddr->pfield==(void *)&psub->val){ + pcd->upper_ctrl_limit = psub->hopr; + pcd->lower_ctrl_limit = psub->lopr; + } else recGblGetControlDouble(paddr,pcd); return(0); } static long get_alarm_double(paddr,pad) diff --git a/src/rec/recWaveform.c b/src/rec/recWaveform.c index ecdf9dbfe..dcd57c140 100644 --- a/src/rec/recWaveform.c +++ b/src/rec/recWaveform.c @@ -51,12 +51,16 @@ * .11 11-11-91 jba Moved set and reset of alarm stat and sevr to macros * .12 12-18-91 jba Changed E_IO_INTERRUPT to SCAN_IO_EVENT, added dbScan.h * .13 02-05-92 jba Changed function arguments from paddr to precord + * .14 02-28-92 jba Changed get_precision,get_graphic_double,get_control_double + * .15 02-28-92 jba ANSI C changes */ #include #include #include #include +#include +#include #include #include @@ -71,20 +75,20 @@ /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL -long init_record(); -long process(); +static long init_record(); +static long process(); #define special NULL -long get_value(); -long cvt_dbaddr(); -long get_array_info(); -long put_array_info(); -long get_units(); -long get_precision(); +static long get_value(); +static long cvt_dbaddr(); +static long get_array_info(); +static long put_array_info(); +static long get_units(); +static long get_precision(); #define get_enum_str NULL #define get_enum_strs NULL #define put_enum_str NULL -long get_graphic_double(); -long get_control_double(); +static long get_graphic_double(); +static long get_control_double(); #define get_alarm_double NULL struct rset waveformRSET={ @@ -214,7 +218,7 @@ static long cvt_dbaddr(paddr) /* This may get called before init_record. If so just call it*/ if(pwf->bptr==NULL) init_record(pwf); - paddr->pfield = (caddr_t)(pwf->bptr); + paddr->pfield = (void *)(pwf->bptr); paddr->no_elements = pwf->nelm; paddr->field_type = pwf->ftvl; if(pwf->ftvl==0) paddr->field_size = MAX_STRING_SIZE; @@ -263,6 +267,8 @@ static long get_precision(paddr,precision) struct waveformRecord *pwf=(struct waveformRecord *)paddr->precord; *precision = pwf->prec; + if(paddr->pfield==(void *)&pwf->val) return(0); + recGblGetPrec(paddr,precision); return(0); } @@ -272,8 +278,10 @@ static long get_graphic_double(paddr,pgd) { struct waveformRecord *pwf=(struct waveformRecord *)paddr->precord; - pgd->upper_disp_limit = pwf->hopr; - pgd->lower_disp_limit = pwf->lopr; + if(paddr->pfield==(void *)&pwf->val){ + pgd->upper_disp_limit = pwf->hopr; + pgd->lower_disp_limit = pwf->lopr; + } else recGblGetGraphicDouble(paddr,pgd); return(0); } static long get_control_double(paddr,pcd) @@ -282,8 +290,10 @@ static long get_control_double(paddr,pcd) { struct waveformRecord *pwf=(struct waveformRecord *)paddr->precord; - pcd->upper_ctrl_limit = pwf->hopr; - pcd->lower_ctrl_limit = pwf->lopr; + if(paddr->pfield==(void *)&pwf->val){ + pcd->upper_ctrl_limit = pwf->hopr; + pcd->lower_ctrl_limit = pwf->lopr; + } else recGblGetControlDouble(paddr,pcd); return(0); }