Experimental Physics and
| |||||||||||||||
|
This Message Is From an External Sender
This message came from outside your organization.
On 2024-02-29 15:50, Ralph Lange via Core-talk wrote: > On Thu, 29 Feb 2024 at 15: 10, Mark Rivers <rivers@ cars. uchicago. edu> > wrote: If you only have 20 motors with 1-2 enums then I don't understand > why you don't just use the current "correct" solution which does not > require > ZjQcmQRYFpfptBannerStart > This Message Is From an External Sender > This message came from outside your organization. > ZjQcmQRYFpfptBannerEnd > On Thu, 29 Feb 2024 at 15:10, Mark Rivers <rivers at cars.uchicago.edu > <mailto:rivers at cars.uchicago.edu>> wrote: > > > If you only have 20 motors with 1-2 enums then I don't understand > why you don't just use the current "correct" solution which does not > require a hack to do callbacks. Just implement the readEnum method. > > > What if the device is not connected at iocInit and becomes available later? > > I know this is a general EPICS Base issue. > The whole approach of "initialization happens when the IOC boots" lost > its appeal since the 1980s/VME. Initialization at any moment, > before/during/after the IOC is up, should be the regular case. Btw. PINI > is another part of that problem, which is why drivers like Stream and > OPC UA have their own handling of (re)initialization. > > IMHO, doing requests after connect and callbacks after the IOC is up is > the "correct" solution, while implementing readEnum feels more like a > hack. Which is a lot simpler and works in many cases, no doubt about that. > > Cheers, > ~Ralph Thanks Mark and Ralph for digging. It seems as if there are 2 schools here: 1) - Connect to the PLC/Camera/motionController - Read all data/enums - Initialize all records with the enums from the external hardware 2) - a) Run iocInit - b) Connect to the PLC/Camera/motionController - c) Read all data/enums - d) put them into the records via a callback In our case a) and b) and c) run all in parallel, kind of. It may happen that there is a race condition. Or it may even happen, that the motionController is not even online, when the IOC is started, since there are 2 different technical groups involved, with their own time plans, schedules in the daily work. However, I keep the readEnum() in mind...
| ||||||||||||||
ANJ, 29 Feb 2024 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |