Experimental Physics and
| |||||||||||||||||
|
If an aoRecord device support's init_record routine is not able to set the RVAL field to the actual value read back from the hardware, it *must* return with status 2. If it returns status 0 without setting RVAL the record is going to immediately trash the VAL field with whatever it finds in the RVAL field (probably 0) back-converted into engineering units, which is pretty much going to guarantee a reboot bump. This is exactly how the bumpless reboot facility that Bob was talking about works. It was meant for any synchronous device support which *is* capable of reading the last written ADC value back from the hardware registers in raw units, and signals this ability to the record by putting that raw data into RVAL and returning 0 from init_record. If it's a device support like GPIB that uses engineering units anyway, it puts that readback value into the VAL field and returns a 2. A device support with is not capable of the hardware readback should return a 2 from init_record, to retain the contents of the VAL field as set by a constant in the DOL field (which is what Pete was trying to do). Admittedly the convention used for the value returned there is not particularly obvious, but it is documented and does match that of the read/write routine with 2 meaning do not convert. There is no need to make any changes to the ao record to do what Pete wants, just fix the device support routine. - Andrew -- Dear God, I didn't think orange went with purple until I saw the sunset you made last night. That was really cool. - Caro
| ||||||||||||||||
ANJ, 10 Aug 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |