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: idgap:
desc: 'Undulator gap size [mm]' desc: 'Undulator gap size [mm]'
acquisition: {schedule: sync} acquisition: {schedule: sync}
config: {name: idgap, read_pv: 'X12SA-ID-GAP:READ'} config: {name: idgap, prefix: 'X12SA-ID'}
deviceGroup: monitor deviceGroup: monitor
status: {enabled: true} status: {enabled: true}
type: EpicsSignalRO type: InsertionDevice
bm1trx: bm1trx:
desc: 'FrontEnd XBPM 1 horizontal movement' desc: 'FrontEnd XBPM 1 horizontal movement'
acquisition: {schedule: sync} 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 .slits import SlitH, SlitV
from .XbpmBase import XbpmBase, XbpmCsaxsOp from .XbpmBase import XbpmBase, XbpmCsaxsOp
from .SpmBase import SpmBase from .SpmBase import SpmBase
from .InsertionDevice import InsertionDevice