Experimental Physics and
| |||||||||||||||||
|
You're right, it's wrong. When I look at the sources for rec/mbbiDirectRecord.c, there's this: static long readValue(pmbbiDirect) struct mbbiDirectRecord *pmbbiDirect; { ... if (pmbbiDirect->simm == menuSimmYES){ status=dbGetLink(&(pmbbiDirect->siol), DBR_ULONG,&(pmbbiDirect->sval),0,0); if (status==0){ pmbbiDirect->val=(unsigned short)pmbbiDirect- >sval; pmbbiDirect->udf=FALSE; } status=2; /* don't convert */ } %%%%%%%% I think an 'else' is missing here %%%%%%%%% if (pmbbiDirect->simm == menuSimmRAW){ status=dbGetLink(&(pmbbiDirect->siol), DBR_ULONG,&(pmbbiDirect->sval),0,0); if (status==0){ pmbbiDirect->rval=pmbbiDirect->sval; pmbbiDirect->udf=FALSE; } status=0; /* convert since we've written RVAL */ } else { status=-1; %%%%%%%% because you end up here with SIMM=YES: %%%%%%%%%%%%%%%% recGblSetSevr(pmbbiDirect,SOFT_ALARM,INVALID_ALARM); return(status); } ... -Kay On Dec 7, 2006, at 16:47 , Vladimir Sirotenko wrote: record(longin,"CTL_VS/SET") { field(DTYP, "Soft Channel") field(SCAN, "1 second") field(FLNK, "CTL_VS/MBBI") field(VAL,"1") field(PINI,"YES") } record(mbbiDirect,"CTL_VS/MBBI") { field(DTYP, "Raw Soft Channel") field(INP, "2") field(SCAN, "Passive") field(NOBT, "16") field(SHFT, "0") field(SIMM, "YES") field(SIOL, "CTL_VS/SET") field(FLNK, "CTL_VS/LONGIN") } record(longin,"CTL_VS/LONGIN") { field(DTYP, "Soft Channel") field(INP, "3") field(SCAN, "Passive") field(SIMM, "YES") field(SIOL, "CTL_VS/SET") }
| ||||||||||||||||
ANJ, 02 Sep 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |