DiamondLightSource / DiamondLightSource/dodal
Create a synchrotron "beamline" for Synchrotron related devices
- Dominant language
- Python
- Stars
- 5
- Forks
- 13
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 10
Description
With https://github.com/DiamondLightSource/dodal/pull/1770 now complete, we are now able to reduce duplicate configuration for beamlines by including devices defined by a different device manager e.g shared optics such as pgm are using the same device on i05 and i05_1, but it can be defined once in i05_shared.
`Synchrotron` is also a device that is used on almost every beamline. We are redefining the same device close to 20 times. Once all beamlines have converted to the new DeviceManager, it would be worth creating a `dodal/beamlines/synchrotron.py` which defines devices (almost) all beamlines would use such as `Synchrotron`. Future devices added could be `topup` and `checkbeam` so there is a common solution for all beamlines defined once.
Then each beamline that requires it can do
```Python
from dodal.beamlines.synchrotron import devices as synchrotron_devices
...
devices = DeviceManager()
# Include Synchotron device + anything else added in future
devices.include(synchrotron_devices)
```
Contributor guide
Assessment
This issue has not been assessed yet.