Currently, MX are needing access to objects inside plans which are not devices, for example the daq-config-server ConfigClient. They are currently achieving this via a mix of dependency injection and global states. See DiamondLightSource/dodal#1997 for details.
Currently BlueAPI only supports the concept of a Device from ophyd-async. I originally suggested wrapping the ConfigClient with Device, but it was rightly pointed out this isn't a device (DiamondLightSource/dodal#1798 (comment)).
My suggestion is to allow any objects with HasName Bluesky protocol can be used with inject so that any object with a name can be found within plans, allowing for much more flexibility with BlueAPI as we have clear distinction on objects which are devices and not devices and still accessible inside plans.
Currently, MX are needing access to objects inside plans which are not devices, for example the daq-config-server
ConfigClient. They are currently achieving this via a mix of dependency injection and global states. See DiamondLightSource/dodal#1997 for details.Currently BlueAPI only supports the concept of a
Devicefrom ophyd-async. I originally suggested wrapping theConfigClientwith Device, but it was rightly pointed out this isn't a device (DiamondLightSource/dodal#1798 (comment)).My suggestion is to allow any objects with
HasNameBluesky protocol can be used withinjectso that any object with a name can be found within plans, allowing for much more flexibility with BlueAPI as we have clear distinction on objects which are devices and not devices and still accessible inside plans.