Merge branch 'master' of gitlab.psi.ch:/bec/ophyd_devices
This commit is contained in:
commit
c30df21c21
@ -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:
|
||||||
|
@ -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={
|
||||||
|
self.name: {
|
||||||
"flyer_samx": {"value": positions[ii, 0], "timestamp": 0},
|
"flyer_samx": {"value": positions[ii, 0], "timestamp": 0},
|
||||||
"flyer_samy": {"value": positions[ii, 1], "timestamp": 0},
|
"flyer_samy": {"value": positions[ii, 1], "timestamp": 0},
|
||||||
|
}
|
||||||
},
|
},
|
||||||
metadata={"pointID": ii, **metadata},
|
metadata={"pointID": ii, **metadata},
|
||||||
).dumps()
|
).dumps()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user