Added insertion device proxy

This commit is contained in:
gac-x12sa 2022-11-14 16:33:47 +01:00
parent 82a37ceb38
commit 19f5f728cc
3 changed files with 46 additions and 2 deletions

View File

@ -1,10 +1,10 @@
idgap:
desc: 'Undulator gap size [mm]'
acquisition: {schedule: sync}
config: {name: idgap, read_pv: 'X12SA-ID-GAP:READ'}
config: {name: idgap, prefix: 'X12SA-ID'}
deviceGroup: monitor
status: {enabled: true}
type: EpicsSignalRO
type: InsertionDevice
bm1trx:
desc: 'FrontEnd XBPM 1 horizontal movement'
acquisition: {schedule: sync}

View File

@ -0,0 +1,43 @@
from ophyd import PVPositioner, Component, EpicsSignal, EpicsSignalRO, Kind
class InsertionDevice(PVPositioner):
""" Python wrapper for the CSAXS insertion device control
This wrapper provides a positioner interface for the ID control.
is completely custom XBPM with templates directly in the
VME repo. Thus it needs a custom ophyd template as well...
WARN: The x and y are not updated by the IOC
"""
status = Component(EpicsSignalRO, "-USER:STATUS", auto_monitor=True)
errorSource = Component(EpicsSignalRO, "-USER:ERROR-SOURCE", auto_monitor=True)
isOpen = Component(EpicsSignalRO, "-GAP:ISOPEN", auto_monitor=True)
# PVPositioner interface
setpoint = Component(EpicsSignal, "-GAP:SET", auto_monitor=True)
readback = Component(EpicsSignalRO, "-GAP:READ", auto_monitor=True, kind=Kind.hinted)
done = Component(EpicsSignalRO, ":DONE", auto_monitor=True)
stop_signal = Component(EpicsSignal, "-GAP:STOP", kind=Kind.omitted)
# Automatically start simulation if directly invoked
# (NA for important devices)
if __name__ == "__main__":
pass

View File

@ -2,3 +2,4 @@ from .DelayGeneratorDG645 import DelayGeneratorDG645
from .slits import SlitH, SlitV
from .XbpmBase import XbpmBase, XbpmCsaxsOp
from .SpmBase import SpmBase
from .InsertionDevice import InsertionDevice