Open DiamondJoseph opened 5 months ago
The simulator is a generic EPICS thing, right? Would this make more sense inside ophyd-async
@coretl?
https://github.com/bluesky/ophyd-async/tree/main/src/ophyd_async/epics/adsimdetector
There is an adsimdetector in ophyd-async
I've asked Zoheb to move this over and upgrade the adsim.py file that was kinda abandoned into a more standard "beamline" file: I'm not certain if it should be a "beamline" but I want to treat it equivalently so blueapi can run up locally with the simulator easily.
switch AdSimDetector used in that file to the one in ophyd_async
use the standard device_instantiation function in the device factory functions
otherwise making the adsim "beamline" look like the others, re: logging etc.
adding a DirectoryProvider for local testing, e.g.
set_directory_provider(
StaticVisitDirectoryProvider(
BL,
Path("/tmp/blueapi/"),
client=LocalDirectoryServiceClient(),
)
)
delete the adsim in dodal and other unused classes it referenced
As part of this make sure https://github.com/DiamondLightSource/dodal/pull/737#discussion_r1711422672 has coverage
The AreaDetector simulator backed by the Epics AreaDetectorSimulator is split into three parts:
dodal/src/dodal/devices/adsim.py
contains a 5-axis MotorBundle;dodal/src/dodal/devices/areadetector/adsim.py
contains a simulated detector;dodal/src/dodal/adsim.py
is equivalent to a beamline. Having these maintained and using ophyd_async may enable fast testing of plan behaviour and would give an easily run up simulated beamline for local development.Acceptance Criteria