renamed KMessage to BMessage

This commit is contained in:
wakonig_k 2022-06-21 18:48:53 +02:00
parent 6a6c344f0e
commit b1f2332576
14 changed files with 117 additions and 117 deletions

View File

@ -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")

View File

@ -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"]

View File

@ -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

View File

@ -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
) )

View File

@ -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):

View File

@ -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"])

View File

@ -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):

View File

@ -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):

View File

@ -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):

View File

@ -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)},

View File

@ -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)},

View File

@ -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()

View File

@ -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

View File

@ -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],