fix: device_read should use set_and_publish

This commit is contained in:
wakonig_k 2024-03-05 16:08:57 +01:00
parent 704c89c25f
commit afd7912329
5 changed files with 23 additions and 43 deletions

View File

@ -474,7 +474,7 @@ class RtFlomniController(RtController):
) )
def publish_device_data(self, signals, pointID): def publish_device_data(self, signals, pointID):
self.get_device_manager().connector.send( self.get_device_manager().connector.set_and_publish(
MessageEndpoints.device_read("rt_flomni"), MessageEndpoints.device_read("rt_flomni"),
messages.DeviceMessage( messages.DeviceMessage(
signals=signals, metadata={"pointID": pointID, **self.readout_metadata} signals=signals, metadata={"pointID": pointID, **self.readout_metadata}

View File

@ -432,7 +432,7 @@ class RtLamniController(Controller):
) )
def publish_device_data(self, signals, pointID): def publish_device_data(self, signals, pointID):
self.get_device_manager().connector.send( self.get_device_manager().connector.set_and_publish(
MessageEndpoints.device_read("rt_lamni"), MessageEndpoints.device_read("rt_lamni"),
messages.DeviceMessage( messages.DeviceMessage(
signals=signals, metadata={"pointID": pointID, **self.readout_metadata} signals=signals, metadata={"pointID": pointID, **self.readout_metadata}

View File

@ -402,7 +402,7 @@ class RtController(Controller):
) )
def publish_device_data(self, signals, pointID): def publish_device_data(self, signals, pointID):
self.get_device_manager().connector.send( self.get_device_manager().connector.set_and_publish(
MessageEndpoints.device_read("rt_lamni"), MessageEndpoints.device_read("rt_lamni"),
messages.DeviceMessage( messages.DeviceMessage(
signals=signals, metadata={"pointID": pointID, **self.readout_metadata} signals=signals, metadata={"pointID": pointID, **self.readout_metadata}

View File

@ -1,32 +1,26 @@
import os import os
import threading import threading
import time as ttime import time as ttime
import numpy as np import numpy as np
from bec_lib import MessageEndpoints, bec_logger, messages from bec_lib import MessageEndpoints, bec_logger, messages
from ophyd import Component as Cpt from ophyd import Component as Cpt
from ophyd import Device, DeviceStatus
from ophyd import DynamicDeviceComponent as Dcpt from ophyd import DynamicDeviceComponent as Dcpt
from ophyd import Device, DeviceStatus, Kind from ophyd import Kind, PositionerBase
from ophyd import PositionerBase
from ophyd.flyers import FlyerInterface from ophyd.flyers import FlyerInterface
from ophyd.sim import SynSignal from ophyd.sim import SynSignal
from ophyd.status import StatusBase from ophyd.status import StatusBase
from ophyd.utils import LimitError from ophyd.utils import LimitError
from ophyd_devices.utils.bec_scaninfo_mixin import BecScaninfoMixin
from ophyd_devices.sim.sim_data import ( from ophyd_devices.sim.sim_data import (
SimulatedPositioner,
SimulatedDataCamera, SimulatedDataCamera,
SimulatedDataMonitor, SimulatedDataMonitor,
SimulatedPositioner,
) )
from ophyd_devices.sim.sim_signals import ReadOnlySignal, SetableSignal
from ophyd_devices.sim.sim_test_devices import DummyController from ophyd_devices.sim.sim_test_devices import DummyController
from ophyd_devices.utils.bec_scaninfo_mixin import BecScaninfoMixin
from ophyd_devices.sim.sim_signals import SetableSignal, ReadOnlySignal
logger = bec_logger.logger logger = bec_logger.logger
@ -135,14 +129,7 @@ class SimCamera(Device):
) )
def __init__( def __init__(
self, self, name, *, kind=None, parent=None, sim_init: dict = None, device_manager=None, **kwargs
name,
*,
kind=None,
parent=None,
sim_init: dict = None,
device_manager=None,
**kwargs,
): ):
self.device_manager = device_manager self.device_manager = device_manager
self.init_sim_params = sim_init self.init_sim_params = sim_init
@ -535,25 +522,23 @@ class SimFlyer(Device, PositionerBase, FlyerInterface):
elapsed_time += exp_time elapsed_time += exp_time
if elapsed_time > buffer_time: if elapsed_time > buffer_time:
elapsed_time = 0 elapsed_time = 0
device.device_manager.connector.send( device.device_manager.connector.set_and_publish(
MessageEndpoints.device_read(device.name), bundle MessageEndpoints.device_read(device.name), bundle
) )
bundle = messages.BundleMessage() bundle = messages.BundleMessage()
device.device_manager.connector.set_and_publish( device.device_manager.connector.set_and_publish(
MessageEndpoints.device_status(device.name), MessageEndpoints.device_status(device.name),
messages.DeviceStatusMessage( messages.DeviceStatusMessage(
device=device.name, device=device.name, status=1, metadata={"pointID": ii, **metadata}
status=1,
metadata={"pointID": ii, **metadata},
), ),
) )
device.device_manager.connector.send(MessageEndpoints.device_read(device.name), bundle) device.device_manager.connector.set_and_publish(
MessageEndpoints.device_read(device.name), bundle
)
device.device_manager.connector.set_and_publish( device.device_manager.connector.set_and_publish(
MessageEndpoints.device_status(device.name), MessageEndpoints.device_status(device.name),
messages.DeviceStatusMessage( messages.DeviceStatusMessage(
device=device.name, device=device.name, status=0, metadata={"pointID": num_pos, **metadata}
status=0,
metadata={"pointID": num_pos, **metadata},
), ),
) )
print("done") print("done")

View File

@ -1,10 +1,9 @@
import time as ttime
import threading import threading
import time as ttime
import numpy as np import numpy as np
from bec_lib import MessageEndpoints, messages
from ophyd import OphydObject, Device, PositionerBase from ophyd import Device, OphydObject, PositionerBase
from bec_lib import messages, MessageEndpoints
class DummyControllerDevice(Device): class DummyControllerDevice(Device):
@ -130,25 +129,21 @@ class SynFlyerLamNI(Device, PositionerBase):
elapsed_time += exp_time elapsed_time += exp_time
if elapsed_time > buffer_time: if elapsed_time > buffer_time:
elapsed_time = 0 elapsed_time = 0
device.device_manager.connector.send( device.device_manager.connector.set_and_publish(
MessageEndpoints.device_read(device.name), bundle MessageEndpoints.device_read(device.name), bundle
) )
bundle = messages.BundleMessage() bundle = messages.BundleMessage()
device.device_manager.connector.set_and_publish( device.device_manager.connector.set_and_publish(
MessageEndpoints.device_status(device.name), MessageEndpoints.device_status(device.name),
messages.DeviceStatusMessage( messages.DeviceStatusMessage(
device=device.name, device=device.name, status=1, metadata={"pointID": ii, **metadata}
status=1,
metadata={"pointID": ii, **metadata},
), ),
) )
device.device_manager.connector.send(MessageEndpoints.device_read(device.name), bundle) device.device_manager.connector.send(MessageEndpoints.device_read(device.name), bundle)
device.device_manager.connector.set_and_publish( device.device_manager.connector.set_and_publish(
MessageEndpoints.device_status(device.name), MessageEndpoints.device_status(device.name),
messages.DeviceStatusMessage( messages.DeviceStatusMessage(
device=device.name, device=device.name, status=0, metadata={"pointID": num_pos, **metadata}
status=0,
metadata={"pointID": num_pos, **metadata},
), ),
) )
print("done") print("done")