Added insertion device proxy
This commit is contained in:
parent
82a37ceb38
commit
19f5f728cc
@ -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}
|
||||||
|
43
ophyd_devices/epics/proxies/InsertionDevice.py
Normal file
43
ophyd_devices/epics/proxies/InsertionDevice.py
Normal 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user