Experimental Physics and
| |||||||||||||||||
|
Hi Emmanuel,I have been struggling with a record loop. What is the best way to implement the following. I think this is a very common problem. I had to solve similar problems several times in the past few years. E.g. I had two positions represented additionally as angle and displacement, each of the four can be set. I solved it by the use of an intermediate transform record from the synApps package. Transform has a bunch of fields (A, B, ...) with input links (INPA, INPB, ...), output calculations (CLCA, CLCB, ...) and output links (OUTA, OUTB, ...). The feature I'm using is, that if you write field "A", then only the other output links are written (OUTB, OUTC, ...). If your records are writing to hardware, then you would need new records to copy the data to the transform record. You can as well use a bunch of calcout records directly, where you only write if the target will change. This prevents loops as long as you don't have only analogue values and rounding errors in the calculations. In your case this is probably the easier solution. As a third choice, you could add the functionality in the device support. If the device support is anyway specific to your hardware, then I would suggest to add this feature to your device support. If you want to have this feature for different device supports, I would rather look into an EPICS DB solutions. If someone else has an easier solution, please tell me :-)
-- Dr. Andreas Luedeke, SLS Operations Manager, Tel:+41-56-3104002 [email protected], http://people.web.psi.ch/luedeke
| ||||||||||||||||
ANJ, 02 Sep 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |