Merge branch 'master' of gitlab.psi.ch:/bec/ophyd_devices

This commit is contained in:
wakonig_k 2023-03-20 17:59:52 +01:00
commit c30df21c21
2 changed files with 33 additions and 2 deletions

View File

@ -107,6 +107,8 @@ class RtLamniController(Controller):
logger.info("The connection has already been established.") logger.info("The connection has already been established.")
# warnings.warn(f"The connection has already been established.", stacklevel=2) # warnings.warn(f"The connection has already been established.", stacklevel=2)
self._update_flyer_device_info()
def off(self) -> None: def off(self) -> None:
"""Close the socket connection to the controller""" """Close the socket connection to the controller"""
if self.connected: if self.connected:
@ -305,6 +307,29 @@ class RtLamniController(Controller):
readout = threading.Thread(target=self.read_positions_from_sampler) readout = threading.Thread(target=self.read_positions_from_sampler)
readout.start() readout.start()
def _update_flyer_device_info(self):
flyer_info = self._get_flyer_device_info()
self.get_device_manager().producer.set(
MessageEndpoints.device_info("rt_scan"),
BECMessage.DeviceInfoMessage(device="rt_scan", info=flyer_info).dumps(),
)
def _get_flyer_device_info(self) -> dict:
return {
"device_name": self.name,
"device_attr_name": getattr(self, "attr_name", ""),
"device_dotted_name": getattr(self, "dotted_name", ""),
"device_info": {
"device_base_class": "ophydobject",
"signals": [],
"hints": {"fields": ["average_x_st_fzp", "average_y_st_fzp"]},
"describe": {},
"describe_configuration": {},
"sub_devices": [],
"custom_user_access": [],
},
}
def kickoff(self, metadata): def kickoff(self, metadata):
self.readout_metadata = metadata self.readout_metadata = metadata
while not self._min_scan_buffer_reached: while not self._min_scan_buffer_reached:

View File

@ -383,6 +383,10 @@ class SynFlyer(Device, PositionerBase):
super().__init__(name=name, parent=parent, labels=labels, kind=kind, **kwargs) super().__init__(name=name, parent=parent, labels=labels, kind=kind, **kwargs)
@property
def hints(self):
return {"fields": ["flyer_samx", "flyer_samy"]}
def kickoff(self, metadata, num_pos, positions, exp_time: float = 0): def kickoff(self, metadata, num_pos, positions, exp_time: float = 0):
positions = np.asarray(positions) positions = np.asarray(positions)
@ -394,8 +398,10 @@ class SynFlyer(Device, PositionerBase):
bundle.append( bundle.append(
BECMessage.DeviceMessage( BECMessage.DeviceMessage(
signals={ signals={
"flyer_samx": {"value": positions[ii, 0], "timestamp": 0}, self.name: {
"flyer_samy": {"value": positions[ii, 1], "timestamp": 0}, "flyer_samx": {"value": positions[ii, 0], "timestamp": 0},
"flyer_samy": {"value": positions[ii, 1], "timestamp": 0},
}
}, },
metadata={"pointID": ii, **metadata}, metadata={"pointID": ii, **metadata},
).dumps() ).dumps()