Replies: 1 comment 5 replies
-
pythonSoftIOC is a Python wrapper to the EPICS process database, i.e. is identical from a client perspective to an IOC where you write your driver support in C, except the driver support calls into Python. This means it supports CA and PVA, and all the standard record types. This also means you have to funnel everything through the database layer, so are restricted to the types that it supports. caproto (and pcaspy) allows you to make a CA server without the record layer, but only serves over CA, not PVA. You are then only limited by CA types, not record types, but you have to make your own "record layer" if you want to offer support for the user setting "EGU" or alarm limits. p4p (and pvaPy) will allow you to do the same, but gives you a PVA server, and can server any PVA serializable type. Basically pythonSoftIOC works best for us while we are mainly using CA and gradually want to transition to PVA. Eventually when we are all on PVA we may prefer the p4p route. To bridge that gap we are writing https://github.com/DiamondLightSource/FastCS which will allow us to device specific logic in a control system agnostic way, then run it using a pythonSoftIOC backend, or in the future a p4p backend or even a Tango backend |
Beta Was this translation helpful? Give feedback.
-
I discovered the caproto package which is a pure Python implementation of the EPICS channel access protocol. It provides an IOC server and an asyncio client so it appears to combine the features of pythonSoftIOC and aioca. Other than having to install just one package, are there any other advantages of using caproto instead of pythonSoftIOC and aioca? Are there any disadvantages to using caproto?
Beta Was this translation helpful? Give feedback.
All reactions