11from functools import cache
22
3+ from daq_config_server import ConfigClient
34from ophyd_async .core import PathProvider , Reference
45from ophyd_async .fastcs .eiger import EigerDetector as FastEiger
56from ophyd_async .fastcs .panda import HDFPanda
67from yarl import URL
78
89from dodal .common .beamlines .beamline_parameters import get_beamline_parameters
910from dodal .common .beamlines .beamline_utils import set_beamline as set_utils_beamline
10- from dodal .common .beamlines .beamline_utils import set_path_provider
11+ from dodal .common .beamlines .beamline_utils import set_config_client , set_path_provider
1112from dodal .common .beamlines .commissioning_mode import set_commissioning_signal
1213from dodal .common .udc_directory_provider import PandASubpathProvider
1314from dodal .device_manager import DeviceManager
6970)
7071DISPLAY_CONFIG = "/dls_sw/i03/software/gda_versions/var/display.configuration"
7172DAQ_CONFIGURATION_PATH = "/dls_sw/i03/software/daq_configuration"
73+ I03_CONFIG_SERVER_ENDPOINT = "https://i03-daq-config.diamond.ac.uk"
7274
7375BL = get_beamline_name ("i03" )
7476set_log_beamline (BL )
@@ -92,6 +94,14 @@ def path_provider() -> PathProvider:
9294 return provider
9395
9496
97+ @devices .fixture
98+ @cache
99+ def config_client () -> ConfigClient :
100+ client = ConfigClient (I03_CONFIG_SERVER_ENDPOINT )
101+ set_config_client (client )
102+ return client
103+
104+
95105@devices .fixture
96106def daq_configuration_path () -> str :
97107 return DAQ_CONFIGURATION_PATH
@@ -141,10 +151,11 @@ def vfm() -> FocusingMirrorWithStripes:
141151
142152
143153@devices .factory ()
144- def mirror_voltages () -> MirrorVoltages :
154+ def mirror_voltages (config_client : ConfigClient ) -> MirrorVoltages :
145155 return MirrorVoltages (
146156 prefix = f"{ PREFIX .beamline_prefix } -MO-PSU-01:" ,
147157 daq_configuration_path = DAQ_CONFIGURATION_PATH ,
158+ config_client = config_client ,
148159 )
149160
150161
@@ -223,22 +234,29 @@ def synchrotron() -> Synchrotron:
223234
224235
225236@devices .factory ()
226- def undulator (baton : Baton , daq_configuration_path : str ) -> UndulatorInKeV :
237+ def undulator (
238+ baton : Baton , daq_configuration_path : str , config_client : ConfigClient
239+ ) -> UndulatorInKeV :
227240 return UndulatorInKeV (
228241 f"{ BeamlinePrefix (BL ).insertion_prefix } -MO-SERVC-01:" ,
242+ config_client = config_client ,
229243 id_gap_lookup_table_path = f"{ daq_configuration_path } /lookup/BeamLine_Undulator_toGap.txt" ,
230244 baton = baton ,
231245 )
232246
233247
234248@devices .factory ()
235249def undulator_dcm (
236- undulator : UndulatorInKeV , dcm : DCM , daq_configuration_path : str
250+ undulator : UndulatorInKeV ,
251+ dcm : DCM ,
252+ daq_configuration_path : str ,
253+ config_client : ConfigClient ,
237254) -> UndulatorDCM :
238255 return UndulatorDCM (
239256 undulator = undulator ,
240257 dcm = dcm ,
241258 daq_configuration_path = daq_configuration_path ,
259+ config_client = config_client ,
242260 )
243261
244262
0 commit comments