One thing to look at is the asynInt32Average device support
already in asyn/devEpics. This device support averages the callback
(interrupt) readings from a device until the next time the record is processed.
So if the record is periodically processing at 10Hz it averages all the
readings for 0.1 second, and if the scan rate is changed to 1Hz it
automatically increases the averaging period to 1 second. This requires no
changes to the driver, beyond the required support for asynInt32 callbacks. We
run some ADCs at 1kHz callback rate, so the device support does a lot of
averaging.
Mark
Hi Wang,
Hytec currently have work in progress to
provide Asyn Driver support for our ADCs. We are currently working on the 8401
ADC code and will support the 8413 next. This new support includes
functionality to allow run time modification of many parameters including
sampling rate, collection mode, number of samples and number to average over.
You will have to stop the ADC sampling to
make a change but you will not need to reboot the IOC.
The specification for this work has been
driven by requirements for Diamond and agreed with them.
When the code is tested and approved it
will be available to download, hopefully soon.
Regards,
Graham Cross
Hytec Electronics Ltd
hi,all
I am using the hytec8401 and the correponding hy8401ip driver from Diamond. The
record can be follows:
record(ai,"AI")
{
field(DTYP,"Hy8401ip")
field(INP,"#20S0 @ MEAN=10)
}
Sometimes i want to change the samples to average. But i do not know how to
change this field without reboot the ioc? AI.INP looks like can not be change
in running. By the way i use edm.
Wang Qisheng
===================================================
No.239 Zhangheng Road
PuDong District
Shanghai Institute of Applied Physics CAS
Shanghai, China
Tel: +86-21-33933256 Fax: +86-21-33933031