Experimental Physics and
| |||||||||||||||||
|
> Possible fixes: > > - dbPutField does not set the PUTF field if the record is disabled. > - dbPutLinkValue checks PACT instead of or in addition to PUTF to > determine an active asynchronous processing. > > Looking at the limited use of the PUTF field in EPICS base I would > suggest throwing out this field completely. At least in 3.14 - to make > more room for C++ code. PUTF was created for the following reason: If a CA client does multiple writes to an asynchronous record the record can easily be put in the following state: 1) The VAL field has the last value the client wrote. 2) The value written to hardware is the value from the 2nd to last value the client wrote. Thus getting rid of PUTF might not be a good idea. Looking briefly at the dbAccess code perhaps a slight modification of Ralph's first suggestion is the best fix. Let dbProcess set PUTF false if it finds the record disabled (no need to duplicate the code to see if the record is disabled). This seems to be consistant with what it means to disable a record. When a record is disabled the VAL field can be changed by database links. When the record is enabled it is not automatically processed but waits for the next time something processes the record. Thus puts from CA client will have the same effect as database puts. Marty Kraimer [email protected] wrote: This is an EPICS bug report.
| ||||||||||||||||
ANJ, 10 Aug 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |