mirror of
https://github.com/ivan-usov-org/bec.git
synced 2025-04-22 02:20:02 +02:00
renamed KMessage to BMessage
This commit is contained in:
parent
6a6c344f0e
commit
b1f2332576
@ -3,7 +3,7 @@ import logging
|
|||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import bec_utils.BECMessage as KMessage
|
import bec_utils.BECMessage as BMessage
|
||||||
import msgpack
|
import msgpack
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from bec_utils import Alarms, DeviceManagerBase, DeviceStatus, MessageEndpoints
|
from bec_utils import Alarms, DeviceManagerBase, DeviceStatus, MessageEndpoints
|
||||||
@ -75,7 +75,7 @@ async def live_updates_readback(
|
|||||||
while not all(stop_dev.is_set() for stop_dev in stop):
|
while not all(stop_dev.is_set() for stop_dev in stop):
|
||||||
msg = consumer.poll_messages()
|
msg = consumer.poll_messages()
|
||||||
if msg is not None:
|
if msg is not None:
|
||||||
msg = KMessage.DeviceMessage.loads(msg.value).content["signals"]
|
msg = BMessage.DeviceMessage.loads(msg.value).content["signals"]
|
||||||
for ind, dev in enumerate(devices):
|
for ind, dev in enumerate(devices):
|
||||||
if dev in msg:
|
if dev in msg:
|
||||||
dev_values[ind] = msg[dev].get("value")
|
dev_values[ind] = msg[dev].get("value")
|
||||||
|
@ -3,7 +3,7 @@ import logging
|
|||||||
import time
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import bec_utils.BECMessage as KMessage
|
import bec_utils.BECMessage as BMessage
|
||||||
from bec_utils import Device, DeviceManagerBase, MessageEndpoints
|
from bec_utils import Device, DeviceManagerBase, MessageEndpoints
|
||||||
|
|
||||||
from bec_client.callbacks import ScanRequestError
|
from bec_client.callbacks import ScanRequestError
|
||||||
@ -84,7 +84,7 @@ def rpc(fcn):
|
|||||||
"args": args,
|
"args": args,
|
||||||
"kwargs": kwargs,
|
"kwargs": kwargs,
|
||||||
}
|
}
|
||||||
msg = KMessage.ScanQueueMessage(
|
msg = BMessage.ScanQueueMessage(
|
||||||
scan_type="device_rpc",
|
scan_type="device_rpc",
|
||||||
parameter=params,
|
parameter=params,
|
||||||
queue="primary",
|
queue="primary",
|
||||||
@ -106,7 +106,7 @@ def rpc(fcn):
|
|||||||
if msg:
|
if msg:
|
||||||
break
|
break
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
msg = KMessage.DeviceRPCMessage.loads(msg)
|
msg = BMessage.DeviceRPCMessage.loads(msg)
|
||||||
return msg.content.get("return_val")
|
return msg.content.get("return_val")
|
||||||
|
|
||||||
return wrapper
|
return wrapper
|
||||||
@ -167,7 +167,7 @@ class DeviceBase(Device):
|
|||||||
else:
|
else:
|
||||||
val = self.parent.producer.get(MessageEndpoints.device_read(self.name))
|
val = self.parent.producer.get(MessageEndpoints.device_read(self.name))
|
||||||
if val:
|
if val:
|
||||||
return KMessage.DeviceMessage.loads(val).content["signals"].get(self.name)
|
return BMessage.DeviceMessage.loads(val).content["signals"].get(self.name)
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -280,8 +280,8 @@ class DMClient(DeviceManagerBase):
|
|||||||
self.devices._add_device(name, obj)
|
self.devices._add_device(name, obj)
|
||||||
print(time.time() - start)
|
print(time.time() - start)
|
||||||
|
|
||||||
def _get_device_info(self, device_name) -> KMessage.DeviceInfoMessage:
|
def _get_device_info(self, device_name) -> BMessage.DeviceInfoMessage:
|
||||||
msg = KMessage.DeviceInfoMessage.loads(
|
msg = BMessage.DeviceInfoMessage.loads(
|
||||||
self.producer.get(MessageEndpoints.device_info(device_name))
|
self.producer.get(MessageEndpoints.device_info(device_name))
|
||||||
)
|
)
|
||||||
return msg
|
return msg
|
||||||
@ -292,7 +292,7 @@ class DMClient(DeviceManagerBase):
|
|||||||
msg = self._get_device_info(dev.get("name"))
|
msg = self._get_device_info(dev.get("name"))
|
||||||
self._add_device(dev, msg)
|
self._add_device(dev, msg)
|
||||||
|
|
||||||
def _add_device(self, dev: dict, msg: KMessage.DeviceInfoMessage):
|
def _add_device(self, dev: dict, msg: BMessage.DeviceInfoMessage):
|
||||||
name = msg.content["device"]
|
name = msg.content["device"]
|
||||||
info = msg.content["info"]
|
info = msg.content["info"]
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ import logging
|
|||||||
import time
|
import time
|
||||||
from collections import deque
|
from collections import deque
|
||||||
|
|
||||||
import bec_utils.BECMessage as KMessage
|
import bec_utils.BECMessage as BMessage
|
||||||
from bec_utils import MessageEndpoints
|
from bec_utils import MessageEndpoints
|
||||||
|
|
||||||
logger = logging.getLogger("scan_queue")
|
logger = logging.getLogger("scan_queue")
|
||||||
@ -18,24 +18,24 @@ class ScanRequest:
|
|||||||
self.status = "pending"
|
self.status = "pending"
|
||||||
self.scanID = None # request.metadata.get("scanID")
|
self.scanID = None # request.metadata.get("scanID")
|
||||||
|
|
||||||
def update_with_response(self, response: KMessage.RequestResponseMessage):
|
def update_with_response(self, response: BMessage.RequestResponseMessage):
|
||||||
self.response = response
|
self.response = response
|
||||||
self.decision_pending = False
|
self.decision_pending = False
|
||||||
self.request_id = response.metadata["RID"]
|
self.request_id = response.metadata["RID"]
|
||||||
self.accepted = [response.content["decision"] == "accepted"]
|
self.accepted = [response.content["decision"] == "accepted"]
|
||||||
|
|
||||||
def update_with_request(self, request: KMessage.ScanQueueMessage):
|
def update_with_request(self, request: BMessage.ScanQueueMessage):
|
||||||
self.request = request
|
self.request = request
|
||||||
self.request_id = request.metadata["RID"]
|
self.request_id = request.metadata["RID"]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_request(cls, request: KMessage.ScanQueueMessage):
|
def from_request(cls, request: BMessage.ScanQueueMessage):
|
||||||
scan_req = cls()
|
scan_req = cls()
|
||||||
scan_req.update_with_request(request=request)
|
scan_req.update_with_request(request=request)
|
||||||
return scan_req
|
return scan_req
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_response(cls, response: KMessage.RequestResponseMessage):
|
def from_response(cls, response: BMessage.RequestResponseMessage):
|
||||||
scan_req = cls()
|
scan_req = cls()
|
||||||
scan_req.update_with_response(response)
|
scan_req.update_with_response(response)
|
||||||
return scan_req
|
return scan_req
|
||||||
@ -208,7 +208,7 @@ class ScanQueue:
|
|||||||
action = "deferred_pause" if deferred_pause else "pause"
|
action = "deferred_pause" if deferred_pause else "pause"
|
||||||
self.parent.producer.send(
|
self.parent.producer.send(
|
||||||
MessageEndpoints.scan_queue_modification_request(),
|
MessageEndpoints.scan_queue_modification_request(),
|
||||||
KMessage.ScanQueueModificationMessage(
|
BMessage.ScanQueueModificationMessage(
|
||||||
scanID=scanID, action=action, parameter={}
|
scanID=scanID, action=action, parameter={}
|
||||||
).dumps(),
|
).dumps(),
|
||||||
)
|
)
|
||||||
@ -218,7 +218,7 @@ class ScanQueue:
|
|||||||
scanID = self.current_scanId
|
scanID = self.current_scanId
|
||||||
self.parent.producer.send(
|
self.parent.producer.send(
|
||||||
MessageEndpoints.scan_queue_modification_request(),
|
MessageEndpoints.scan_queue_modification_request(),
|
||||||
KMessage.ScanQueueModificationMessage(
|
BMessage.ScanQueueModificationMessage(
|
||||||
scanID=scanID, action="abort", parameter={}
|
scanID=scanID, action="abort", parameter={}
|
||||||
).dumps(),
|
).dumps(),
|
||||||
)
|
)
|
||||||
@ -228,7 +228,7 @@ class ScanQueue:
|
|||||||
scanID = self.current_scanId
|
scanID = self.current_scanId
|
||||||
self.parent.producer.send(
|
self.parent.producer.send(
|
||||||
MessageEndpoints.scan_queue_modification_request(),
|
MessageEndpoints.scan_queue_modification_request(),
|
||||||
KMessage.ScanQueueModificationMessage(
|
BMessage.ScanQueueModificationMessage(
|
||||||
scanID=scanID, action="continue", parameter={}
|
scanID=scanID, action="continue", parameter={}
|
||||||
).dumps(),
|
).dumps(),
|
||||||
)
|
)
|
||||||
@ -244,13 +244,13 @@ class ScanQueue:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _scan_segment_callback(msg, *, parent, **kwargs) -> None:
|
def _scan_segment_callback(msg, *, parent, **kwargs) -> None:
|
||||||
scan_msg = KMessage.ScanMessage.loads(msg.value)
|
scan_msg = BMessage.ScanMessage.loads(msg.value)
|
||||||
if scan_msg is not None:
|
if scan_msg is not None:
|
||||||
parent.add_scan_msg(scan_msg)
|
parent.add_scan_msg(scan_msg)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _scan_queue_status_callback(msg, *, parent, **kwargs) -> None:
|
def _scan_queue_status_callback(msg, *, parent, **kwargs) -> None:
|
||||||
queue_status = KMessage.ScanQueueStatusMessage.loads(msg.value)
|
queue_status = BMessage.ScanQueueStatusMessage.loads(msg.value)
|
||||||
if queue_status is not None:
|
if queue_status is not None:
|
||||||
parent._update_queue_status(queue_status.content["queue"])
|
parent._update_queue_status(queue_status.content["queue"])
|
||||||
# if scan.metadata is not None:
|
# if scan.metadata is not None:
|
||||||
@ -307,7 +307,7 @@ class ScanQueue:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _scan_queue_request_callback(msg, *, parent, **kwargs) -> None:
|
def _scan_queue_request_callback(msg, *, parent, **kwargs) -> None:
|
||||||
request = KMessage.ScanQueueMessage.loads(msg.value)
|
request = BMessage.ScanQueueMessage.loads(msg.value)
|
||||||
if request.metadata is not None:
|
if request.metadata is not None:
|
||||||
if "RID" in request.metadata:
|
if "RID" in request.metadata:
|
||||||
if parent.scan_queue_requests.get(request.metadata["RID"]) is not None:
|
if parent.scan_queue_requests.get(request.metadata["RID"]) is not None:
|
||||||
@ -319,7 +319,7 @@ class ScanQueue:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _scan_queue_request_response_callback(msg, *, parent, **kwargs) -> None:
|
def _scan_queue_request_response_callback(msg, *, parent, **kwargs) -> None:
|
||||||
response = KMessage.RequestResponseMessage.loads(msg.value)
|
response = BMessage.RequestResponseMessage.loads(msg.value)
|
||||||
logger.debug(response)
|
logger.debug(response)
|
||||||
if parent.scan_queue_requests.get(response.metadata.get("RID")) is not None:
|
if parent.scan_queue_requests.get(response.metadata.get("RID")) is not None:
|
||||||
parent.scan_queue_requests[response.metadata["RID"]].update_with_response(response)
|
parent.scan_queue_requests[response.metadata["RID"]].update_with_response(response)
|
||||||
@ -334,7 +334,7 @@ class ScanQueue:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _scan_status_callback(msg, *, parent, **kwargs) -> None:
|
def _scan_status_callback(msg, *, parent, **kwargs) -> None:
|
||||||
scan = KMessage.ScanStatusMessage.loads(msg.value)
|
scan = BMessage.ScanStatusMessage.loads(msg.value)
|
||||||
scan_number = scan.content["info"].get("scan_number")
|
scan_number = scan.content["info"].get("scan_number")
|
||||||
if scan_number:
|
if scan_number:
|
||||||
parent.last_scan_number = scan_number
|
parent.last_scan_number = scan_number
|
||||||
|
@ -4,7 +4,7 @@ import uuid
|
|||||||
from contextlib import ContextDecorator
|
from contextlib import ContextDecorator
|
||||||
|
|
||||||
import msgpack
|
import msgpack
|
||||||
from bec_utils import BECMessage as KMessage
|
from bec_utils import BECMessage as BMessage
|
||||||
from bec_utils import MessageEndpoints
|
from bec_utils import MessageEndpoints
|
||||||
from bec_utils.connector import ConsumerConnector
|
from bec_utils.connector import ConsumerConnector
|
||||||
from cytoolz import partition
|
from cytoolz import partition
|
||||||
@ -75,7 +75,7 @@ class ScanObject:
|
|||||||
else:
|
else:
|
||||||
return self.scan_info.get("scan_report_hint")
|
return self.scan_info.get("scan_report_hint")
|
||||||
|
|
||||||
def _start_consumer(self, request: KMessage.ScanQueueMessage) -> ConsumerConnector:
|
def _start_consumer(self, request: BMessage.ScanQueueMessage) -> ConsumerConnector:
|
||||||
consumer = self.parent.devicemanager.connector.consumer(
|
consumer = self.parent.devicemanager.connector.consumer(
|
||||||
[
|
[
|
||||||
MessageEndpoints.device_readback(dev)
|
MessageEndpoints.device_readback(dev)
|
||||||
@ -86,7 +86,7 @@ class ScanObject:
|
|||||||
)
|
)
|
||||||
return consumer
|
return consumer
|
||||||
|
|
||||||
def _send_scan_request(self, request: KMessage.ScanQueueMessage) -> None:
|
def _send_scan_request(self, request: BMessage.ScanQueueMessage) -> None:
|
||||||
self.parent.devicemanager.producer.send(
|
self.parent.devicemanager.producer.send(
|
||||||
MessageEndpoints.scan_queue_request(), request.dumps()
|
MessageEndpoints.scan_queue_request(), request.dumps()
|
||||||
)
|
)
|
||||||
@ -140,7 +140,7 @@ class Scans:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def _prepare_scan_request(
|
def _prepare_scan_request(
|
||||||
scan_name: str, scan_info: dict, *args, **kwargs
|
scan_name: str, scan_info: dict, *args, **kwargs
|
||||||
) -> KMessage.ScanQueueMessage:
|
) -> BMessage.ScanQueueMessage:
|
||||||
"""Prepare scan request message with given scan arguments
|
"""Prepare scan request message with given scan arguments
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -153,7 +153,7 @@ class Scans:
|
|||||||
TypeError: Raised if an argument is not of the required type as specified in scan_info.
|
TypeError: Raised if an argument is not of the required type as specified in scan_info.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
KMessage.ScanQueueMessage: _description_
|
BMessage.ScanQueueMessage: _description_
|
||||||
"""
|
"""
|
||||||
arg_input = scan_info.get("arg_input")
|
arg_input = scan_info.get("arg_input")
|
||||||
if arg_input is not None:
|
if arg_input is not None:
|
||||||
@ -182,7 +182,7 @@ class Scans:
|
|||||||
"args": Scans._parameter_bundler(args, arg_bundle_size),
|
"args": Scans._parameter_bundler(args, arg_bundle_size),
|
||||||
"kwargs": kwargs,
|
"kwargs": kwargs,
|
||||||
}
|
}
|
||||||
return KMessage.ScanQueueMessage(
|
return BMessage.ScanQueueMessage(
|
||||||
scan_type=scan_name, parameter=params, queue="primary", metadata=md
|
scan_type=scan_name, parameter=params, queue="primary", metadata=md
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ import uuid
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import bec_utils.BECMessage as KMessage
|
import bec_utils.BECMessage as BMessage
|
||||||
from bec_utils import Alarms, MessageEndpoints
|
from bec_utils import Alarms, MessageEndpoints
|
||||||
|
|
||||||
from koss.scan_assembler import ScanAssembler
|
from koss.scan_assembler import ScanAssembler
|
||||||
@ -31,7 +31,7 @@ class QueueManager:
|
|||||||
self.queues = {"primary": ScanQueue(self)}
|
self.queues = {"primary": ScanQueue(self)}
|
||||||
self._start_scan_queue_consumer()
|
self._start_scan_queue_consumer()
|
||||||
|
|
||||||
def add_to_queue(self, scan_queue: str, msg: KMessage.ScanQueueMessage) -> None:
|
def add_to_queue(self, scan_queue: str, msg: BMessage.ScanQueueMessage) -> None:
|
||||||
try:
|
try:
|
||||||
self.queues[scan_queue].append(msg)
|
self.queues[scan_queue].append(msg)
|
||||||
except LimitError as limit_error:
|
except LimitError as limit_error:
|
||||||
@ -58,7 +58,7 @@ class QueueManager:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _scan_queue_callback(msg, parent, **_kwargs) -> None:
|
def _scan_queue_callback(msg, parent, **_kwargs) -> None:
|
||||||
scan_msg = KMessage.ScanQueueMessage.loads(msg.value)
|
scan_msg = BMessage.ScanQueueMessage.loads(msg.value)
|
||||||
print("Receiving scan:", scan_msg.content, time.time())
|
print("Receiving scan:", scan_msg.content, time.time())
|
||||||
# instructions = parent.scan_assembler.assemble_device_instructions(scan_msg)
|
# instructions = parent.scan_assembler.assemble_device_instructions(scan_msg)
|
||||||
parent.add_to_queue("primary", scan_msg)
|
parent.add_to_queue("primary", scan_msg)
|
||||||
@ -66,13 +66,13 @@ class QueueManager:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _scan_queue_modification_callback(msg, parent, **_kwargs):
|
def _scan_queue_modification_callback(msg, parent, **_kwargs):
|
||||||
scan_mod_msg = KMessage.ScanQueueModificationMessage.loads(msg.value)
|
scan_mod_msg = BMessage.ScanQueueModificationMessage.loads(msg.value)
|
||||||
print("Receiving scan modification:", scan_mod_msg.content)
|
print("Receiving scan modification:", scan_mod_msg.content)
|
||||||
if scan_mod_msg:
|
if scan_mod_msg:
|
||||||
parent.scan_interception(scan_mod_msg)
|
parent.scan_interception(scan_mod_msg)
|
||||||
parent.send_queue_status()
|
parent.send_queue_status()
|
||||||
|
|
||||||
def scan_interception(self, scan_mod_msg: KMessage.ScanQueueModificationMessage) -> None:
|
def scan_interception(self, scan_mod_msg: BMessage.ScanQueueModificationMessage) -> None:
|
||||||
action = scan_mod_msg.content["action"]
|
action = scan_mod_msg.content["action"]
|
||||||
self.__getattribute__("_set_" + action)(scanID=scan_mod_msg.content["scanID"])
|
self.__getattribute__("_set_" + action)(scanID=scan_mod_msg.content["scanID"])
|
||||||
|
|
||||||
@ -120,7 +120,7 @@ class QueueManager:
|
|||||||
queue_export[k] = {"info": queue_info, "status": scan_queue.status.name}
|
queue_export[k] = {"info": queue_info, "status": scan_queue.status.name}
|
||||||
self.producer.send(
|
self.producer.send(
|
||||||
MessageEndpoints.scan_queue_status(),
|
MessageEndpoints.scan_queue_status(),
|
||||||
KMessage.ScanQueueStatusMessage(queue=queue_export).dumps(),
|
BMessage.ScanQueueStatusMessage(queue=queue_export).dumps(),
|
||||||
)
|
)
|
||||||
|
|
||||||
def shutdown(self):
|
def shutdown(self):
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import bec_utils.BECMessage as KMessage
|
import bec_utils.BECMessage as BMessage
|
||||||
|
|
||||||
import koss.scans as ks
|
import koss.scans as ks
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ class ScanAssembler:
|
|||||||
def _load_scans(self):
|
def _load_scans(self):
|
||||||
self._scans = self.parent.scan_dict
|
self._scans = self.parent.scan_dict
|
||||||
|
|
||||||
def _unpack_scan(self, msg: KMessage.ScanQueueMessage):
|
def _unpack_scan(self, msg: BMessage.ScanQueueMessage):
|
||||||
scan = msg.content.get("scan_type")
|
scan = msg.content.get("scan_type")
|
||||||
scan_cls = getattr(ks, self._scans[scan]["class"])
|
scan_cls = getattr(ks, self._scans[scan]["class"])
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import bec_utils.BECMessage as KMessage
|
import bec_utils.BECMessage as BMessage
|
||||||
import msgpack
|
import msgpack
|
||||||
from bec_utils import MessageEndpoints
|
from bec_utils import MessageEndpoints
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ class ScanGuard:
|
|||||||
def _scan_queue_request_callback(msg, parent, **kwargs):
|
def _scan_queue_request_callback(msg, parent, **kwargs):
|
||||||
print(
|
print(
|
||||||
"Receiving scan request:",
|
"Receiving scan request:",
|
||||||
KMessage.ScanQueueMessage.loads(msg.value).content,
|
BMessage.ScanQueueMessage.loads(msg.value).content,
|
||||||
)
|
)
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
parent._handle_scan_request(msg.value)
|
parent._handle_scan_request(msg.value)
|
||||||
@ -109,7 +109,7 @@ class ScanGuard:
|
|||||||
def _scan_queue_modification_request_callback(msg, parent, **kwargs):
|
def _scan_queue_modification_request_callback(msg, parent, **kwargs):
|
||||||
print(
|
print(
|
||||||
"Receiving scan modification request:",
|
"Receiving scan modification request:",
|
||||||
KMessage.ScanQueueModificationMessage.loads(msg.value).content,
|
BMessage.ScanQueueModificationMessage.loads(msg.value).content,
|
||||||
)
|
)
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
parent._handle_scan_modification_request(msg.value)
|
parent._handle_scan_modification_request(msg.value)
|
||||||
@ -118,7 +118,7 @@ class ScanGuard:
|
|||||||
decision = "accepted" if scan_request_decision["accepted"] else "rejected"
|
decision = "accepted" if scan_request_decision["accepted"] else "rejected"
|
||||||
self.dm.producer.send(
|
self.dm.producer.send(
|
||||||
MessageEndpoints.scan_queue_request_response(),
|
MessageEndpoints.scan_queue_request_response(),
|
||||||
KMessage.RequestResponseMessage(
|
BMessage.RequestResponseMessage(
|
||||||
decision=decision,
|
decision=decision,
|
||||||
message=scan_request_decision["message"],
|
message=scan_request_decision["message"],
|
||||||
metadata=metadata,
|
metadata=metadata,
|
||||||
@ -135,7 +135,7 @@ class ScanGuard:
|
|||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
msg = KMessage.ScanQueueMessage.loads(msg)
|
msg = BMessage.ScanQueueMessage.loads(msg)
|
||||||
scan_request_decision = self._is_valid_scan_request(msg)
|
scan_request_decision = self._is_valid_scan_request(msg)
|
||||||
|
|
||||||
accepted = scan_request_decision.get("accepted")
|
accepted = scan_request_decision.get("accepted")
|
||||||
@ -156,7 +156,7 @@ class ScanGuard:
|
|||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
msg = KMessage.ScanQueueModificationMessage.loads(msg)
|
msg = BMessage.ScanQueueModificationMessage.loads(msg)
|
||||||
self.dm.producer.send(MessageEndpoints.scan_queue_modification(), msg.dumps())
|
self.dm.producer.send(MessageEndpoints.scan_queue_modification(), msg.dumps())
|
||||||
|
|
||||||
def _append_to_scan_queue(self, msg):
|
def _append_to_scan_queue(self, msg):
|
||||||
|
@ -4,12 +4,12 @@ import threading
|
|||||||
import time
|
import time
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
import bec_utils.BECMessage as KMessage
|
import bec_utils.BECMessage as BMessage
|
||||||
import msgpack
|
import msgpack
|
||||||
from bec_utils import DeviceStatus, MessageEndpoints
|
from bec_utils import DeviceStatus, MessageEndpoints
|
||||||
|
|
||||||
DeviceMsg = KMessage.DeviceInstructionMessage
|
DeviceMsg = BMessage.DeviceInstructionMessage
|
||||||
ScanStatusMsg = KMessage.ScanStatusMessage
|
ScanStatusMsg = BMessage.ScanStatusMessage
|
||||||
|
|
||||||
|
|
||||||
class InstructionQueueStatus(Enum):
|
class InstructionQueueStatus(Enum):
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import enum
|
import enum
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
|
|
||||||
import bec_utils.BECMessage as KMessage
|
import bec_utils.BECMessage as BMessage
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from bec_utils import DeviceManagerBase
|
from bec_utils import DeviceManagerBase
|
||||||
from cytoolz import partition
|
from cytoolz import partition
|
||||||
|
|
||||||
DeviceMsg = KMessage.DeviceInstructionMessage
|
DeviceMsg = BMessage.DeviceInstructionMessage
|
||||||
ScanMsg = KMessage.ScanQueueMessage
|
ScanMsg = BMessage.ScanQueueMessage
|
||||||
|
|
||||||
|
|
||||||
class LimitError(Exception):
|
class LimitError(Exception):
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import pytest
|
import pytest
|
||||||
from bec_utils import BECMessage as KMessage
|
from bec_utils import BECMessage as BMessage
|
||||||
from koss.devicemanager import DeviceManagerKOSS
|
from koss.devicemanager import DeviceManagerKOSS
|
||||||
from koss.scan_guard import ScanGuard
|
from koss.scan_guard import ScanGuard
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ def test_check_motors_movable():
|
|||||||
|
|
||||||
sg = ScanGuard(parent=k)
|
sg = ScanGuard(parent=k)
|
||||||
sg._check_motors_movable(
|
sg._check_motors_movable(
|
||||||
KMessage.ScanQueueMessage(
|
BMessage.ScanQueueMessage(
|
||||||
scan_type="fermat_scan",
|
scan_type="fermat_scan",
|
||||||
parameter={
|
parameter={
|
||||||
"args": {"samx": (-5, 5), "samy": (-5, 5)},
|
"args": {"samx": (-5, 5), "samy": (-5, 5)},
|
||||||
@ -32,7 +32,7 @@ def test_check_motors_movable():
|
|||||||
dm._load_config_device()
|
dm._load_config_device()
|
||||||
|
|
||||||
sg._check_motors_movable(
|
sg._check_motors_movable(
|
||||||
KMessage.ScanQueueMessage(
|
BMessage.ScanQueueMessage(
|
||||||
scan_type="fermat_scan",
|
scan_type="fermat_scan",
|
||||||
parameter={
|
parameter={
|
||||||
"args": {"samx": (-5, 5), "samy": (-5, 5)},
|
"args": {"samx": (-5, 5), "samy": (-5, 5)},
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import pytest
|
import pytest
|
||||||
from bec_utils import BECMessage as KMessage
|
from bec_utils import BECMessage as BMessage
|
||||||
from koss.scans import FermatSpiralScan, Move, Scan
|
from koss.scans import FermatSpiralScan, Move, Scan
|
||||||
|
|
||||||
|
|
||||||
@ -32,31 +32,31 @@ class DMMock:
|
|||||||
"mv_msg,reference_msg_list",
|
"mv_msg,reference_msg_list",
|
||||||
[
|
[
|
||||||
(
|
(
|
||||||
KMessage.ScanQueueMessage(
|
BMessage.ScanQueueMessage(
|
||||||
scan_type="mv",
|
scan_type="mv",
|
||||||
parameter={"args": {"samx": (1,), "samy": (2,)}, "kwargs": {}},
|
parameter={"args": {"samx": (1,), "samy": (2,)}, "kwargs": {}},
|
||||||
queue="primary",
|
queue="primary",
|
||||||
),
|
),
|
||||||
[
|
[
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samx",
|
device="samx",
|
||||||
action="set",
|
action="set",
|
||||||
parameter={"value": 1, "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"value": 1, "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
metadata={"stream": "primary", "DIID": 0},
|
metadata={"stream": "primary", "DIID": 0},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samy",
|
device="samy",
|
||||||
action="set",
|
action="set",
|
||||||
parameter={"value": 2, "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"value": 2, "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
metadata={"stream": "primary", "DIID": 1},
|
metadata={"stream": "primary", "DIID": 1},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samx",
|
device="samx",
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
metadata={"stream": "primary", "DIID": 2},
|
metadata={"stream": "primary", "DIID": 2},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samy",
|
device="samy",
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
@ -65,7 +65,7 @@ class DMMock:
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
KMessage.ScanQueueMessage(
|
BMessage.ScanQueueMessage(
|
||||||
scan_type="mv",
|
scan_type="mv",
|
||||||
parameter={
|
parameter={
|
||||||
"args": {"samx": (1,), "samy": (2,), "samz": (3,)},
|
"args": {"samx": (1,), "samy": (2,), "samz": (3,)},
|
||||||
@ -74,37 +74,37 @@ class DMMock:
|
|||||||
queue="primary",
|
queue="primary",
|
||||||
),
|
),
|
||||||
[
|
[
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samx",
|
device="samx",
|
||||||
action="set",
|
action="set",
|
||||||
parameter={"value": 1, "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"value": 1, "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
metadata={"stream": "primary", "DIID": 0},
|
metadata={"stream": "primary", "DIID": 0},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samy",
|
device="samy",
|
||||||
action="set",
|
action="set",
|
||||||
parameter={"value": 2, "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"value": 2, "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
metadata={"stream": "primary", "DIID": 1},
|
metadata={"stream": "primary", "DIID": 1},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samz",
|
device="samz",
|
||||||
action="set",
|
action="set",
|
||||||
parameter={"value": 3, "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"value": 3, "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
metadata={"stream": "primary", "DIID": 2},
|
metadata={"stream": "primary", "DIID": 2},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samx",
|
device="samx",
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
metadata={"stream": "primary", "DIID": 3},
|
metadata={"stream": "primary", "DIID": 3},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samy",
|
device="samy",
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
metadata={"stream": "primary", "DIID": 4},
|
metadata={"stream": "primary", "DIID": 4},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samz",
|
device="samz",
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
@ -113,19 +113,19 @@ class DMMock:
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
KMessage.ScanQueueMessage(
|
BMessage.ScanQueueMessage(
|
||||||
scan_type="mv",
|
scan_type="mv",
|
||||||
parameter={"args": {"samx": (1,)}, "kwargs": {}},
|
parameter={"args": {"samx": (1,)}, "kwargs": {}},
|
||||||
queue="primary",
|
queue="primary",
|
||||||
),
|
),
|
||||||
[
|
[
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samx",
|
device="samx",
|
||||||
action="set",
|
action="set",
|
||||||
parameter={"value": 1, "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"value": 1, "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
metadata={"stream": "primary", "DIID": 0},
|
metadata={"stream": "primary", "DIID": 0},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samx",
|
device="samx",
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
parameter={"type": "move", "group": "scan_motor", "wait_group": "scan_motor"},
|
||||||
@ -162,13 +162,13 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
"scan_msg,reference_scan_list",
|
"scan_msg,reference_scan_list",
|
||||||
[
|
[
|
||||||
(
|
(
|
||||||
KMessage.ScanQueueMessage(
|
BMessage.ScanQueueMessage(
|
||||||
scan_type="grid_scan",
|
scan_type="grid_scan",
|
||||||
parameter={"args": {"samx": (-5, 5, 3)}, "kwargs": {}},
|
parameter={"args": {"samx": (-5, 5, 3)}, "kwargs": {}},
|
||||||
queue="primary",
|
queue="primary",
|
||||||
),
|
),
|
||||||
[
|
[
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=["samx"],
|
device=["samx"],
|
||||||
action="read",
|
action="read",
|
||||||
parameter={
|
parameter={
|
||||||
@ -177,7 +177,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 3},
|
metadata={"stream": "primary", "DIID": 3},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=["samx"],
|
device=["samx"],
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -187,25 +187,25 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 4},
|
metadata={"stream": "primary", "DIID": 4},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="open_scan",
|
action="open_scan",
|
||||||
parameter={"primary": ["samx"], "num_points": 3, "scan_name": "grid_scan"},
|
parameter={"primary": ["samx"], "num_points": 3, "scan_name": "grid_scan"},
|
||||||
metadata={"stream": "primary", "DIID": 0},
|
metadata={"stream": "primary", "DIID": 0},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="stage",
|
action="stage",
|
||||||
parameter={},
|
parameter={},
|
||||||
metadata={"stream": "primary", "DIID": 1},
|
metadata={"stream": "primary", "DIID": 1},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="baseline_reading",
|
action="baseline_reading",
|
||||||
parameter={},
|
parameter={},
|
||||||
metadata={"stream": "baseline", "DIID": 1},
|
metadata={"stream": "baseline", "DIID": 1},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samx",
|
device="samx",
|
||||||
action="set",
|
action="set",
|
||||||
parameter={
|
parameter={
|
||||||
@ -215,7 +215,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 1},
|
metadata={"stream": "primary", "DIID": 1},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -225,19 +225,19 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 2},
|
metadata={"stream": "primary", "DIID": 2},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="trigger",
|
action="trigger",
|
||||||
parameter={"group": "trigger"},
|
parameter={"group": "trigger"},
|
||||||
metadata={"pointID": 0, "stream": "primary", "DIID": 3},
|
metadata={"pointID": 0, "stream": "primary", "DIID": 3},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={"type": "trigger", "time": 0.1},
|
parameter={"type": "trigger", "time": 0.1},
|
||||||
metadata={"stream": "primary", "DIID": 4},
|
metadata={"stream": "primary", "DIID": 4},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="read",
|
action="read",
|
||||||
parameter={
|
parameter={
|
||||||
@ -247,7 +247,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"pointID": 0, "stream": "primary", "DIID": 5},
|
metadata={"pointID": 0, "stream": "primary", "DIID": 5},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -257,7 +257,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 6},
|
metadata={"stream": "primary", "DIID": 6},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samx",
|
device="samx",
|
||||||
action="set",
|
action="set",
|
||||||
parameter={
|
parameter={
|
||||||
@ -267,7 +267,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 7},
|
metadata={"stream": "primary", "DIID": 7},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -277,7 +277,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 8},
|
metadata={"stream": "primary", "DIID": 8},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -287,19 +287,19 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 9},
|
metadata={"stream": "primary", "DIID": 9},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="trigger",
|
action="trigger",
|
||||||
parameter={"group": "trigger"},
|
parameter={"group": "trigger"},
|
||||||
metadata={"pointID": 1, "stream": "primary", "DIID": 10},
|
metadata={"pointID": 1, "stream": "primary", "DIID": 10},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={"type": "trigger", "time": 0.1},
|
parameter={"type": "trigger", "time": 0.1},
|
||||||
metadata={"stream": "primary", "DIID": 11},
|
metadata={"stream": "primary", "DIID": 11},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="read",
|
action="read",
|
||||||
parameter={
|
parameter={
|
||||||
@ -309,7 +309,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"pointID": 1, "stream": "primary", "DIID": 12},
|
metadata={"pointID": 1, "stream": "primary", "DIID": 12},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -319,7 +319,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 13},
|
metadata={"stream": "primary", "DIID": 13},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samx",
|
device="samx",
|
||||||
action="set",
|
action="set",
|
||||||
parameter={
|
parameter={
|
||||||
@ -329,7 +329,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 14},
|
metadata={"stream": "primary", "DIID": 14},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -339,7 +339,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 15},
|
metadata={"stream": "primary", "DIID": 15},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -349,13 +349,13 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 16},
|
metadata={"stream": "primary", "DIID": 16},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="trigger",
|
action="trigger",
|
||||||
parameter={"group": "trigger"},
|
parameter={"group": "trigger"},
|
||||||
metadata={"pointID": 2, "stream": "primary", "DIID": 17},
|
metadata={"pointID": 2, "stream": "primary", "DIID": 17},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -364,7 +364,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 18},
|
metadata={"stream": "primary", "DIID": 18},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="read",
|
action="read",
|
||||||
parameter={
|
parameter={
|
||||||
@ -374,7 +374,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"pointID": 2, "stream": "primary", "DIID": 19},
|
metadata={"pointID": 2, "stream": "primary", "DIID": 19},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -384,7 +384,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 20},
|
metadata={"stream": "primary", "DIID": 20},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device="samx",
|
device="samx",
|
||||||
action="set",
|
action="set",
|
||||||
parameter={
|
parameter={
|
||||||
@ -394,7 +394,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 21},
|
metadata={"stream": "primary", "DIID": 21},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -404,7 +404,7 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 22},
|
metadata={"stream": "primary", "DIID": 22},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="wait",
|
action="wait",
|
||||||
parameter={
|
parameter={
|
||||||
@ -414,13 +414,13 @@ def test_scan_move(mv_msg, reference_msg_list):
|
|||||||
},
|
},
|
||||||
metadata={"stream": "primary", "DIID": 23},
|
metadata={"stream": "primary", "DIID": 23},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="unstage",
|
action="unstage",
|
||||||
parameter={},
|
parameter={},
|
||||||
metadata={"stream": "primary", "DIID": 24},
|
metadata={"stream": "primary", "DIID": 24},
|
||||||
),
|
),
|
||||||
KMessage.DeviceInstructionMessage(
|
BMessage.DeviceInstructionMessage(
|
||||||
device=None,
|
device=None,
|
||||||
action="close_scan",
|
action="close_scan",
|
||||||
parameter={},
|
parameter={},
|
||||||
@ -449,7 +449,7 @@ def test_scan_scan(scan_msg, reference_scan_list):
|
|||||||
"scan_msg,reference_scan_list",
|
"scan_msg,reference_scan_list",
|
||||||
[
|
[
|
||||||
(
|
(
|
||||||
KMessage.ScanQueueMessage(
|
BMessage.ScanQueueMessage(
|
||||||
scan_type="fermat_scan",
|
scan_type="fermat_scan",
|
||||||
parameter={
|
parameter={
|
||||||
"args": {"samx": (-5, 5), "samy": (-5, 5)},
|
"args": {"samx": (-5, 5), "samy": (-5, 5)},
|
||||||
@ -471,7 +471,7 @@ def test_scan_scan(scan_msg, reference_scan_list):
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
KMessage.ScanQueueMessage(
|
BMessage.ScanQueueMessage(
|
||||||
scan_type="fermat_scan",
|
scan_type="fermat_scan",
|
||||||
parameter={
|
parameter={
|
||||||
"args": {"samx": (-5, 5), "samy": (-5, 5)},
|
"args": {"samx": (-5, 5), "samy": (-5, 5)},
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import bec_utils.BECMessage as KMessage
|
import bec_utils.BECMessage as BMessage
|
||||||
import msgpack
|
import msgpack
|
||||||
import ophyd
|
import ophyd
|
||||||
import ophyd.sim as ops
|
import ophyd.sim as ops
|
||||||
@ -21,7 +21,7 @@ class OPAASDevice(Device):
|
|||||||
self.metadata = {}
|
self.metadata = {}
|
||||||
|
|
||||||
def initialize_device_buffer(self, producer):
|
def initialize_device_buffer(self, producer):
|
||||||
dev_msg = KMessage.DeviceMessage(signals=self.obj.read(), metadata={}).dumps()
|
dev_msg = BMessage.DeviceMessage(signals=self.obj.read(), metadata={}).dumps()
|
||||||
pipe = producer.pipeline()
|
pipe = producer.pipeline()
|
||||||
producer.set_and_publish(MessageEndpoints.device_readback(self.name), dev_msg, pipe=pipe)
|
producer.set_and_publish(MessageEndpoints.device_readback(self.name), dev_msg, pipe=pipe)
|
||||||
producer.set(topic=MessageEndpoints.device_read(self.name), msg=dev_msg, pipe=pipe)
|
producer.set(topic=MessageEndpoints.device_read(self.name), msg=dev_msg, pipe=pipe)
|
||||||
@ -114,7 +114,7 @@ class DeviceManagerOPAAS(DeviceManagerBase):
|
|||||||
interface = get_device_info(obj, {})
|
interface = get_device_info(obj, {})
|
||||||
self.producer.set(
|
self.producer.set(
|
||||||
MessageEndpoints.device_info(obj.name),
|
MessageEndpoints.device_info(obj.name),
|
||||||
KMessage.DeviceInfoMessage(device=obj.name, info=interface).dumps(),
|
BMessage.DeviceInfoMessage(device=obj.name, info=interface).dumps(),
|
||||||
)
|
)
|
||||||
|
|
||||||
def reset_device_data(self, obj) -> None:
|
def reset_device_data(self, obj) -> None:
|
||||||
@ -124,14 +124,14 @@ class DeviceManagerOPAAS(DeviceManagerBase):
|
|||||||
self.producer.r.delete(MessageEndpoints.device_info(obj.name))
|
self.producer.r.delete(MessageEndpoints.device_info(obj.name))
|
||||||
|
|
||||||
def _obj_callback_readback(self, *args, **kwargs):
|
def _obj_callback_readback(self, *args, **kwargs):
|
||||||
# print(KMessage.DeviceMessage(signals=kwargs["obj"].read()).content)
|
# print(BMessage.DeviceMessage(signals=kwargs["obj"].read()).content)
|
||||||
# start = time.time()
|
# start = time.time()
|
||||||
obj = kwargs["obj"]
|
obj = kwargs["obj"]
|
||||||
if obj.connected:
|
if obj.connected:
|
||||||
name = kwargs["obj"].root.name
|
name = kwargs["obj"].root.name
|
||||||
signals = kwargs["obj"].read()
|
signals = kwargs["obj"].read()
|
||||||
metadata = self.devices.get(kwargs["obj"].root.name).metadata
|
metadata = self.devices.get(kwargs["obj"].root.name).metadata
|
||||||
dev_msg = KMessage.DeviceMessage(signals=signals, metadata=metadata).dumps()
|
dev_msg = BMessage.DeviceMessage(signals=signals, metadata=metadata).dumps()
|
||||||
pipe = self.producer.pipeline()
|
pipe = self.producer.pipeline()
|
||||||
self.producer.set_and_publish(MessageEndpoints.device_readback(name), dev_msg, pipe)
|
self.producer.set_and_publish(MessageEndpoints.device_readback(name), dev_msg, pipe)
|
||||||
pipe.execute()
|
pipe.execute()
|
||||||
|
@ -6,7 +6,7 @@ import time
|
|||||||
from functools import reduce
|
from functools import reduce
|
||||||
from io import StringIO
|
from io import StringIO
|
||||||
|
|
||||||
import bec_utils.BECMessage as KMessage
|
import bec_utils.BECMessage as BMessage
|
||||||
import msgpack
|
import msgpack
|
||||||
import ophyd
|
import ophyd
|
||||||
from bec_utils import Alarms, MessageEndpoints
|
from bec_utils import Alarms, MessageEndpoints
|
||||||
@ -93,7 +93,7 @@ class OPAAS:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def consumer_interception_callback(msg, *, parent, **kwargs) -> None:
|
def consumer_interception_callback(msg, *, parent, **kwargs) -> None:
|
||||||
mvalue = KMessage.ScanQueueModificationMessage.loads(msg.value)
|
mvalue = BMessage.ScanQueueModificationMessage.loads(msg.value)
|
||||||
logger.info("Receiving: %s", mvalue.content)
|
logger.info("Receiving: %s", mvalue.content)
|
||||||
if mvalue.content.get("action") == "deferred_pause":
|
if mvalue.content.get("action") == "deferred_pause":
|
||||||
pass
|
pass
|
||||||
@ -108,7 +108,7 @@ class OPAAS:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def instructions_callback(msg, *, parent, **kwargs) -> None:
|
def instructions_callback(msg, *, parent, **kwargs) -> None:
|
||||||
instructions = KMessage.DeviceInstructionMessage.loads(msg.value)
|
instructions = BMessage.DeviceInstructionMessage.loads(msg.value)
|
||||||
if instructions.content["device"] is not None:
|
if instructions.content["device"] is not None:
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
parent._update_device_metadata(instructions)
|
parent._update_device_metadata(instructions)
|
||||||
@ -177,7 +177,7 @@ class OPAAS:
|
|||||||
# send result to client
|
# send result to client
|
||||||
self.producer.set(
|
self.producer.set(
|
||||||
MessageEndpoints.device_rpc(instr_params.get("rpc_id")),
|
MessageEndpoints.device_rpc(instr_params.get("rpc_id")),
|
||||||
KMessage.DeviceRPCMessage(
|
BMessage.DeviceRPCMessage(
|
||||||
device=instr.content["device"],
|
device=instr.content["device"],
|
||||||
return_val=res,
|
return_val=res,
|
||||||
out=result.getvalue(),
|
out=result.getvalue(),
|
||||||
@ -192,7 +192,7 @@ class OPAAS:
|
|||||||
# send error to client
|
# send error to client
|
||||||
self.producer.set(
|
self.producer.set(
|
||||||
MessageEndpoints.device_rpc(instr_params.get("rpc_id")),
|
MessageEndpoints.device_rpc(instr_params.get("rpc_id")),
|
||||||
KMessage.DeviceRPCMessage(
|
BMessage.DeviceRPCMessage(
|
||||||
device=instr.content["device"],
|
device=instr.content["device"],
|
||||||
return_val=None,
|
return_val=None,
|
||||||
out={"error": exc.__class__.__name__, "msg": exc.args},
|
out={"error": exc.__class__.__name__, "msg": exc.args},
|
||||||
@ -220,7 +220,7 @@ class OPAAS:
|
|||||||
metadata = self.device_manager.devices.get(dev).metadata
|
metadata = self.device_manager.devices.get(dev).metadata
|
||||||
self.producer.set_and_publish(
|
self.producer.set_and_publish(
|
||||||
MessageEndpoints.device_read(dev),
|
MessageEndpoints.device_read(dev),
|
||||||
KMessage.DeviceMessage(signals=signals, metadata=metadata).dumps(),
|
BMessage.DeviceMessage(signals=signals, metadata=metadata).dumps(),
|
||||||
pipe,
|
pipe,
|
||||||
)
|
)
|
||||||
status_info = metadata
|
status_info = metadata
|
||||||
|
@ -3,7 +3,7 @@ import time
|
|||||||
import uuid
|
import uuid
|
||||||
from collections.abc import Iterable
|
from collections.abc import Iterable
|
||||||
|
|
||||||
import bec_utils.BECMessage as KMessage
|
import bec_utils.BECMessage as BMessage
|
||||||
import msgpack
|
import msgpack
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from bec_utils import MessageEndpoints
|
from bec_utils import MessageEndpoints
|
||||||
@ -60,7 +60,7 @@ class ScanBundler:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def _device_read_callback(msg, parent, **kwargs):
|
def _device_read_callback(msg, parent, **kwargs):
|
||||||
dev = msg.topic.decode().split(MessageEndpoints._device_read + "/")[-1].split(":sub")[0]
|
dev = msg.topic.decode().split(MessageEndpoints._device_read + "/")[-1].split(":sub")[0]
|
||||||
msg = KMessage.DeviceMessage.loads(msg.value)
|
msg = BMessage.DeviceMessage.loads(msg.value)
|
||||||
if msg.content["signals"].get(dev) is not None:
|
if msg.content["signals"].get(dev) is not None:
|
||||||
parent._add_device_to_storage(
|
parent._add_device_to_storage(
|
||||||
msg.metadata["scanID"], dev, msg.content["signals"], msg.metadata
|
msg.metadata["scanID"], dev, msg.content["signals"], msg.metadata
|
||||||
@ -70,7 +70,7 @@ class ScanBundler:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _scan_queue_callback(msg, parent, **kwargs):
|
def _scan_queue_callback(msg, parent, **kwargs):
|
||||||
msg = KMessage.ScanQueueStatusMessage.loads(msg.value)
|
msg = BMessage.ScanQueueStatusMessage.loads(msg.value)
|
||||||
print(msg)
|
print(msg)
|
||||||
for q in msg.content["queue"]["primary"].get("info"):
|
for q in msg.content["queue"]["primary"].get("info"):
|
||||||
for rb in q.get("request_blocks"):
|
for rb in q.get("request_blocks"):
|
||||||
@ -80,11 +80,11 @@ class ScanBundler:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _scan_status_callback(msg, parent, **kwargs):
|
def _scan_status_callback(msg, parent, **kwargs):
|
||||||
msg = KMessage.ScanStatusMessage.loads(msg.value)
|
msg = BMessage.ScanStatusMessage.loads(msg.value)
|
||||||
if msg.content.get("status") != "open":
|
if msg.content.get("status") != "open":
|
||||||
parent._scan_status_modification(msg)
|
parent._scan_status_modification(msg)
|
||||||
|
|
||||||
def _scan_status_modification(self, msg: KMessage.ScanStatusMessage):
|
def _scan_status_modification(self, msg: BMessage.ScanStatusMessage):
|
||||||
if msg.content.get("status") == "closed":
|
if msg.content.get("status") == "closed":
|
||||||
scanID = msg.content.get("scanID")
|
scanID = msg.content.get("scanID")
|
||||||
if scanID:
|
if scanID:
|
||||||
@ -277,7 +277,7 @@ class ScanBundler:
|
|||||||
|
|
||||||
self.producer.send(
|
self.producer.send(
|
||||||
MessageEndpoints.scan_segment(),
|
MessageEndpoints.scan_segment(),
|
||||||
KMessage.ScanMessage(
|
BMessage.ScanMessage(
|
||||||
point_id=pointID,
|
point_id=pointID,
|
||||||
scanID=scanID,
|
scanID=scanID,
|
||||||
data=self.sync_storage[scanID][pointID],
|
data=self.sync_storage[scanID][pointID],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user