From 3672e71a66885c5849d3a6c25ff35a5ea59b022f Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Mon, 1 Jul 2024 13:22:37 +0000 Subject: [PATCH 01/11] "fast scan" --- src/p99_bluesky/log.py | 18 + src/p99_bluesky/plans/fast_scan.py | 92 +++ tests/jupyter_tests/fast_scan_test.ipynb | 707 +++++++++++++++++++++++ 3 files changed, 817 insertions(+) create mode 100644 src/p99_bluesky/log.py create mode 100644 src/p99_bluesky/plans/fast_scan.py create mode 100644 tests/jupyter_tests/fast_scan_test.ipynb diff --git a/src/p99_bluesky/log.py b/src/p99_bluesky/log.py new file mode 100644 index 0000000..d9feb40 --- /dev/null +++ b/src/p99_bluesky/log.py @@ -0,0 +1,18 @@ +import logging +import sys + +from dodal.log import LOGGER as dodal_logger +from dodal.log import ( + DodalLogHandlers, +) + +LOGGER = logging.getLogger("P99") +LOGGER.setLevel("DEBUG") +LOGGER.parent = dodal_logger +__logger_handlers: DodalLogHandlers | None = None + +handler = logging.StreamHandler(sys.stdout) +handler.setLevel(logging.DEBUG) +formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") +handler.setFormatter(formatter) +LOGGER.addHandler(handler) diff --git a/src/p99_bluesky/plans/fast_scan.py b/src/p99_bluesky/plans/fast_scan.py new file mode 100644 index 0000000..ea9c74c --- /dev/null +++ b/src/p99_bluesky/plans/fast_scan.py @@ -0,0 +1,92 @@ +import bluesky.plan_stubs as bps +import bluesky.preprocessors as bpp +from bluesky.preprocessors import ( + finalize_wrapper, +) +from ophyd_async.epics.motion import Motor +from ophyd_async.protocols import AsyncReadable + +from p99_bluesky.log import LOGGER + + +def fast_scan( + dets: list[AsyncReadable], + motor: Motor, + start: float, + end: float, + motor_speed: float | None = None, +): + """ + Fast scan, where the motor moves to the starting point after which + the motor is set in motion to toward the end point, during this movement detector + are triggered and read out until the endpoint is reached or stopped. + Note: This is purely software triggering which result in variable accuracy. + However, fast scan does not require encoder and hardware setup and should + work for all motor. It is most frequently use for alignment and + slow motion measurements. + + Parameters + ---------- + detectors : list + list of 'readable' objects + motor : Motor (moveable, readable) objcts + + start: float + starting position. + end: float, + ending position + + motor_speed: Optional[float] = None, + The speed of the motor during scan + """ + + # read the current speed and store it + old_speed = yield from bps.rd(motor.velocity) + + @bpp.stage_decorator(dets) + @bpp.run_decorator() + def inner_fast_scan( + dets: list[AsyncReadable], + motor: Motor, + start: float, + end: float, + motor_speed: float | None = None, + ): + yield from check_within_limit([start, end], motor) + LOGGER.info(f"Moving {motor.name} to start position = {start}.") + yield from bps.mv(motor, start) # move to start + + if motor_speed: + LOGGER.info(f"Set {motor.name} speed = {motor_speed}.") + yield from bps.abs_set(motor.velocity, motor_speed) + LOGGER.info(f"Set {motor.name} to end position({end}) and begin scan.") + yield from bps.abs_set(motor.user_setpoint, end) + current_value = yield from bps.rd(motor.user_readback) + + while abs(end - current_value) > 1e-5: + yield from bps.trigger_and_read(dets + [motor]) + yield from bps.checkpoint() + current_value = yield from bps.rd(motor.user_readback) + + yield from finalize_wrapper( + plan=inner_fast_scan(dets, motor, start, end, motor_speed), + final_plan=cleanUp(old_speed, motor), + ) + + +def check_within_limit(values: list, motor: Motor): + LOGGER.info(f"Check {motor.name} limits.") + lower_limit = yield from bps.rd(motor.low_limit_travel) + high_limit = yield from bps.rd(motor.high_limit_travel) + for value in values: + if not lower_limit < value < high_limit: + raise ValueError( + f"{motor.name} move request of {value} is beyond limits:" + f"{lower_limit} < {high_limit}" + ) + + +def cleanUp(old_speed, motor: Motor): + LOGGER.info(f"Clean up: setting motor speed to {old_speed}.") + if old_speed: + yield from bps.abs_set(motor.velocity, old_speed) diff --git a/tests/jupyter_tests/fast_scan_test.ipynb b/tests/jupyter_tests/fast_scan_test.ipynb new file mode 100644 index 0000000..7ff61fe --- /dev/null +++ b/tests/jupyter_tests/fast_scan_test.ipynb @@ -0,0 +1,707 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "58fe3420-313d-447a-bb09-7f9b85703169", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326352763\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326359555\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Y.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326361700\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + "errlog: lost 6 messages\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326365954\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326368806\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326431527\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326433963\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Y.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326436850\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326439477\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326443688\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326446249\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326448720\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.326452215\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Z.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.340796274\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.340815381\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.341059954\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.341143057\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.341157037\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.341160866\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Z.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.341163540\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.341166135\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.341168791\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.341172338\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.341175960\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:15:02.341179212\n", + "..................................................................\n" + ] + } + ], + "source": [ + "import os \n", + "os.chdir(\"/workspaces/p99-bluesky/tests/\")\n", + "\n", + "import asyncio\n", + "import subprocess, os\n", + "from bluesky.run_engine import RunEngine\n", + "from ophyd_async.core import DeviceCollector\n", + "from ophyd_async.epics.signal import epics_signal_r, epics_signal_rw\n", + "from ophyd_async.core.signal import observe_value, wait_for_value\n", + "from p99_bluesky.devices.p99.sample_stage import (\n", + " FilterMotor,\n", + " SampleAngleStage,\n", + " p99StageSelections,\n", + ")\n", + "from p99_bluesky.plans.fast_scan import fast_scan\n", + "from soft_motor import SoftThreeAxisStage\n", + "from bluesky.run_engine import RunEngine\n", + "from bluesky.callbacks.best_effort import BestEffortCallback\n", + "from bluesky.plans import count, scan \n", + "from ophyd.sim import det\n", + "bec = BestEffortCallback()\n", + "RE = RunEngine({})\n", + "with DeviceCollector(mock=False):\n", + " mock_sampleAngleStage = SampleAngleStage(\n", + " \"p99-MO-TABLE-01:\", name=\"mock_sampleAngleStage\"\n", + " )\n", + " mock_filter_wheel = FilterMotor(\n", + " \"p99-MO-STAGE-02:MP:SELECT\", name=\"mock_filter_wheel\"\n", + " )\n", + " xyz_motor = SoftThreeAxisStage(\"p99-MO-STAGE-02:\", name=\"xyz_motor\")\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cd1f5035-7500-45b9-8c6c-827e932ddd0c", + "metadata": {}, + "outputs": [], + "source": [ + "RE(fast_scan([det,xyz_motor.x],xyz_motor.x,-8.88,-8,1),bec)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "35d1be9a-07d0-4b55-9b12-95cf4c9c0608", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-07-01 13:15:05,476 - P99 - INFO - Check xyz_motor-x limits.\n", + "2024-07-01 13:15:05,477 - P99 - INFO - Clean up: setting motor speed to 100.0.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Run aborted\n", + "Traceback (most recent call last):\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/run_engine.py\", line 1547, in _run\n", + " msg = self._plan_stack[-1].send(resp)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py\", line 71, in fast_scan\n", + " yield from finalize_wrapper(\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 535, in finalize_wrapper\n", + " ret = yield from plan\n", + " ^^^^^^^^^^^^^^^\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/utils/__init__.py\", line 1203, in dec_inner\n", + " return (yield from plan)\n", + " ^^^^^^^^^^^^^^^\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 985, in stage_wrapper\n", + " return (yield from finalize_wrapper(inner(), unstage_devices()))\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 535, in finalize_wrapper\n", + " ret = yield from plan\n", + " ^^^^^^^^^^^^^^^\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 983, in inner\n", + " return (yield from plan)\n", + " ^^^^^^^^^^^^^^^\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/utils/__init__.py\", line 1203, in dec_inner\n", + " return (yield from plan)\n", + " ^^^^^^^^^^^^^^^\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 351, in run_wrapper\n", + " yield from contingency_wrapper(plan,\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 606, in contingency_wrapper\n", + " ret = yield from plan\n", + " ^^^^^^^^^^^^^^^\n", + " File \"/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py\", line 55, in inner_fast_scan\n", + " yield from check_within_limit([start, end], motor)\n", + " File \"/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py\", line 83, in check_within_limit\n", + " raise ValueError(\n", + "ValueError: xyz_motor-x move request of 18880 is beyond limits:-100.0 < 100.0\n" + ] + }, + { + "ename": "ValueError", + "evalue": "xyz_motor-x move request of 18880 is beyond limits:-100.0 < 100.0", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mRE\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfast_scan\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[43mdet\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43mxyz_motor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m8.888\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m18880\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m5\u001b[39;49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:918\u001b[0m, in \u001b[0;36mRunEngine.__call__\u001b[0;34m(self, *args, **metadata_kw)\u001b[0m\n\u001b[1;32m 914\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_blocking_event\u001b[38;5;241m.\u001b[39mset()\n\u001b[1;32m 916\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_task_fut\u001b[38;5;241m.\u001b[39madd_done_callback(set_blocking_event)\n\u001b[0;32m--> 918\u001b[0m plan_return \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_resume_task\u001b[49m\u001b[43m(\u001b[49m\u001b[43minit_func\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_build_task\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 920\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_interrupted:\n\u001b[1;32m 921\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m RunEngineInterrupted(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpause_msg) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:1057\u001b[0m, in \u001b[0;36mRunEngine._resume_task\u001b[0;34m(self, init_func)\u001b[0m\n\u001b[1;32m 1053\u001b[0m \u001b[38;5;66;03m# if the main task exception is not None, re-raise\u001b[39;00m\n\u001b[1;32m 1054\u001b[0m \u001b[38;5;66;03m# it (unless it is a canceled error)\u001b[39;00m\n\u001b[1;32m 1055\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (exc \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1056\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(exc, _RunEnginePanic)):\n\u001b[0;32m-> 1057\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n\u001b[1;32m 1058\u001b[0m \u001b[38;5;66;03m# Only try to get a result if there wasn't an error,\u001b[39;00m\n\u001b[1;32m 1059\u001b[0m \u001b[38;5;66;03m# (other than a cancelled error)\u001b[39;00m\n\u001b[1;32m 1060\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m exc \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:1687\u001b[0m, in \u001b[0;36mRunEngine._run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1685\u001b[0m exit_reason \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mstr\u001b[39m(err)\n\u001b[1;32m 1686\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlog\u001b[38;5;241m.\u001b[39mexception(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRun aborted\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 1687\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m err\n\u001b[1;32m 1688\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 1689\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m exit_reason:\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:1547\u001b[0m, in \u001b[0;36mRunEngine._run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1544\u001b[0m \u001b[38;5;66;03m# The normal case of clean operation\u001b[39;00m\n\u001b[1;32m 1545\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1546\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1547\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_plan_stack[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39msend(resp)\n\u001b[1;32m 1548\u001b[0m \u001b[38;5;66;03m# We have exhausted the top generator\u001b[39;00m\n\u001b[1;32m 1549\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m:\n\u001b[1;32m 1550\u001b[0m \u001b[38;5;66;03m# pop the dead generator go back to the top\u001b[39;00m\n", + "File \u001b[0;32m/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py:75\u001b[0m, in \u001b[0;36mfast_scan\u001b[0;34m(dets, motor, start, end, motor_speed)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m bps\u001b[38;5;241m.\u001b[39mcheckpoint()\n\u001b[1;32m 73\u001b[0m current_value \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01myield from\u001b[39;00m bps\u001b[38;5;241m.\u001b[39mrd(motor\u001b[38;5;241m.\u001b[39muser_readback)\n\u001b[0;32m---> 75\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m finalize_wrapper(\n\u001b[1;32m 76\u001b[0m plan\u001b[38;5;241m=\u001b[39minner_fast_scan(dets, motor, start, end, motor_speed),\n\u001b[1;32m 77\u001b[0m final_plan\u001b[38;5;241m=\u001b[39mcleanUp(old_speed, motor),\n\u001b[1;32m 78\u001b[0m )\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:535\u001b[0m, in \u001b[0;36mfinalize_wrapper\u001b[0;34m(plan, final_plan, pause_for_debug)\u001b[0m\n\u001b[1;32m 533\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 534\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 535\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01myield from\u001b[39;00m plan\n\u001b[1;32m 536\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mGeneratorExit\u001b[39;00m:\n\u001b[1;32m 537\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/utils/__init__.py:1203\u001b[0m, in \u001b[0;36mmake_decorator..dec_outer..dec..dec_inner\u001b[0;34m(*inner_args, **inner_kwargs)\u001b[0m\n\u001b[1;32m 1201\u001b[0m plan \u001b[38;5;241m=\u001b[39m gen_func(\u001b[38;5;241m*\u001b[39minner_args, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39minner_kwargs)\n\u001b[1;32m 1202\u001b[0m plan \u001b[38;5;241m=\u001b[39m wrapper(plan, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1203\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28;01myield from\u001b[39;00m plan)\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:985\u001b[0m, in \u001b[0;36mstage_wrapper\u001b[0;34m(plan, devices)\u001b[0m\n\u001b[1;32m 982\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m stage_devices()\n\u001b[1;32m 983\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28;01myield from\u001b[39;00m plan)\n\u001b[0;32m--> 985\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28;01myield from\u001b[39;00m finalize_wrapper(inner(), unstage_devices()))\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:535\u001b[0m, in \u001b[0;36mfinalize_wrapper\u001b[0;34m(plan, final_plan, pause_for_debug)\u001b[0m\n\u001b[1;32m 533\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 534\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 535\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01myield from\u001b[39;00m plan\n\u001b[1;32m 536\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mGeneratorExit\u001b[39;00m:\n\u001b[1;32m 537\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:983\u001b[0m, in \u001b[0;36mstage_wrapper..inner\u001b[0;34m()\u001b[0m\n\u001b[1;32m 981\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minner\u001b[39m():\n\u001b[1;32m 982\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m stage_devices()\n\u001b[0;32m--> 983\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28;01myield from\u001b[39;00m plan)\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/utils/__init__.py:1203\u001b[0m, in \u001b[0;36mmake_decorator..dec_outer..dec..dec_inner\u001b[0;34m(*inner_args, **inner_kwargs)\u001b[0m\n\u001b[1;32m 1201\u001b[0m plan \u001b[38;5;241m=\u001b[39m gen_func(\u001b[38;5;241m*\u001b[39minner_args, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39minner_kwargs)\n\u001b[1;32m 1202\u001b[0m plan \u001b[38;5;241m=\u001b[39m wrapper(plan, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1203\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28;01myield from\u001b[39;00m plan)\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:351\u001b[0m, in \u001b[0;36mrun_wrapper\u001b[0;34m(plan, md)\u001b[0m\n\u001b[1;32m 348\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 349\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m close_run(exit_status\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mfail\u001b[39m\u001b[38;5;124m'\u001b[39m, reason\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e))\n\u001b[0;32m--> 351\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m contingency_wrapper(plan,\n\u001b[1;32m 352\u001b[0m except_plan\u001b[38;5;241m=\u001b[39mexcept_plan,\n\u001b[1;32m 353\u001b[0m else_plan\u001b[38;5;241m=\u001b[39mclose_run)\n\u001b[1;32m 354\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rs_uid\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:606\u001b[0m, in \u001b[0;36mcontingency_wrapper\u001b[0;34m(plan, except_plan, else_plan, final_plan, pause_for_debug, auto_raise)\u001b[0m\n\u001b[1;32m 604\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 605\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 606\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01myield from\u001b[39;00m plan\n\u001b[1;32m 607\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mGeneratorExit\u001b[39;00m:\n\u001b[1;32m 608\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n", + "File \u001b[0;32m/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py:59\u001b[0m, in \u001b[0;36mfast_scan..inner_fast_scan\u001b[0;34m(dets, motor, start, end, motor_speed)\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;129m@bpp\u001b[39m\u001b[38;5;241m.\u001b[39mstage_decorator(dets)\n\u001b[1;32m 51\u001b[0m \u001b[38;5;129m@bpp\u001b[39m\u001b[38;5;241m.\u001b[39mrun_decorator()\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minner_fast_scan\u001b[39m(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 57\u001b[0m motor_speed: Optional[\u001b[38;5;28mfloat\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 58\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m---> 59\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m check_within_limit([start, end], motor)\n\u001b[1;32m 60\u001b[0m LOGGER\u001b[38;5;241m.\u001b[39minfo(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMoving \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmotor\u001b[38;5;241m.\u001b[39mname\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m to start position = \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mstart\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 61\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m bps\u001b[38;5;241m.\u001b[39mmv(motor, start) \u001b[38;5;66;03m# move to start\u001b[39;00m\n", + "File \u001b[0;32m/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py:87\u001b[0m, in \u001b[0;36mcheck_within_limit\u001b[0;34m(values, motor)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m value \u001b[38;5;129;01min\u001b[39;00m values:\n\u001b[1;32m 86\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m lower_limit \u001b[38;5;241m<\u001b[39m value \u001b[38;5;241m<\u001b[39m high_limit:\n\u001b[0;32m---> 87\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 88\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmotor\u001b[38;5;241m.\u001b[39mname\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m move request of \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mvalue\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m is beyond limits: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mlower_limit\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m < \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mhigh_limit\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 89\u001b[0m )\n", + "\u001b[0;31mValueError\u001b[0m: xyz_motor-x move request of 18880 is beyond limits: -100.0 < 100.0" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "CA.Client.Exception...............................................\n", + " Warning: \"Virtual circuit disconnect\"\n", + " Context: \"host.containers.internal:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1237\n", + " Current Time: Mon Jul 01 2024 13:17:37.740482454\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224451190\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224458051\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224460273\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Y.EGU\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224462504\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YVELO\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224464777\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YRBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224467733\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YVAL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224470028\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YVMAX\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224474433\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YACCL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224476884\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Y.PREC\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224479246\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YRDBD\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224481592\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YDMOV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224483666\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YLLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224486277\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YHLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224488729\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YSTOP\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224491235\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Z.EGU\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224493595\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVELO\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224500068\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZRBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224502311\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVAL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224504426\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVMAX\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224506708\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZACCL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224509023\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Z.PREC\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224513507\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZRDBD\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224515792\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZDMOV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224518564\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZLLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224520938\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZHLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224523466\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZSTOP\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.224525804\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.229926165\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA:RBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.235513059\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.241286858\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL:RBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.247110121\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.252262050\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH:RBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.257440548\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.263062585\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:X.EGU\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.268277863\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVELO\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.273159284\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XRBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.278397365\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVAL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.283293647\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVMAX\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.288354409\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XACCL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.293465921\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:X.PREC\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.298364446\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XRDBD\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.303689863\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XDMOV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Mon Jul 01 2024 13:17:42.309068529\n", + "..................................................................\n" + ] + } + ], + "source": [ + "RE(fast_scan([det],xyz_motor.x,-8.888,18880,5\n", + " ))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6c280df5-7726-44a8-8cc1-28d13bc7be1e", + "metadata": {}, + "outputs": [], + "source": [ + "import bluesky.plan_patterns as bpp\n", + "import bluesky.plan_stubs as bps\n", + "from bluesky.simulators import check_limits\n", + "from ophyd_async.epics.motion import Motor\n", + "from ophyd_async.protocols import AsyncReadable\n", + "import asyncio\n", + "from typing import Optional\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "39faa52a-36c7-483d-afd7-1848b7ea645b", + "metadata": {}, + "outputs": [], + "source": [ + "def plan(motor):\n", + " y = yield from bps.read(motor.x)\n", + " print(y)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d303fd1d-b944-4ff9-a55b-22f6fb1c1aa0", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dad0c338-9440-4b6d-a196-cbf31f8210aa", + "metadata": {}, + "outputs": [], + "source": [ + "RE(bps.abs_set(xyz_motor.x.velocity,100))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b30f312c-83ab-4381-833e-7c3d2d8c7c2f", + "metadata": {}, + "outputs": [], + "source": [ + "def set_and_count(det,motor,end):\n", + " yield from bps.abs_set(xyz_motor.x,end) \n", + " current_value = yield from bps.rd(motor.user_readback)\n", + " while abs(end - current_value) > 1e-7:\n", + " yield from count(det+[motor], num=1)\n", + " current_value = yield from bps.rd(motor.user_readback)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b4f28923-739f-426d-9aea-3dc6b137a06e", + "metadata": {}, + "outputs": [], + "source": [ + "from ophyd.sim import det, det1, motor1\n", + "from bluesky.plans import count\n", + "from bluesky.preprocessors import monitor_during_wrapper\n", + "\n", + "# Record any updates from det1 while 'counting' det 5 times.\n", + "RE(set_and_count([det],xyz_motor.x,7),bec)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3ba8b1c6-4799-4ae0-b234-1dbb6ed92529", + "metadata": {}, + "outputs": [], + "source": [ + "a = [1,2,3,4]\n", + "b = 5" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b4571fbd-b939-4515-83b9-79ccba65856a", + "metadata": {}, + "outputs": [], + "source": [ + "c = a,b" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5c6d700c-4ffb-4956-bc15-ce26b33e3e5c", + "metadata": {}, + "outputs": [], + "source": [ + "c" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "79058ee5-65ec-488c-abaf-e32325a52614", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 8688a26ca8ac9c3be3b5cac85a8a059b359e5dfe Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Wed, 3 Jul 2024 16:24:16 +0000 Subject: [PATCH 02/11] added gird scan and draft stxm --- src/p99_bluesky/plans/fast_scan.py | 172 +++- src/p99_bluesky/plans/stxm.py | 104 +++ tests/epics/soft_ioc/softsignal.py | 2 +- tests/jupyter_tests/fast_scan_test.ipynb | 1021 +++++++++++++++++----- tests/test_fast_scan.py | 0 tests/test_p99_stages_softioc.py | 43 +- 6 files changed, 1104 insertions(+), 238 deletions(-) create mode 100644 src/p99_bluesky/plans/stxm.py create mode 100644 tests/test_fast_scan.py diff --git a/src/p99_bluesky/plans/fast_scan.py b/src/p99_bluesky/plans/fast_scan.py index ea9c74c..a10da27 100644 --- a/src/p99_bluesky/plans/fast_scan.py +++ b/src/p99_bluesky/plans/fast_scan.py @@ -9,7 +9,7 @@ from p99_bluesky.log import LOGGER -def fast_scan( +def fast_scan_1d( dets: list[AsyncReadable], motor: Motor, start: float, @@ -17,9 +17,144 @@ def fast_scan( motor_speed: float | None = None, ): """ - Fast scan, where the motor moves to the starting point after which - the motor is set in motion to toward the end point, during this movement detector - are triggered and read out until the endpoint is reached or stopped. + One axis fast scan + + Parameters + ---------- + detectors : list + list of 'readable' objects + motor : Motor (moveable, readable) + + start: float + starting position. + end: float, + ending position + + motor_speed: Optional[float] = None, + The speed of the motor during scan + """ + + @bpp.stage_decorator(dets) + @bpp.run_decorator() + def inner_fast_scan_1d( + dets: list[AsyncReadable], + motor: Motor, + start: float, + end: float, + motor_speed: float | None = None, + ): + yield from check_within_limit([start, end], motor) + yield from _fast_scan_1d(dets, motor, start, end, motor_speed) + + yield from finalize_wrapper( + plan=inner_fast_scan_1d(dets, motor, start, end, motor_speed), + final_plan=clean_up(), + ) + + +def fast_scan_grid( + dets: list[AsyncReadable], + step_motor: Motor, + step_start: float, + step_end: float, + step_size: float, + scan_motor: Motor, + scan_start: float, + scan_end: float, + motor_speed: float | None = None, + snake_axes: bool = False, +): + """ + Same as fast_scan_1d with an extra axis to step through to from a grid + + Parameters + ---------- + detectors : list + list of 'readable' objects + step_motor : Motor (moveable, readable) + scan_motor: Motor (moveable, readable) + start: float + starting position. + end: float, + ending position + + motor_speed: Optional[float] = None, + The speed of the motor during scan + """ + + @bpp.stage_decorator(dets) + @bpp.run_decorator() + def inner_fast_scan_grid( + dets: list[AsyncReadable], + step_motor: Motor, + step_start: float, + step_end: float, + step_number: float, + scan_motor: Motor, + scan_start: float, + scan_end: float, + motor_speed: float | None = None, + snake_axes: bool = False, + ): + yield from check_within_limit([step_start, step_end], step_motor) + yield from check_within_limit([scan_start, scan_end], scan_motor) + step_size = (step_end - step_start) / step_number + step_counter = 1 + if snake_axes: + while step_number >= step_counter: + yield from bps.mv(step_motor, step_start + step_size * step_counter) + yield from _fast_scan_1d( + dets + [step_motor], scan_motor, scan_start, scan_end, motor_speed + ) + step_counter += 1 + yield from bps.mv(step_motor, step_start + step_size * step_counter) + yield from _fast_scan_1d( + dets + [step_motor], scan_motor, scan_end, scan_start, motor_speed + ) + step_counter += 1 + else: + while step_number >= step_counter: + yield from bps.mv(step_motor, step_start + step_size * step_counter) + yield from _fast_scan_1d( + dets + [step_motor], scan_motor, scan_start, scan_end, motor_speed + ) + step_counter += 1 + + yield from finalize_wrapper( + plan=inner_fast_scan_grid( + dets, + step_motor, + step_start, + step_end, + step_size, + scan_motor, + scan_start, + scan_end, + motor_speed, + snake_axes, + ), + final_plan=clean_up(), + ) + + +def _fast_scan_1d( + dets: list[AsyncReadable], + motor: Motor, + start: float, + end: float, + motor_speed: float | None = None, +): + """ + The logic for one axis fast scan, see fast_scan_1d and fast_scan_grid + + In this scan: + 1) The motor moves to the starting point. + 2) The motor speed is changed + 3) The motor is set in motion toward the end point + 4) During this movement detectors are triggered and read out until + the endpoint is reached or stopped. + 5) Clean up, reset motor speed. + Note: This is purely software triggering which result in variable accuracy. However, fast scan does not require encoder and hardware setup and should work for all motor. It is most frequently use for alignment and @@ -29,7 +164,7 @@ def fast_scan( ---------- detectors : list list of 'readable' objects - motor : Motor (moveable, readable) objcts + motor : Motor (moveable, readable) start: float starting position. @@ -43,34 +178,33 @@ def fast_scan( # read the current speed and store it old_speed = yield from bps.rd(motor.velocity) - @bpp.stage_decorator(dets) - @bpp.run_decorator() - def inner_fast_scan( + def inner_fast_scan_1d( dets: list[AsyncReadable], motor: Motor, start: float, end: float, motor_speed: float | None = None, ): - yield from check_within_limit([start, end], motor) LOGGER.info(f"Moving {motor.name} to start position = {start}.") yield from bps.mv(motor, start) # move to start if motor_speed: LOGGER.info(f"Set {motor.name} speed = {motor_speed}.") yield from bps.abs_set(motor.velocity, motor_speed) + LOGGER.info(f"Set {motor.name} to end position({end}) and begin scan.") yield from bps.abs_set(motor.user_setpoint, end) - current_value = yield from bps.rd(motor.user_readback) + # yield from bps.wait_for(motor.motor_done_move, False) + done = False - while abs(end - current_value) > 1e-5: + while not done: yield from bps.trigger_and_read(dets + [motor]) - yield from bps.checkpoint() - current_value = yield from bps.rd(motor.user_readback) + done = yield from bps.rd(motor.motor_done_move) + yield from bps.checkpoint() yield from finalize_wrapper( - plan=inner_fast_scan(dets, motor, start, end, motor_speed), - final_plan=cleanUp(old_speed, motor), + plan=inner_fast_scan_1d(dets, motor, start, end, motor_speed), + final_plan=reset_speed(old_speed, motor), ) @@ -86,7 +220,13 @@ def check_within_limit(values: list, motor: Motor): ) -def cleanUp(old_speed, motor: Motor): +def reset_speed(old_speed, motor: Motor): LOGGER.info(f"Clean up: setting motor speed to {old_speed}.") if old_speed: yield from bps.abs_set(motor.velocity, old_speed) + + +def clean_up(): + LOGGER.info("Clean up") + # possibly use to move back to starting position. + yield from bps.null() diff --git a/src/p99_bluesky/plans/stxm.py b/src/p99_bluesky/plans/stxm.py new file mode 100644 index 0000000..127fa1b --- /dev/null +++ b/src/p99_bluesky/plans/stxm.py @@ -0,0 +1,104 @@ +from collections.abc import Iterator +from typing import Any + +import bluesky.plan_stubs as bps +from ophyd_async.epics.motion import Motor + +from p99_bluesky.devices.andor2Ad import Andor2Ad, Andor3Ad +from p99_bluesky.log import LOGGER +from p99_bluesky.plans.fast_scan import fast_scan_grid + +""" +set parameter for fast_scan_grid + +from detector count time calculate roughly how many data point can be done +if no step size for slow axis + assuming even distribution of points between two axis and work out the + step for step motor +from the fast scan speed calculate the motor speed needed to achieve those + point density. +if it is below the min speed, use min speed and place a warning: + recalculate the step size to fit within time flame and use min speed + warning +if it is above the max speed, use max + increase step size so it finishes on time. + warning that it will finish early + + +""" + + +def stxm_fast( + det: Andor2Ad | Andor3Ad, + count_time: float, + step_motor: Motor, + step_start: float, + step_end: float, + scan_motor: Motor, + scan_start: float, + scan_end: float, + plan_time: float, + # step_size: float, +): + num_data_point = plan_time / count_time + scan_range = abs(scan_start - scan_end) + step_range = abs(step_start - step_end) + ideal_step_size = 1.0 / ((num_data_point / (scan_range * step_range)) ** 0.5) + ideal_velocity = ideal_step_size / count_time + LOGGER.info(f"{ideal_step_size} velocity = {ideal_velocity}.") + velocity, step_size = yield from get_velocity_and_step_size( + scan_motor, ideal_velocity, ideal_step_size + ) + LOGGER.info(f"{scan_motor.name} velocity = {velocity}.") + LOGGER.info(f"{step_motor.name} step size = {step_size}.") + # yield from bps.abs_set(det.drv.acquire_time, count_time) + import math + + num_of_step = math.ceil(step_range / step_size) + yield from fast_scan_grid( + [det], + step_motor, + step_start, + step_end, + num_of_step, + scan_motor, + scan_start, + scan_end, + velocity, + snake_axes=True, + ) + + +def get_velocity_and_step_size( + scan_motor: Motor, ideal_velocity: float, ideal_step_size +) -> Iterator[Any]: + max_velocity = yield from bps.rd(scan_motor.max_velocity) + min_velocity = 0.01 # yield from bps.rd(scan_motor.min_velocity) + # if motor does not move fast enough increase step_motor step size + if ideal_velocity > max_velocity: + step_size = int(ideal_velocity / max_velocity * ideal_step_size) + ideal_velocity = max_velocity + # if motor does not move slow enough decrease step_motor step size + # min_velocity not in motor atm need to add it + elif ideal_velocity < min_velocity: + step_size = int(ideal_velocity / min_velocity * ideal_step_size) + ideal_velocity = min_velocity + else: + step_size = ideal_step_size + return ideal_velocity, step_size + + +# from ophyd.sim import det + +# fast_scan_grid( +# dets: list[AsyncReadable], +# step_motor: Motor, +# step_start: float, +# step_end: float, +# step_size: float, +# scan_motor: Motor, +# scan_start: float, +# scan_end: float, +# motor_speed: float | None = None, +# snake_axes: bool = False, +# ): diff --git a/tests/epics/soft_ioc/softsignal.py b/tests/epics/soft_ioc/softsignal.py index 1a591d4..72ff47a 100644 --- a/tests/epics/soft_ioc/softsignal.py +++ b/tests/epics/soft_ioc/softsignal.py @@ -68,7 +68,7 @@ async def soft_motor(prefix: str, name: str, unit: str = "mm"): builder.aOut( name + "VMAX", - initial_value=2, + initial_value=200, ) builder.aOut( name + "ACCL", diff --git a/tests/jupyter_tests/fast_scan_test.ipynb b/tests/jupyter_tests/fast_scan_test.ipynb index 7ff61fe..9132d45 100644 --- a/tests/jupyter_tests/fast_scan_test.ipynb +++ b/tests/jupyter_tests/fast_scan_test.ipynb @@ -12,156 +12,165 @@ "text": [ "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326352763\n", + " Current Time: Wed Jul 03 2024 14:47:38.918048858\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326359555\n", + " Current Time: Wed Jul 03 2024 14:47:38.918055680\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:Y.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326361700\n", + " Current Time: Wed Jul 03 2024 14:47:38.918058379\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - "errlog: lost 6 messages\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 14:47:38.918061292\n", + "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:YRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326365954\n", + " Current Time: Wed Jul 03 2024 14:47:38.918065018\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:YVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326368806\n", + " Current Time: Wed Jul 03 2024 14:47:38.918067491\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:YVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326431527\n", + " Current Time: Wed Jul 03 2024 14:47:38.918122516\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:YACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326433963\n", + " Current Time: Wed Jul 03 2024 14:47:38.918125285\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:Y.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326436850\n", + " Current Time: Wed Jul 03 2024 14:47:38.918128012\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:YRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326439477\n", + " Current Time: Wed Jul 03 2024 14:47:38.918130556\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:YDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326443688\n", + " Current Time: Wed Jul 03 2024 14:47:38.918135786\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:YLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326446249\n", + " Current Time: Wed Jul 03 2024 14:47:38.918140418\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:YHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326448720\n", + " Current Time: Wed Jul 03 2024 14:47:38.918144062\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:YSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.326452215\n", + " Current Time: Wed Jul 03 2024 14:47:38.918146975\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:Z.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.340796274\n", + " Current Time: Wed Jul 03 2024 14:47:38.918152074\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.340815381\n", + " Current Time: Wed Jul 03 2024 14:47:38.918155949\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.341059954\n", + " Current Time: Wed Jul 03 2024 14:47:38.918159736\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:ZVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.341143057\n", + " Current Time: Wed Jul 03 2024 14:47:38.918163397\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:ZVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.341157037\n", + " Current Time: Wed Jul 03 2024 14:47:38.918168149\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:ZACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.341160866\n", + " Current Time: Wed Jul 03 2024 14:47:38.918172844\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:Z.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.341163540\n", + " Current Time: Wed Jul 03 2024 14:47:38.918177477\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:ZRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.341166135\n", + " Current Time: Wed Jul 03 2024 14:47:38.918180550\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:ZDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.341168791\n", + " Current Time: Wed Jul 03 2024 14:47:38.918185273\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:ZLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.341172338\n", + " Current Time: Wed Jul 03 2024 14:47:38.918191358\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:ZHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.341175960\n", + " Current Time: Wed Jul 03 2024 14:47:38.933693802\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 14:47:38.933702572\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", " Context: \"Channel: \"p99-MO-STAGE-02:ZSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:15:02.341179212\n", + " Current Time: Wed Jul 03 2024 14:47:38.933897765\n", "..................................................................\n" ] } @@ -181,14 +190,18 @@ " SampleAngleStage,\n", " p99StageSelections,\n", ")\n", - "from p99_bluesky.plans.fast_scan import fast_scan\n", + "from p99_bluesky.plans.fast_scan import fast_scan_1d, fast_scan_grid\n", + "from p99_bluesky.plans.stxm import stxm_fast,get_velocity_and_step_size\n", "from soft_motor import SoftThreeAxisStage\n", "from bluesky.run_engine import RunEngine\n", "from bluesky.callbacks.best_effort import BestEffortCallback\n", "from bluesky.plans import count, scan \n", - "from ophyd.sim import det\n", + "from ophyd.sim import noisy_det as det\n", "bec = BestEffortCallback()\n", "RE = RunEngine({})\n", + "from databroker import Broker\n", + "db = Broker.named('temp')\n", + "RE.subscribe(db.insert)\n", "with DeviceCollector(mock=False):\n", " mock_sampleAngleStage = SampleAngleStage(\n", " \"p99-MO-TABLE-01:\", name=\"mock_sampleAngleStage\"\n", @@ -196,100 +209,274 @@ " mock_filter_wheel = FilterMotor(\n", " \"p99-MO-STAGE-02:MP:SELECT\", name=\"mock_filter_wheel\"\n", " )\n", - " xyz_motor = SoftThreeAxisStage(\"p99-MO-STAGE-02:\", name=\"xyz_motor\")\n", - " " + " xyz_motor = SoftThreeAxisStage(\"p99-MO-STAGE-02:\", name=\"xyz_motor\")" ] }, { "cell_type": "code", - "execution_count": null, - "id": "cd1f5035-7500-45b9-8c6c-827e932ddd0c", - "metadata": {}, - "outputs": [], - "source": [ - "RE(fast_scan([det,xyz_motor.x],xyz_motor.x,-8.88,-8,1),bec)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "35d1be9a-07d0-4b55-9b12-95cf4c9c0608", + "execution_count": 19, + "id": "d437b274-146d-4c05-a118-e3e1dbb9a904", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "2024-07-01 13:15:05,476 - P99 - INFO - Check xyz_motor-x limits.\n", - "2024-07-01 13:15:05,477 - P99 - INFO - Clean up: setting motor speed to 100.0.\n" + "2024-07-03 15:38:34,668 - P99 - INFO - 0.44000000000000006 velocity = 0.8800000000000001.\n", + "2024-07-03 15:38:34,668 - P99 - INFO - xyz_motor-x velocity = 0.8800000000000001.\n", + "2024-07-03 15:38:34,669 - P99 - INFO - xyz_motor-y step size = 0.44000000000000006.\n", + "\n", + "\n", + "Transient Scan ID: 2 Time: 2024-07-03 15:38:34\n", + "Persistent Unique Scan ID: '33be3a82-e337-4c8a-b377-41bf4ca9187c'\n", + "2024-07-03 15:38:34,671 - P99 - INFO - Check xyz_motor-y limits.\n", + "2024-07-03 15:38:34,672 - P99 - INFO - Check xyz_motor-x limits.\n", + "2024-07-03 15:38:36,209 - P99 - INFO - Moving xyz_motor-x to start position = -2.2.\n", + "2024-07-03 15:38:36,219 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", + "2024-07-03 15:38:36,220 - P99 - INFO - Set xyz_motor-x to end position(2.2) and begin scan.\n", + "New stream: 'primary'\n", + "+-----------+------------+------------+-------------+-------------+\n", + "| seq_num | time | noisy_det | xyz_motor-y | xyz_motor-x |\n", + "+-----------+------------+------------+-------------+-------------+\n", + "| 1 | 15:38:36.2 | 0.981 | -2 | -2 |\n", + "| 2 | 15:38:36.4 | 1.015 | -2 | -2 |\n", + "| 3 | 15:38:36.6 | 0.934 | -2 | -1 |\n", + "| 4 | 15:38:36.8 | 0.901 | -2 | -1 |\n", + "| 5 | 15:38:37.0 | 0.986 | -2 | -1 |\n", + "| 6 | 15:38:37.2 | 0.986 | -2 | -0 |\n", + "| 7 | 15:38:37.3 | 0.991 | -2 | -0 |\n", + "| 8 | 15:38:37.5 | 0.965 | -2 | 0 |\n", + "| 9 | 15:38:37.7 | 1.005 | -2 | 1 |\n", + "| 10 | 15:38:37.9 | 1.054 | -2 | 1 |\n", + "| 11 | 15:38:38.1 | 0.996 | -2 | 1 |\n", + "| 12 | 15:38:38.3 | 1.055 | -2 | 2 |\n", + "| 13 | 15:38:38.5 | 1.008 | -2 | 2 |\n", + "2024-07-03 15:38:38,766 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", + "2024-07-03 15:38:38,910 - P99 - INFO - Moving xyz_motor-x to start position = 2.2.\n", + "2024-07-03 15:38:38,919 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", + "2024-07-03 15:38:38,920 - P99 - INFO - Set xyz_motor-x to end position(-2.2) and begin scan.\n", + "| 14 | 15:38:38.9 | 0.966 | -1 | 2 |\n", + "| 15 | 15:38:39.1 | 0.962 | -1 | 2 |\n", + "| 16 | 15:38:39.3 | 0.974 | -1 | 2 |\n", + "| 17 | 15:38:39.5 | 1.042 | -1 | 1 |\n", + "| 18 | 15:38:39.6 | 0.978 | -1 | 1 |\n", + "| 19 | 15:38:39.8 | 0.992 | -1 | 1 |\n", + "| 20 | 15:38:40.0 | 1.026 | -1 | 0 |\n", + "| 21 | 15:38:40.2 | 0.979 | -1 | -0 |\n", + "| 22 | 15:38:40.4 | 1.091 | -1 | -0 |\n", + "| 23 | 15:38:40.6 | 0.915 | -1 | -1 |\n", + "| 24 | 15:38:40.8 | 1.097 | -1 | -1 |\n", + "| 25 | 15:38:41.0 | 1.014 | -1 | -1 |\n", + "| 26 | 15:38:41.1 | 0.993 | -1 | -2 |\n", + "| 27 | 15:38:41.3 | 0.916 | -1 | -2 |\n", + "2024-07-03 15:38:41,546 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", + "2024-07-03 15:38:41,685 - P99 - INFO - Moving xyz_motor-x to start position = -2.2.\n", + "2024-07-03 15:38:41,694 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", + "2024-07-03 15:38:41,695 - P99 - INFO - Set xyz_motor-x to end position(2.2) and begin scan.\n", + "| 28 | 15:38:41.6 | 1.048 | -1 | -2 |\n", + "| 29 | 15:38:41.8 | 0.929 | -1 | -2 |\n", + "| 30 | 15:38:42.0 | 0.950 | -1 | -2 |\n", + "| 31 | 15:38:42.2 | 0.967 | -1 | -1 |\n", + "| 32 | 15:38:42.4 | 1.042 | -1 | -1 |\n", + "| 33 | 15:38:42.6 | 0.967 | -1 | -1 |\n", + "| 34 | 15:38:42.8 | 1.051 | -1 | -0 |\n", + "| 35 | 15:38:42.9 | 1.073 | -1 | 0 |\n", + "| 36 | 15:38:43.1 | 1.001 | -1 | 0 |\n", + "| 37 | 15:38:43.3 | 0.987 | -1 | 1 |\n", + "| 38 | 15:38:43.5 | 1.094 | -1 | 1 |\n", + "| 39 | 15:38:43.7 | 1.057 | -1 | 1 |\n", + "| 40 | 15:38:43.9 | 0.920 | -1 | 2 |\n", + "| 41 | 15:38:44.1 | 0.995 | -1 | 2 |\n", + "2024-07-03 15:38:44,304 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", + "2024-07-03 15:38:44,443 - P99 - INFO - Moving xyz_motor-x to start position = 2.2.\n", + "2024-07-03 15:38:44,453 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", + "2024-07-03 15:38:44,454 - P99 - INFO - Set xyz_motor-x to end position(-2.2) and begin scan.\n", + "| 42 | 15:38:44.4 | 1.036 | -0 | 2 |\n", + "| 43 | 15:38:44.6 | 0.979 | -0 | 2 |\n", + "| 44 | 15:38:44.8 | 1.085 | -0 | 2 |\n", + "| 45 | 15:38:45.0 | 0.906 | -0 | 1 |\n", + "| 46 | 15:38:45.1 | 1.064 | -0 | 1 |\n", + "| 47 | 15:38:45.3 | 1.053 | -0 | 1 |\n", + "| 48 | 15:38:45.5 | 0.957 | -0 | 0 |\n", + "| 49 | 15:38:45.7 | 0.946 | -0 | -0 |\n", + "+-----------+------------+------------+-------------+-------------+\n", + "| seq_num | time | noisy_det | xyz_motor-y | xyz_motor-x |\n", + "+-----------+------------+------------+-------------+-------------+\n", + "| 50 | 15:38:45.9 | 0.946 | -0 | -0 |\n", + "| 51 | 15:38:46.1 | 0.927 | -0 | -1 |\n", + "| 52 | 15:38:46.2 | 1.060 | -0 | -1 |\n", + "| 53 | 15:38:46.4 | 0.918 | -0 | -1 |\n", + "| 54 | 15:38:46.6 | 1.064 | -0 | -2 |\n", + "| 55 | 15:38:46.8 | 0.918 | -0 | -2 |\n", + "2024-07-03 15:38:47,035 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", + "2024-07-03 15:38:47,175 - P99 - INFO - Moving xyz_motor-x to start position = -2.2.\n", + "2024-07-03 15:38:47,185 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", + "2024-07-03 15:38:47,186 - P99 - INFO - Set xyz_motor-x to end position(2.2) and begin scan.\n", + "| 56 | 15:38:47.1 | 0.919 | 0 | -2 |\n", + "| 57 | 15:38:47.3 | 1.091 | 0 | -2 |\n", + "| 58 | 15:38:47.5 | 1.095 | 0 | -2 |\n", + "| 59 | 15:38:47.7 | 1.076 | 0 | -1 |\n", + "| 60 | 15:38:47.9 | 0.910 | 0 | -1 |\n", + "| 61 | 15:38:48.1 | 0.906 | 0 | -1 |\n", + "| 62 | 15:38:48.3 | 0.918 | 0 | -0 |\n", + "| 63 | 15:38:48.5 | 0.947 | 0 | 0 |\n", + "| 64 | 15:38:48.7 | 0.943 | 0 | 0 |\n", + "| 65 | 15:38:48.8 | 0.920 | 0 | 1 |\n", + "| 66 | 15:38:49.0 | 0.970 | 0 | 1 |\n", + "| 67 | 15:38:49.2 | 1.079 | 0 | 1 |\n", + "| 68 | 15:38:49.4 | 1.056 | 0 | 2 |\n", + "| 69 | 15:38:49.6 | 1.042 | 0 | 2 |\n", + "2024-07-03 15:38:49,840 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", + "2024-07-03 15:38:49,983 - P99 - INFO - Moving xyz_motor-x to start position = 2.2.\n", + "2024-07-03 15:38:49,992 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", + "2024-07-03 15:38:49,993 - P99 - INFO - Set xyz_motor-x to end position(-2.2) and begin scan.\n", + "| 70 | 15:38:49.9 | 0.985 | 0 | 2 |\n", + "| 71 | 15:38:50.1 | 1.018 | 0 | 2 |\n", + "| 72 | 15:38:50.3 | 1.003 | 0 | 2 |\n", + "| 73 | 15:38:50.5 | 0.944 | 0 | 1 |\n", + "| 74 | 15:38:50.7 | 0.980 | 0 | 1 |\n", + "| 75 | 15:38:50.9 | 0.904 | 0 | 1 |\n", + "| 76 | 15:38:51.1 | 0.976 | 0 | 0 |\n", + "| 77 | 15:38:51.3 | 0.970 | 0 | -0 |\n", + "| 78 | 15:38:51.5 | 0.962 | 0 | -0 |\n", + "| 79 | 15:38:51.7 | 0.964 | 0 | -1 |\n", + "| 80 | 15:38:51.8 | 1.019 | 0 | -1 |\n", + "| 81 | 15:38:52.0 | 0.950 | 0 | -1 |\n", + "| 82 | 15:38:52.2 | 1.082 | 0 | -2 |\n", + "| 83 | 15:38:52.4 | 1.031 | 0 | -2 |\n", + "2024-07-03 15:38:52,637 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", + "2024-07-03 15:38:52,771 - P99 - INFO - Moving xyz_motor-x to start position = -2.2.\n", + "2024-07-03 15:38:52,780 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", + "2024-07-03 15:38:52,781 - P99 - INFO - Set xyz_motor-x to end position(2.2) and begin scan.\n", + "| 84 | 15:38:52.7 | 0.978 | 1 | -2 |\n", + "| 85 | 15:38:52.9 | 1.100 | 1 | -2 |\n", + "| 86 | 15:38:53.1 | 1.015 | 1 | -2 |\n", + "| 87 | 15:38:53.3 | 0.999 | 1 | -1 |\n", + "| 88 | 15:38:53.5 | 1.058 | 1 | -1 |\n", + "| 89 | 15:38:53.7 | 0.984 | 1 | -0 |\n", + "| 90 | 15:38:53.9 | 1.088 | 1 | -0 |\n", + "| 91 | 15:38:54.1 | 0.911 | 1 | 0 |\n", + "| 92 | 15:38:54.3 | 0.970 | 1 | 1 |\n", + "| 93 | 15:38:54.5 | 1.040 | 1 | 1 |\n", + "| 94 | 15:38:54.7 | 1.017 | 1 | 1 |\n", + "| 95 | 15:38:54.9 | 0.941 | 1 | 2 |\n", + "| 96 | 15:38:55.1 | 1.082 | 1 | 2 |\n", + "2024-07-03 15:38:55,343 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", + "2024-07-03 15:38:55,481 - P99 - INFO - Moving xyz_motor-x to start position = 2.2.\n", + "2024-07-03 15:38:55,491 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", + "2024-07-03 15:38:55,491 - P99 - INFO - Set xyz_motor-x to end position(-2.2) and begin scan.\n", + "| 97 | 15:38:55.4 | 0.915 | 1 | 2 |\n", + "| 98 | 15:38:55.6 | 1.032 | 1 | 2 |\n", + "| 99 | 15:38:55.8 | 0.970 | 1 | 2 |\n", + "+-----------+------------+------------+-------------+-------------+\n", + "| seq_num | time | noisy_det | xyz_motor-y | xyz_motor-x |\n", + "+-----------+------------+------------+-------------+-------------+\n", + "| 100 | 15:38:56.0 | 1.086 | 1 | 1 |\n", + "| 101 | 15:38:56.2 | 1.079 | 1 | 1 |\n", + "| 102 | 15:38:56.4 | 0.904 | 1 | 1 |\n", + "| 103 | 15:38:56.6 | 0.947 | 1 | 0 |\n", + "| 104 | 15:38:56.8 | 1.045 | 1 | -0 |\n", + "| 105 | 15:38:57.0 | 1.043 | 1 | -0 |\n", + "| 106 | 15:38:57.1 | 1.050 | 1 | -1 |\n", + "| 107 | 15:38:57.3 | 1.024 | 1 | -1 |\n", + "| 108 | 15:38:57.5 | 1.036 | 1 | -1 |\n", + "| 109 | 15:38:57.7 | 1.054 | 1 | -2 |\n", + "| 110 | 15:38:57.9 | 0.903 | 1 | -2 |\n", + "2024-07-03 15:38:58,133 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", + "2024-07-03 15:38:58,276 - P99 - INFO - Moving xyz_motor-x to start position = -2.2.\n", + "2024-07-03 15:38:58,286 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", + "2024-07-03 15:38:58,286 - P99 - INFO - Set xyz_motor-x to end position(2.2) and begin scan.\n", + "| 111 | 15:38:58.2 | 0.958 | 2 | -2 |\n", + "| 112 | 15:38:58.4 | 1.036 | 2 | -2 |\n", + "| 113 | 15:38:58.6 | 0.916 | 2 | -2 |\n", + "| 114 | 15:38:58.8 | 1.082 | 2 | -1 |\n", + "| 115 | 15:38:59.0 | 0.939 | 2 | -1 |\n", + "| 116 | 15:38:59.2 | 1.097 | 2 | -1 |\n", + "| 117 | 15:38:59.4 | 1.028 | 2 | -0 |\n", + "| 118 | 15:38:59.6 | 1.063 | 2 | 0 |\n", + "| 119 | 15:38:59.8 | 1.002 | 2 | 0 |\n", + "| 120 | 15:39:00.0 | 1.023 | 2 | 1 |\n", + "| 121 | 15:39:00.2 | 0.963 | 2 | 1 |\n", + "| 122 | 15:39:00.4 | 0.965 | 2 | 1 |\n", + "| 123 | 15:39:00.6 | 0.975 | 2 | 2 |\n", + "| 124 | 15:39:00.8 | 1.033 | 2 | 2 |\n", + "2024-07-03 15:39:01,004 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", + "2024-07-03 15:39:01,147 - P99 - INFO - Moving xyz_motor-x to start position = 2.2.\n", + "2024-07-03 15:39:01,157 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", + "2024-07-03 15:39:01,158 - P99 - INFO - Set xyz_motor-x to end position(-2.2) and begin scan.\n", + "| 125 | 15:39:01.1 | 1.057 | 2 | 2 |\n", + "| 126 | 15:39:01.3 | 1.055 | 2 | 2 |\n", + "| 127 | 15:39:01.5 | 0.949 | 2 | 2 |\n", + "| 128 | 15:39:01.7 | 1.067 | 2 | 1 |\n", + "| 129 | 15:39:01.9 | 1.036 | 2 | 1 |\n", + "| 130 | 15:39:02.1 | 1.009 | 2 | 1 |\n", + "| 131 | 15:39:02.2 | 1.026 | 2 | 0 |\n", + "| 132 | 15:39:02.4 | 1.040 | 2 | -0 |\n", + "| 133 | 15:39:02.6 | 1.065 | 2 | -0 |\n", + "| 134 | 15:39:02.8 | 1.028 | 2 | -1 |\n", + "| 135 | 15:39:03.0 | 0.996 | 2 | -1 |\n", + "| 136 | 15:39:03.2 | 0.915 | 2 | -1 |\n", + "| 137 | 15:39:03.4 | 0.917 | 2 | -2 |\n", + "| 138 | 15:39:03.6 | 0.907 | 2 | -2 |\n", + "2024-07-03 15:39:03,830 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", + "+-----------+------------+------------+-------------+-------------+\n", + "generator stxm_fast ['33be3a82'] (scan num: 2)\n", + "\n", + "\n", + "\n", + "2024-07-03 15:39:04,124 - P99 - INFO - Clean up\n" ] }, { - "name": "stderr", - "output_type": "stream", - "text": [ - "Run aborted\n", - "Traceback (most recent call last):\n", - " File \"/venv/lib/python3.11/site-packages/bluesky/run_engine.py\", line 1547, in _run\n", - " msg = self._plan_stack[-1].send(resp)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py\", line 71, in fast_scan\n", - " yield from finalize_wrapper(\n", - " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 535, in finalize_wrapper\n", - " ret = yield from plan\n", - " ^^^^^^^^^^^^^^^\n", - " File \"/venv/lib/python3.11/site-packages/bluesky/utils/__init__.py\", line 1203, in dec_inner\n", - " return (yield from plan)\n", - " ^^^^^^^^^^^^^^^\n", - " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 985, in stage_wrapper\n", - " return (yield from finalize_wrapper(inner(), unstage_devices()))\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 535, in finalize_wrapper\n", - " ret = yield from plan\n", - " ^^^^^^^^^^^^^^^\n", - " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 983, in inner\n", - " return (yield from plan)\n", - " ^^^^^^^^^^^^^^^\n", - " File \"/venv/lib/python3.11/site-packages/bluesky/utils/__init__.py\", line 1203, in dec_inner\n", - " return (yield from plan)\n", - " ^^^^^^^^^^^^^^^\n", - " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 351, in run_wrapper\n", - " yield from contingency_wrapper(plan,\n", - " File \"/venv/lib/python3.11/site-packages/bluesky/preprocessors.py\", line 606, in contingency_wrapper\n", - " ret = yield from plan\n", - " ^^^^^^^^^^^^^^^\n", - " File \"/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py\", line 55, in inner_fast_scan\n", - " yield from check_within_limit([start, end], motor)\n", - " File \"/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py\", line 83, in check_within_limit\n", - " raise ValueError(\n", - "ValueError: xyz_motor-x move request of 18880 is beyond limits:-100.0 < 100.0\n" - ] + "data": { + "image/png": "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zdibW+A1KON14DUQeB3KeB2CuwbzjfgFFvwREREZhsGfiIjIMAz+AUin07jjjjuQTqejPpXI8BqU8TrwGgi8DmW8DnJcAxb8ERERGYYjfyIiIsMw+BMRERmGwZ+IiMgwDP5ERESGYfD32X333Ydjjz0WDQ0NOPfcc7F9+/aoTylUX/rSl2BZ1rRfp5xyStSnFbht27bhgx/8IJYvXw7LsvDEE09M+3PbtnH77bdj2bJlaGxsxCWXXILf/va30ZxsQBa6Btdff/2Me+Oyyy6L5mQDsnHjRqxZswatra3o6enBFVdcgddff33a90xOTmLdunXo6upCS0sLPvzhD+PQoUMRnXEwKrkOa9eunXE/fOYzn4nojIOxadMmnH766U4zn/POOw8//vGPnT+P8l5g8PfRI488gltvvRV33HEHXn75ZZxxxhl4//vfj97e3qhPLVTvfOc7ceDAAefXc889F/UpBW58fBxnnHEG7rvvvln//O///u9xzz334P7778fPf/5zNDc34/3vfz8mJydDPtPgLHQNAOCyyy6bdm98//vfD/EMg7d161asW7cOL774Ip5++mnk83lceumlGB8fd77nlltuwb/+67/in//5n7F161bs378fV111VYRn7b9KrgMA3HDDDdPuh7//+7+P6IyDsWLFCnz5y1/Gjh078NJLL+FP/uRP8Gd/9mf49a9/DSDie8Em37z73e+2161b5/y+WCzay5cvtzdu3BjhWYXrjjvusM8444yoTyNSAOzHH3/c+X2pVLKXLl1qf+UrX3G+NjQ0ZKfTafv73/9+BGcYvCOvgW3b9nXXXWf/2Z/9WSTnE5Xe3l4bgL1161bbtsv/7slk0v7nf/5n53tee+01G4D9wgsvRHWagTvyOti2bb/3ve+1/+qv/iq6k4rIokWL7AceeCDye4Ejf5/kcjns2LEDl1xyifO1WCyGSy65BC+88EKEZxa+3/72t1i+fDmOO+44fOxjH8PevXujPqVI7dmzBwcPHpx2b7S3t+Pcc8817t549tln0dPTg5NPPhk33ngj+vv7oz6lQA0PDwMAOjs7AQA7duxAPp+fdi+ccsopOProo7W+F468DsL//t//G93d3Vi9ejU2bNiATCYTxemFolgs4uGHH8b4+DjOO++8yO8Fbuzjk76+PhSLRSxZsmTa15csWYLdu3dHdFbhO/fcc7F582acfPLJOHDgAO6880788R//MXbt2oXW1taoTy8SBw8eBIBZ7w3xZya47LLLcNVVV2HVqlV488038cUvfhGXX345XnjhBcTj8ahPz3elUgk333wzLrjgAqxevRpA+V5IpVLo6OiY9r063wuzXQcA+C//5b/gmGOOwfLly/HLX/4S/+2//Te8/vrreOyxxyI8W//96le/wnnnnYfJyUm0tLTg8ccfx6mnnoqdO3dGei8w+JOvLr/8cue/Tz/9dJx77rk45phj8Oijj+LTn/50hGdGUfvoRz/q/Pdpp52G008/HccffzyeffZZXHzxxRGeWTDWrVuHXbt2GVHzMp+5rsOf//mfO/992mmnYdmyZbj44ovx5ptv4vjjjw/7NANz8sknY+fOnRgeHsa//Mu/4LrrrsPWrVujPi0W/Pmlu7sb8Xh8RqXmoUOHsHTp0ojOKnodHR046aST8MYbb0R9KpER//68N6Y77rjj0N3dreW9sX79ejz55JPYsmXLtO3Bly5dilwuh6GhoWnfr+u9MNd1mM25554LANrdD6lUCieccALOOeccbNy4EWeccQa+/vWvR34vMPj7JJVK4ZxzzsEzzzzjfK1UKuGZZ57BeeedF+GZRWtsbAxvvvkmli1bFvWpRGbVqlVYunTptHtjZGQEP//5z42+N/7whz+gv79fq3vDtm2sX78ejz/+OH72s59h1apV0/78nHPOQTKZnHYvvP7669i7d69W98JC12E2O3fuBACt7ofZlEolZLPZ6O+FwEsKDfLwww/b6XTa3rx5s/3qq6/af/7nf253dHTYBw8ejPrUQvO5z33OfvbZZ+09e/bYzz//vH3JJZfY3d3ddm9vb9SnFqjR0VH7lVdesV955RUbgH333Xfbr7zyiv373//etm3b/vKXv2x3dHTYP/zhD+1f/vKX9p/92Z/Zq1atsicmJiI+c//Mdw1GR0ftz3/+8/YLL7xg79mzx/7pT39qn3322faJJ55oT05ORn3qvrnxxhvt9vZ2+9lnn7UPHDjg/MpkMs73fOYzn7GPPvpo+2c/+5n90ksv2eedd5593nnnRXjW/lvoOrzxxhv2XXfdZb/00kv2nj177B/+8If2cccdZ1944YURn7m/brvtNnvr1q32nj177F/+8pf2bbfdZluWZf/bv/2bbdvR3gsM/j6799577aOPPtpOpVL2u9/9bvvFF1+M+pRCdc0119jLli2zU6mUfdRRR9nXXHON/cYbb0R9WoHbsmWLDWDGr+uuu8627fJyv7/5m7+xlyxZYqfTafviiy+2X3/99WhP2mfzXYNMJmNfeuml9uLFi+1kMmkfc8wx9g033KDdi/Fsf38A9oMPPuh8z8TEhP2Xf/mX9qJFi+ympib7yiuvtA8cOBDdSQdgoeuwd+9e+8ILL7Q7OzvtdDptn3DCCfYXvvAFe3h4ONoT99mnPvUp+5hjjrFTqZS9ePFi++KLL3YCv21Hey9wS18iIiLDcM6fiIjIMAz+REREhmHwJyIiMgyDPxERkWEY/ImIiAzD4E9ERGQYBn8iIiLDMPgTEREZhsGfiHzz7LPPwrKsGZuVEJFc2OGPiGq2du1anHnmmfiHf/gHAEAul8PAwACWLFkCy7KiPTkimlMi6hMgIn2kUiktt6Yl0g3T/kRUk+uvvx5bt27F17/+dViWBcuysHnz5mlp/82bN6OjowNPPvkkTj75ZDQ1NeEjH/kIMpkMvvOd7+DYY4/FokWL8NnPfhbFYtH52dlsFp///Odx1FFHobm5Geeeey6effbZaP6iRBriyJ+IavL1r38dv/nNb7B69WrcddddAIBf//rXM74vk8ngnnvuwcMPP4zR0VFcddVVuPLKK9HR0YH/83/+D9566y18+MMfxgUXXIBrrrkGALB+/Xq8+uqrePjhh7F8+XI8/vjjuOyyy/CrX/0KJ554Yqh/TyIdMfgTUU3a29uRSqXQ1NTkpPp379494/vy+Tw2bdqE448/HgDwkY98BN/97ndx6NAhtLS04NRTT8VFF12ELVu24JprrsHevXvx4IMPYu/evVi+fDkA4POf/zyeeuopPPjgg/if//N/hveXJNIUgz8RBaqpqckJ/ACwZMkSHHvssWhpaZn2td7eXgDAr371KxSLRZx00knTfk42m0VXV1c4J02kOQZ/IgpUMpmc9nvLsmb9WqlUAgCMjY0hHo9jx44diMfj077P+8JARLVj8CeimqVSqWmFen4466yzUCwW0dvbiz/+4z/29WcTURmr/YmoZsceeyx+/vOf43e/+x36+vqc0Xs9TjrpJHzsYx/Dtddei8ceewx79uzB9u3bsXHjRvzoRz/y4ayJiMGfiGr2+c9/HvF4HKeeeioWL16MvXv3+vJzH3zwQVx77bX43Oc+h5NPPhlXXHEF/u///b84+uijffn5RKZjhz8iIiLDcORPRERkGAZ/IiIiwzD4ExERGYbBn4iIyDAM/kRERIZh8CciIjIMgz8REZFhGPyJiIgMw+BPRERkGAZ/IiIiwzD4ExERGeb/BzuA2CBWv1y4AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "uid, = RE(stxm_fast(\n", + " det=det,\n", + " count_time = 0.5,\n", + " scan_motor = xyz_motor.x,\n", + " scan_start = -2.2,\n", + " scan_end = 2.2,\n", + " step_motor = xyz_motor.y,\n", + " step_start = -2.2,\n", + " step_end = 2.2,\n", + " plan_time = 50,\n", + "),bec)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "0e37db82-9b3e-4f9c-9999-14b5702343a9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" }, { - "ename": "ValueError", - "evalue": "xyz_motor-x move request of 18880 is beyond limits:-100.0 < 100.0", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[2], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mRE\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfast_scan\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[43mdet\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43mxyz_motor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m8.888\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m18880\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m5\u001b[39;49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:918\u001b[0m, in \u001b[0;36mRunEngine.__call__\u001b[0;34m(self, *args, **metadata_kw)\u001b[0m\n\u001b[1;32m 914\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_blocking_event\u001b[38;5;241m.\u001b[39mset()\n\u001b[1;32m 916\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_task_fut\u001b[38;5;241m.\u001b[39madd_done_callback(set_blocking_event)\n\u001b[0;32m--> 918\u001b[0m plan_return \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_resume_task\u001b[49m\u001b[43m(\u001b[49m\u001b[43minit_func\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_build_task\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 920\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_interrupted:\n\u001b[1;32m 921\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m RunEngineInterrupted(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpause_msg) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:1057\u001b[0m, in \u001b[0;36mRunEngine._resume_task\u001b[0;34m(self, init_func)\u001b[0m\n\u001b[1;32m 1053\u001b[0m \u001b[38;5;66;03m# if the main task exception is not None, re-raise\u001b[39;00m\n\u001b[1;32m 1054\u001b[0m \u001b[38;5;66;03m# it (unless it is a canceled error)\u001b[39;00m\n\u001b[1;32m 1055\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (exc \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1056\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(exc, _RunEnginePanic)):\n\u001b[0;32m-> 1057\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n\u001b[1;32m 1058\u001b[0m \u001b[38;5;66;03m# Only try to get a result if there wasn't an error,\u001b[39;00m\n\u001b[1;32m 1059\u001b[0m \u001b[38;5;66;03m# (other than a cancelled error)\u001b[39;00m\n\u001b[1;32m 1060\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m exc \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:1687\u001b[0m, in \u001b[0;36mRunEngine._run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1685\u001b[0m exit_reason \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mstr\u001b[39m(err)\n\u001b[1;32m 1686\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlog\u001b[38;5;241m.\u001b[39mexception(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRun aborted\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 1687\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m err\n\u001b[1;32m 1688\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 1689\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m exit_reason:\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:1547\u001b[0m, in \u001b[0;36mRunEngine._run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1544\u001b[0m \u001b[38;5;66;03m# The normal case of clean operation\u001b[39;00m\n\u001b[1;32m 1545\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1546\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1547\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_plan_stack[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39msend(resp)\n\u001b[1;32m 1548\u001b[0m \u001b[38;5;66;03m# We have exhausted the top generator\u001b[39;00m\n\u001b[1;32m 1549\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m:\n\u001b[1;32m 1550\u001b[0m \u001b[38;5;66;03m# pop the dead generator go back to the top\u001b[39;00m\n", - "File \u001b[0;32m/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py:75\u001b[0m, in \u001b[0;36mfast_scan\u001b[0;34m(dets, motor, start, end, motor_speed)\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m bps\u001b[38;5;241m.\u001b[39mcheckpoint()\n\u001b[1;32m 73\u001b[0m current_value \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01myield from\u001b[39;00m bps\u001b[38;5;241m.\u001b[39mrd(motor\u001b[38;5;241m.\u001b[39muser_readback)\n\u001b[0;32m---> 75\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m finalize_wrapper(\n\u001b[1;32m 76\u001b[0m plan\u001b[38;5;241m=\u001b[39minner_fast_scan(dets, motor, start, end, motor_speed),\n\u001b[1;32m 77\u001b[0m final_plan\u001b[38;5;241m=\u001b[39mcleanUp(old_speed, motor),\n\u001b[1;32m 78\u001b[0m )\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:535\u001b[0m, in \u001b[0;36mfinalize_wrapper\u001b[0;34m(plan, final_plan, pause_for_debug)\u001b[0m\n\u001b[1;32m 533\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 534\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 535\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01myield from\u001b[39;00m plan\n\u001b[1;32m 536\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mGeneratorExit\u001b[39;00m:\n\u001b[1;32m 537\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/utils/__init__.py:1203\u001b[0m, in \u001b[0;36mmake_decorator..dec_outer..dec..dec_inner\u001b[0;34m(*inner_args, **inner_kwargs)\u001b[0m\n\u001b[1;32m 1201\u001b[0m plan \u001b[38;5;241m=\u001b[39m gen_func(\u001b[38;5;241m*\u001b[39minner_args, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39minner_kwargs)\n\u001b[1;32m 1202\u001b[0m plan \u001b[38;5;241m=\u001b[39m wrapper(plan, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1203\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28;01myield from\u001b[39;00m plan)\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:985\u001b[0m, in \u001b[0;36mstage_wrapper\u001b[0;34m(plan, devices)\u001b[0m\n\u001b[1;32m 982\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m stage_devices()\n\u001b[1;32m 983\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28;01myield from\u001b[39;00m plan)\n\u001b[0;32m--> 985\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28;01myield from\u001b[39;00m finalize_wrapper(inner(), unstage_devices()))\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:535\u001b[0m, in \u001b[0;36mfinalize_wrapper\u001b[0;34m(plan, final_plan, pause_for_debug)\u001b[0m\n\u001b[1;32m 533\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 534\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 535\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01myield from\u001b[39;00m plan\n\u001b[1;32m 536\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mGeneratorExit\u001b[39;00m:\n\u001b[1;32m 537\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:983\u001b[0m, in \u001b[0;36mstage_wrapper..inner\u001b[0;34m()\u001b[0m\n\u001b[1;32m 981\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minner\u001b[39m():\n\u001b[1;32m 982\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m stage_devices()\n\u001b[0;32m--> 983\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28;01myield from\u001b[39;00m plan)\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/utils/__init__.py:1203\u001b[0m, in \u001b[0;36mmake_decorator..dec_outer..dec..dec_inner\u001b[0;34m(*inner_args, **inner_kwargs)\u001b[0m\n\u001b[1;32m 1201\u001b[0m plan \u001b[38;5;241m=\u001b[39m gen_func(\u001b[38;5;241m*\u001b[39minner_args, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39minner_kwargs)\n\u001b[1;32m 1202\u001b[0m plan \u001b[38;5;241m=\u001b[39m wrapper(plan, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1203\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28;01myield from\u001b[39;00m plan)\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:351\u001b[0m, in \u001b[0;36mrun_wrapper\u001b[0;34m(plan, md)\u001b[0m\n\u001b[1;32m 348\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 349\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m close_run(exit_status\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mfail\u001b[39m\u001b[38;5;124m'\u001b[39m, reason\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e))\n\u001b[0;32m--> 351\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m contingency_wrapper(plan,\n\u001b[1;32m 352\u001b[0m except_plan\u001b[38;5;241m=\u001b[39mexcept_plan,\n\u001b[1;32m 353\u001b[0m else_plan\u001b[38;5;241m=\u001b[39mclose_run)\n\u001b[1;32m 354\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rs_uid\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/preprocessors.py:606\u001b[0m, in \u001b[0;36mcontingency_wrapper\u001b[0;34m(plan, except_plan, else_plan, final_plan, pause_for_debug, auto_raise)\u001b[0m\n\u001b[1;32m 604\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 605\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 606\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01myield from\u001b[39;00m plan\n\u001b[1;32m 607\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mGeneratorExit\u001b[39;00m:\n\u001b[1;32m 608\u001b[0m cleanup \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n", - "File \u001b[0;32m/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py:59\u001b[0m, in \u001b[0;36mfast_scan..inner_fast_scan\u001b[0;34m(dets, motor, start, end, motor_speed)\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;129m@bpp\u001b[39m\u001b[38;5;241m.\u001b[39mstage_decorator(dets)\n\u001b[1;32m 51\u001b[0m \u001b[38;5;129m@bpp\u001b[39m\u001b[38;5;241m.\u001b[39mrun_decorator()\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minner_fast_scan\u001b[39m(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 57\u001b[0m motor_speed: Optional[\u001b[38;5;28mfloat\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 58\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m---> 59\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m check_within_limit([start, end], motor)\n\u001b[1;32m 60\u001b[0m LOGGER\u001b[38;5;241m.\u001b[39minfo(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMoving \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmotor\u001b[38;5;241m.\u001b[39mname\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m to start position = \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mstart\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 61\u001b[0m \u001b[38;5;28;01myield from\u001b[39;00m bps\u001b[38;5;241m.\u001b[39mmv(motor, start) \u001b[38;5;66;03m# move to start\u001b[39;00m\n", - "File \u001b[0;32m/workspaces/p99-bluesky/src/p99_bluesky/plans/fast_scan.py:87\u001b[0m, in \u001b[0;36mcheck_within_limit\u001b[0;34m(values, motor)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m value \u001b[38;5;129;01min\u001b[39;00m values:\n\u001b[1;32m 86\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m lower_limit \u001b[38;5;241m<\u001b[39m value \u001b[38;5;241m<\u001b[39m high_limit:\n\u001b[0;32m---> 87\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 88\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmotor\u001b[38;5;241m.\u001b[39mname\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m move request of \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mvalue\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m is beyond limits: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mlower_limit\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m < \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mhigh_limit\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 89\u001b[0m )\n", - "\u001b[0;31mValueError\u001b[0m: xyz_motor-x move request of 18880 is beyond limits: -100.0 < 100.0" - ] + "data": { + "image/png": "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ZcuWYcWKFaHbbN68GVOmTIn1/hdffHHu/4877jgcf/zxOOKII7B+/XrMnj071nvKQPV+UybqvsclvybmuOOOw6hRozB79mxs2bIFRxxxROz3ZcxTX1+P+vr63N8zZ87E0UcfjZ/97Ge4+eabDbaMUcXkyZMxefLk3N8zZ87Eli1bcMcdd+BXv/qVwZbF58orr8Srr76KZ5991nRTQmF5CWHp0qVYuHBh6DYTJ06U9nkTJ07E8OHD0draalReVO53bW0tAKCzsxOjRo3KPd7Z2YmpU6fGek+ZRN332traAYWb+/btwwcffJDbxyjMmDEDANDa2kpSXoYPH45Bgwahs7Oz3+OdnZ1F97O2tlZoe4rE2e9CDj74YJx44olobW1V0URSFDvmVVVVzkZdijF9+nTyA38xFi9enJt8UCpaaPo6Z3kJYcSIERgxYoS2z3vrrbfw/vvv9xvUTaByvydMmIDa2lqsXbs2JyvZbBYbNmwQnqmlgqj7Xl9fj507d2Ljxo2YNm0aAGDdunXo6+vLCUkUNm3aBADGj3kxKioqMG3aNKxduxbz588H8HFYee3atVi8eHHga+rr67F27VosWbIk99iaNWv6RSWoE2e/C9m/fz9eeeUVnH322QpbSoP6+voB02RtO+ay2LRpE9nruRie5+Gqq67CQw89hPXr12PChAklX2P8OtdSFpwC3nzzTe+ll17yli9f7h122GHeSy+95L300kverl27cttMnjzZe/DBBz3P87xdu3Z53/zmN73m5mZv69at3pNPPumddNJJ3pFHHunt2bPH1G4II7rfnud5//mf/+kNHTrUe+SRR7yXX37ZO/fcc70JEyZ4H330kYldiM28efO8E0880duwYYP37LPPekceeaR3ySWX5J5/6623vMmTJ3sbNmzwPM/zWltbvZtuusl74YUXvK1bt3qPPPKIN3HiRO+0004ztQuRuP/++71MJuOtWrXKe/31173LL7/cGzp0qNfR0eF5nud96Utf8pYtW5bb/rnnnvMOOugg7/bbb/c2b97s3Xjjjd7BBx/svfLKK6Z2IRai+718+XLvj3/8o7dlyxZv48aN3sUXX+xVVlZ6r732mqldiM2uXbty1zIA7wc/+IH30ksveW+++abneZ63bNky70tf+lJu+7///e/eIYcc4n3rW9/yNm/e7N11113eoEGDvCeeeMLULsRCdL/vuOMO7+GHH/b+9re/ea+88op39dVXe+Xl5d6TTz5pahdiccUVV3jV1dXe+vXrvR07duT+ffjhh7ltqF3nLC+SWLBggQdgwL+nnnoqtw0A75577vE8z/M+/PBD78wzz/RGjBjhHXzwwd7hhx/uLVq0KNcx2oLofnvex9Olr7/+eq+mpsbLZDLe7NmzvZaWFv2NT8j777/vXXLJJd5hhx3mVVVVeZdeemk/adu6dWu/76Ktrc077bTTvGHDhnmZTMabNGmS961vfcvr6uoytAfR+dGPfuSNGzfOq6io8KZPn+796U9/yj13+umnewsWLOi3/e9//3vvqKOO8ioqKrxjjjnGe+yxxzS3WA4i+71kyZLctjU1Nd7ZZ5/tvfjiiwZanRx/CnDhP39/FyxY4J1++ukDXjN16lSvoqLCmzhxYr9r3hZE93vFihXeEUcc4VVWVnrDhg3zZs2a5a1bt85M4xMQtM+F/Ta167zsnw1nGIZhGIaxAl7nhWEYhmEYq2B5YRiGYRjGKlheGIZhGIaxCpYXhmEYhmGsguWFYRiGYRirYHlhGIZhGMYqWF4YhmEYhrEKlheGYRiGYayC5YVhGIZhGKtgeWEYhmEYxipYXhiGYRiGsQqWF4ZhGIZhrOL/A+Nr4tDaQWj1AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" }, { "name": "stderr", @@ -299,269 +486,635 @@ " Warning: \"Virtual circuit disconnect\"\n", " Context: \"host.containers.internal:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1237\n", - " Current Time: Mon Jul 01 2024 13:17:37.740482454\n", + " Current Time: Wed Jul 03 2024 15:51:33.491127279\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 15:56:49.733635751\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 15:56:49.733642594\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + "errlog: lost 6 messages\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224451190\n", + " Current Time: Wed Jul 03 2024 15:56:49.733647030\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224458051\n", + " Current Time: Wed Jul 03 2024 15:56:49.733653296\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + "errlog: lost 108 messages\n", + " Current Time: Wed Jul 03 2024 15:56:49.733676574\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224460273\n", + " Current Time: Wed Jul 03 2024 15:56:49.733679081\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Y.EGU\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Z.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224462504\n", + " Current Time: Wed Jul 03 2024 15:56:49.733681406\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YVELO\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224464777\n", + " Current Time: Wed Jul 03 2024 15:56:49.733684103\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YRBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224467733\n", + " Current Time: Wed Jul 03 2024 15:56:49.733701202\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YVAL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224470028\n", + " Current Time: Wed Jul 03 2024 15:56:49.733706470\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YVMAX\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224474433\n", + " Current Time: Wed Jul 03 2024 15:56:49.733709317\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YACCL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224476884\n", + " Current Time: Wed Jul 03 2024 15:56:49.733711632\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Y.PREC\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224479246\n", + " Current Time: Wed Jul 03 2024 15:56:49.738562004\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YRDBD\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA:RBV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224481592\n", + " Current Time: Wed Jul 03 2024 15:56:49.743435893\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YDMOV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224483666\n", + " Current Time: Wed Jul 03 2024 15:56:49.748903713\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YLLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL:RBV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224486277\n", + " Current Time: Wed Jul 03 2024 15:56:49.753570862\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YHLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224488729\n", + " Current Time: Wed Jul 03 2024 15:56:49.758471602\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YSTOP\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH:RBV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224491235\n", + " Current Time: Wed Jul 03 2024 15:56:49.763360290\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Z.EGU\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224493595\n", + " Current Time: Wed Jul 03 2024 15:56:49.768781335\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVELO\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:X.EGU\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224500068\n", + " Current Time: Wed Jul 03 2024 15:56:49.773449417\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZRBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVELO\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224502311\n", + " Current Time: Wed Jul 03 2024 15:56:49.778688444\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVAL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XRBV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224504426\n", + " Current Time: Wed Jul 03 2024 15:56:49.783354681\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVMAX\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVAL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224506708\n", + " Current Time: Wed Jul 03 2024 15:56:49.788406660\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZACCL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVMAX\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224509023\n", + " Current Time: Wed Jul 03 2024 15:56:49.793167804\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Z.PREC\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XACCL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224513507\n", + " Current Time: Wed Jul 03 2024 15:56:49.798243129\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZRDBD\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:X.PREC\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224515792\n", + " Current Time: Wed Jul 03 2024 15:56:49.803816051\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZDMOV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XRDBD\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224518564\n", + " Current Time: Wed Jul 03 2024 15:56:49.808914254\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZLLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XDMOV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224520938\n", + " Current Time: Wed Jul 03 2024 15:56:49.813848622\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZHLM\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224523466\n", + " Current Time: Wed Jul 03 2024 15:56:49.819465895\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Virtual circuit disconnect\"\n", + " Context: \"host.containers.internal:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1237\n", + " Current Time: Wed Jul 03 2024 16:02:08.379911454\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZSTOP\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.224525804\n", + " Current Time: Wed Jul 03 2024 16:02:17.199589951\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.229926165\n", + " Current Time: Wed Jul 03 2024 16:02:17.199596820\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA:RBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + "errlog: lost 190 messages\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.235513059\n", + " Current Time: Wed Jul 03 2024 16:02:17.204086635\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.241286858\n", + " Current Time: Wed Jul 03 2024 16:02:17.208816863\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL:RBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.247110121\n", + " Current Time: Wed Jul 03 2024 16:02:17.213831591\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.252262050\n", + " Current Time: Wed Jul 03 2024 16:02:17.219016378\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH:RBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.257440548\n", + " Current Time: Wed Jul 03 2024 16:02:17.223723575\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.263062585\n", + " Current Time: Wed Jul 03 2024 16:02:17.229210646\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:X.EGU\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.268277863\n", + " Current Time: Wed Jul 03 2024 16:02:17.234252133\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVELO\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:X.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.273159284\n", + " Current Time: Wed Jul 03 2024 16:02:17.239086876\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XRBV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.278397365\n", + " Current Time: Wed Jul 03 2024 16:02:17.244051272\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVAL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.283293647\n", + " Current Time: Wed Jul 03 2024 16:02:17.249074240\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVMAX\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.288354409\n", + " Current Time: Wed Jul 03 2024 16:02:17.254136801\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XACCL\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.293465921\n", + " Current Time: Wed Jul 03 2024 16:02:17.259065110\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:X.PREC\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.298364446\n", + " Current Time: Wed Jul 03 2024 16:02:17.264074606\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XRDBD\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:X.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.303689863\n", + " Current Time: Wed Jul 03 2024 16:02:17.269000979\n", "..................................................................\n", "CA.Client.Exception...............................................\n", " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XDMOV\", Connecting to: 172.23.241.223:41377, Ignored: 192.168.122.1:41377\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jul 01 2024 13:17:42.309068529\n", + " Current Time: Wed Jul 03 2024 16:02:17.274175041\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:17.279211773\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:17.283846766\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Virtual circuit disconnect\"\n", + " Context: \"host.containers.internal:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1237\n", + " Current Time: Wed Jul 03 2024 16:02:20.508261862\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZDMOV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:49.965033970\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZLLM\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:49.965039692\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"errlog: lost 13 messages\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YVMAX\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:49.970458227\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YACCL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:49.975407790\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Y.PREC\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:49.980306083\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YRDBD\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:49.985717024\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YDMOV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:49.990703739\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YLLM\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:49.995608806\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YHLM\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:50.000870889\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YSTOP\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:50.005815661\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Z.EGU\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:50.010727710\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVELO\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:50.015888797\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZRBV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:50.021055396\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVAL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:50.025162132\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVMAX\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:50.029873815\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZACCL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:50.034869359\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Z.PREC\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:50.040052053\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZRDBD\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:50.044796491\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.513923947\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.513930378\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + "errlog: lost 30 messages\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.519324278\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.524563542\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.529400407\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.534316642\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.539019306\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.543128888\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.548292820\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:X.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.553441697\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.558107875\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.563759419\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.568921465\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.573894907\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.578945626\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:X.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.583879337\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.589047844\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.594234761\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Wed Jul 03 2024 16:02:59.599394811\n", "..................................................................\n" ] } ], + "source": [ + "header = db[-1]\n", + "data = header.table()\n", + "plt.tricontourf(data[\"xyz_motor-y\"],data[\"xyz_motor-x\"],data['noisy_det'])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e1bbed8a-11e5-4bd5-a267-e28d6e22134a", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "dcda2ee8-dece-4dcc-9314-2590c9646e1e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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Hf324fDhwyW1sDyeeeYZXHXVVfjTn/6ENWvWYO/evTj77LOxe/fuguvYdBzG2T7ArmMQgUfcc889QW1tbahl582bF5x33nlS2yOasNu3f//+oL6+Prj11lsz7+3YsSNIJBLBb3/7W4ktjMfrr78eAAj+8pe/ZN773//936CioiLYunVrwfXOOOOM4Oqrr1bQwmhMmzYtuOqqqzJ/79u3Lxg5cmTQ0tKSd/l//dd/Dc4999x+702fPj3493//d6ntLIeo2xjl2DQNAMGjjz5adJlrr702OOGEE/q9d9FFFwVNTU0SWyaGMNv39NNPBwCCv//970raJJr3338/ABA888wzBZex8ThME2b7bDsGvYi8xGXdunUYPnw4JkyYgCuvvBIffvih7iYJYfPmzeju7sbs2bMz79XW1mL69Oloa2vT2LL8tLW1YfDgwTjllFMy782ePRuVlZVYv3590XV/85vfYOjQoTjxxBOxbNkyfPzxx7KbW5S+vj5s2LCh329fWVmJ2bNnF/zt29ra+i0PAE1NTUbuKyDeNgLArl27cPTRR6OhoQHnnXceXnvtNRXNVYJt+zAukydPxogRI/Av//IveP7553U3JzTJZBIAMGTIkILL2LwPw2wfYNcxSHkpwJw5c3DfffehtbUVt9xyC5555hnMnTsX+/bt0920sknnoevq6vq9X1dXZ2SOuru7+5Dw88CBAzFkyJCi7f3qV7+KX//613j66aexbNky3H///fja174mu7lF+eCDD7Bv375Iv313d7c1+wqIt40TJkzAr371Kzz22GP49a9/jf3792PGjBl49913VTRZOoX2YSqVwieffKKpVeIYMWIEVqxYgd///vf4/e9/j4aGBsycORMvvfSS7qaVZP/+/Vi0aBFOO+00nHjiiQWXs+04TBN2+2w7Bq19qvTSpUtxyy23FF3mjTfewMSJE2N9/le+8pXM/5900kn4/Oc/j2OOOQbr1q3DrFmzYn1mFGRvnwmE3ca4ZNfEnHTSSRgxYgRmzZqFTZs24Zhjjon9uUQ8jY2NaGxszPw9Y8YMHH/88fj5z3+Om266SWPLSBgmTJiACRMmZP6eMWMGNm3ahDvuuAP333+/xpaV5qqrrsKrr76K5557TndTpBB2+2w7Bq2VlyVLlmD+/PlFlxk3bpyw7xs3bhyGDh2Kzs5OJfIic/vq6+sBAD09PRgxYkTm/Z6eHkyePDnWZ8Yh7DbW19cfUuj56aef4qOPPspsSximT58OAOjs7NQmL0OHDsWAAQPQ09PT7/2enp6C21JfXx9ped3E2cZcDjvsMEyZMgWdnZ0ymqicQvuwpqYGhx9+uKZWyWXatGnGC8HChQszNwCMGjWq6LK2HYdAtO3LxfRj0Fp5GTZsGIYNG6bs+9599118+OGH/U72MpG5fWPHjkV9fT1aW1szspJKpbB+/frId2SVQ9htbGxsxI4dO7BhwwZMnToVALB27Vrs378/IyRhaG9vBwBl+zAfVVVVmDp1KlpbW9Hc3AzgQFi3tbUVCxcuzLtOY2MjWltbsWjRosx7a9as6XeVZBJxtjGXffv24ZVXXsE555wjsaXqaGxsPOS2WpP3oQja29u1HmvFCIIA3/rWt/Doo49i3bp1GDt2bMl1bDoO42xfLsYfg7orhlXwzjvvBBs3bgyWL18eHHnkkcHGjRuDjRs3Bjt37swsM2HChOAPf/hDEARBsHPnzuDb3/520NbWFmzevDl46qmngpNPPjk49thjgz179ujajIJE3b4gCIL/+q//CgYPHhw89thjwcsvvxycd955wdixY4NPPvlExyaUZM6cOcGUKVOC9evXB88991xw7LHHBhdffHHm3999991gwoQJwfr164MgCILOzs7gxhtvDF588cVg8+bNwWOPPRaMGzcuOP3003VtQoYHH3wwSCQSwcqVK4PXX389uOKKK4LBgwcH3d3dQRAEwde//vVg6dKlmeWff/75YODAgcFtt90WvPHGG8ENN9wQHHbYYcErr7yiaxNKEnUbly9fHvzxj38MNm3aFGzYsCH4yle+ElRXVwevvfaark0oys6dOzPHGYDgRz/6UbBx48bgnXfeCYIgCJYuXRp8/etfzyz/9ttvB0cccUTwne98J3jjjTeCu+66KxgwYECwevVqXZtQlKjbd8cddwSrVq0K/vrXvwavvPJKcPXVVweVlZXBU089pWsTinLllVcGtbW1wbp164Jt27ZlXh9//HFmGZuPwzjbZ9sx6IW8zJs3LwBwyOvpp5/OLAMguOeee4IgCIKPP/44OPvss4Nhw4YFhx12WHD00UcHCxYsyAy8phF1+4LgwO3S1113XVBXVxckEolg1qxZQUdHh/rGh+TDDz8MLr744uDII48Mampqgssuu6yfnG3evLnfNnd1dQWnn356MGTIkCCRSATjx48PvvOd7wTJZFLTFvTnJz/5STB69OigqqoqmDZtWvCnP/0p829nnHFGMG/evH7L/+53vwuOO+64oKqqKjjhhBOCJ554QnGLoxNlGxctWpRZtq6uLjjnnHOCl156SUOrw5G+NTj3ld6mefPmBWecccYh60yePDmoqqoKxo0b1+94NI2o23fLLbcExxxzTFBdXR0MGTIkmDlzZrB27Vo9jQ9Bvm3LHSNtPg7jbJ9tx2BFEASB1NAOIYQQQohAeKs0IYQQQqyC8kIIIYQQq6C8EEIIIcQqKC+EEEIIsQrKCyGEEEKsgvJCCCGEEKugvBBCCCHEKigvhBBCCLEKygshhBBCrILyQgghhBCroLwQQgghxCooL4QQQgixiv8f2iMPpW5a25YAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "281491c4-3b72-4627-bd14-0293bce7ae2d", + "metadata": {}, + "outputs": [], + "source": [ + "k = RE(get_velocity_and_step_size(xyz_motor.x, 20, 0.1))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "92a3fb8e-0385-4f75-aa9a-795662ed423e", + "metadata": {}, + "outputs": [], + "source": [ + "RE.abort() " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d27ca3b9-a980-47a8-ba0c-118adcd55234", + "metadata": {}, + "outputs": [], + "source": [ + "RE(fast_scan_grid([det],xyz_motor.x,-2,2,10, xyz_motor.y,-0,-10,1),bec)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f338149e-cdfd-4e04-b8a4-635fcabee41d", + "metadata": {}, + "outputs": [], + "source": [ + "RE(fast_scan_grid([det],xyz_motor.x,0,10,10, xyz_motor.y,-0,-10,5,snake_axes = True),bec)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "35d1be9a-07d0-4b55-9b12-95cf4c9c0608", + "metadata": {}, + "outputs": [], "source": [ "RE(fast_scan([det],xyz_motor.x,-8.888,18880,5\n", " ))" @@ -601,7 +1154,10 @@ "id": "d303fd1d-b944-4ff9-a55b-22f6fb1c1aa0", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "RE(bps.abs_set(xyz_motor.y.velocity,100))\n", + " " + ] }, { "cell_type": "code", @@ -680,6 +1236,75 @@ "id": "79058ee5-65ec-488c-abaf-e32325a52614", "metadata": {}, "outputs": [], + "source": [ + "from bluesky.plans import grid_scan\n", + "from ophyd.sim import det5, jittery_motor1, jittery_motor2\n", + "from bluesky.callbacks.mpl_plotting import LiveScatter\n", + "\n", + "# The 'jittery' example motors won't go exactly where they are told to go.\n", + "\n", + "RE(grid_scan([det5],\n", + " jittery_motor1, -3, 3, 6,\n", + " jittery_motor2, -5, 5, 10, False),\n", + " LiveScatter('jittery_motor1', 'jittery_motor2', 'det5',\n", + " xlim=(-3, 3), ylim=(-5, 5)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae3af411-6e83-4485-97e3-af193cca6e9b", + "metadata": {}, + "outputs": [], + "source": [ + "def test(count_time: float,\n", + " scan_range: float,\n", + " step_range: float,\n", + " plan_time :float,):\n", + " num_data_point = plan_time/count_time\n", + " step_size = 1.0/(num_data_point/(scan_range*step_range))**0.5\n", + " ideal_velocity = step_size/count_time\n", + " #smallest_possible_step_size = scan_motor.max_velocity\n", + "\n", + " print(ideal_velocity,step_size)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "415e3926-ef2c-45c3-a529-10f8380b289f", + "metadata": {}, + "outputs": [], + "source": [ + "test(0.1,10,2,100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3ebaef8d-ea75-459c-8f93-4b7d54e6c487", + "metadata": {}, + "outputs": [], + "source": [ + "(100/0.1/20)**0.5" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b5247ccd-eab0-4af5-9a16-b03d3382cf07", + "metadata": {}, + "outputs": [], + "source": [ + "(7.07*2) *(7.07*10)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4551503d-084d-41e6-a096-bdd7db2934d8", + "metadata": {}, + "outputs": [], "source": [] } ], diff --git a/tests/test_fast_scan.py b/tests/test_fast_scan.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_p99_stages_softioc.py b/tests/test_p99_stages_softioc.py index 55811b8..1bf8d1c 100644 --- a/tests/test_p99_stages_softioc.py +++ b/tests/test_p99_stages_softioc.py @@ -3,7 +3,7 @@ from collections import defaultdict from bluesky.run_engine import RunEngine -from ophyd_async.core import DeviceCollector, assert_emitted +from ophyd_async.core import DeviceCollector from p99_bluesky.devices.p99.sample_stage import ( FilterMotor, @@ -61,29 +61,26 @@ def capture_emitted(name, doc): ) await asyncio.wait_for(result, timeout=2) assert result.result() == [2.0, 3.1, 4.0, p99StageSelections.Cd25um, 0.0] - from bluesky.plans import scan - from ophyd.sim import det # type: ignore - - RE( - scan( - [mock_sampleAngleStage.theta, det], - xyz_motor.y, - -1, - 1, - xyz_motor.x, - -2, - 2, - xyz_motor.z, - -3, - 3, - 10, - ), - [ - capture_emitted, - ], - ) - assert_emitted(docs, start=1, descriptor=1, event=10, stop=1) + # RE( + # scan( + # [mock_sampleAngleStage.theta, det], + # xyz_motor.y, + # -1, + # 1, + # xyz_motor.x, + # -2, + # 2, + # xyz_motor.z, + # -3, + # 3, + # 10, + # ), + # [ + # capture_emitted, + # ], + # ) + # assert_emitted(docs, start=1, descriptor=1, event=10, stop=1) p.terminate() p.wait() await asyncio.sleep(A_BIT) From 75176f43e637aa392eec9bb345d9e1f48a76bdc9 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Wed, 3 Jul 2024 16:30:09 +0000 Subject: [PATCH 03/11] corrected test --- tests/test_p99_stages_softioc.py | 41 ++++++++++++++++---------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/tests/test_p99_stages_softioc.py b/tests/test_p99_stages_softioc.py index 1bf8d1c..ac976ed 100644 --- a/tests/test_p99_stages_softioc.py +++ b/tests/test_p99_stages_softioc.py @@ -2,8 +2,9 @@ import subprocess from collections import defaultdict +from bluesky.plans import scan from bluesky.run_engine import RunEngine -from ophyd_async.core import DeviceCollector +from ophyd_async.core import DeviceCollector, assert_emitted from p99_bluesky.devices.p99.sample_stage import ( FilterMotor, @@ -62,25 +63,25 @@ def capture_emitted(name, doc): await asyncio.wait_for(result, timeout=2) assert result.result() == [2.0, 3.1, 4.0, p99StageSelections.Cd25um, 0.0] - # RE( - # scan( - # [mock_sampleAngleStage.theta, det], - # xyz_motor.y, - # -1, - # 1, - # xyz_motor.x, - # -2, - # 2, - # xyz_motor.z, - # -3, - # 3, - # 10, - # ), - # [ - # capture_emitted, - # ], - # ) - # assert_emitted(docs, start=1, descriptor=1, event=10, stop=1) + RE( + scan( + [mock_sampleAngleStage.theta], + xyz_motor.y, + -1, + 1, + xyz_motor.x, + -2, + 2, + xyz_motor.z, + -3, + 3, + 10, + ), + [ + capture_emitted, + ], + ) + assert_emitted(docs, start=1, descriptor=1, event=10, stop=1) p.terminate() p.wait() await asyncio.sleep(A_BIT) From f29ab558e38a5e4186cf0a7343fa3f76e6be6ac0 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Thu, 4 Jul 2024 09:03:30 +0000 Subject: [PATCH 04/11] fixed feedback suggestions --- src/p99_bluesky/plan_stubs/motor_plan.py | 22 ++++++++++ src/p99_bluesky/plans/fast_scan.py | 53 +++++++++--------------- src/p99_bluesky/plans/stxm.py | 27 ++++-------- 3 files changed, 48 insertions(+), 54 deletions(-) create mode 100644 src/p99_bluesky/plan_stubs/motor_plan.py diff --git a/src/p99_bluesky/plan_stubs/motor_plan.py b/src/p99_bluesky/plan_stubs/motor_plan.py new file mode 100644 index 0000000..1f5a687 --- /dev/null +++ b/src/p99_bluesky/plan_stubs/motor_plan.py @@ -0,0 +1,22 @@ +import bluesky.plan_stubs as bps +from ophyd_async.epics.motion import Motor + +from p99_bluesky.log import LOGGER + + +def check_within_limit(values: list, motor: Motor): + LOGGER.info(f"Check {motor.name} limits.") + lower_limit = yield from bps.rd(motor.low_limit_travel) + high_limit = yield from bps.rd(motor.high_limit_travel) + for value in values: + if not lower_limit < value < high_limit: + raise ValueError( + f"{motor.name} move request of {value} is beyond limits:" + f"{lower_limit} < {high_limit}" + ) + + +def reset_speed(old_speed, motor: Motor): + LOGGER.info(f"Clean up: setting motor speed to {old_speed}.") + if old_speed: + yield from bps.abs_set(motor.velocity, old_speed) diff --git a/src/p99_bluesky/plans/fast_scan.py b/src/p99_bluesky/plans/fast_scan.py index a10da27..2108fc9 100644 --- a/src/p99_bluesky/plans/fast_scan.py +++ b/src/p99_bluesky/plans/fast_scan.py @@ -1,5 +1,6 @@ import bluesky.plan_stubs as bps import bluesky.preprocessors as bpp +from blueapi.core import MsgGenerator from bluesky.preprocessors import ( finalize_wrapper, ) @@ -7,6 +8,7 @@ from ophyd_async.protocols import AsyncReadable from p99_bluesky.log import LOGGER +from p99_bluesky.plan_stubs.motor_plan import check_within_limit, reset_speed def fast_scan_1d( @@ -15,7 +17,7 @@ def fast_scan_1d( start: float, end: float, motor_speed: float | None = None, -): +) -> MsgGenerator: """ One axis fast scan @@ -57,15 +59,15 @@ def fast_scan_grid( step_motor: Motor, step_start: float, step_end: float, - step_size: float, + num_step: int, scan_motor: Motor, scan_start: float, scan_end: float, motor_speed: float | None = None, snake_axes: bool = False, -): +) -> MsgGenerator: """ - Same as fast_scan_1d with an extra axis to step through to from a grid + Same as fast_scan_1d with an extra axis to step through forming a grid Parameters ---------- @@ -89,7 +91,7 @@ def inner_fast_scan_grid( step_motor: Motor, step_start: float, step_end: float, - step_number: float, + num_step: int, scan_motor: Motor, scan_start: float, scan_end: float, @@ -98,27 +100,28 @@ def inner_fast_scan_grid( ): yield from check_within_limit([step_start, step_end], step_motor) yield from check_within_limit([scan_start, scan_end], scan_motor) - step_size = (step_end - step_start) / step_number + step_size = (step_end - step_start) / num_step step_counter = 1 + current_step = step_start + step_size * step_counter if snake_axes: - while step_number >= step_counter: - yield from bps.mv(step_motor, step_start + step_size * step_counter) + while num_step >= step_counter: + yield from bps.mv(step_motor, current_step) yield from _fast_scan_1d( dets + [step_motor], scan_motor, scan_start, scan_end, motor_speed ) - step_counter += 1 - yield from bps.mv(step_motor, step_start + step_size * step_counter) + current_step += step_size + yield from bps.mv(step_motor, current_step) yield from _fast_scan_1d( dets + [step_motor], scan_motor, scan_end, scan_start, motor_speed ) - step_counter += 1 + current_step += step_size else: - while step_number >= step_counter: - yield from bps.mv(step_motor, step_start + step_size * step_counter) + while num_step >= step_counter: + yield from bps.mv(step_motor, current_step) yield from _fast_scan_1d( dets + [step_motor], scan_motor, scan_start, scan_end, motor_speed ) - step_counter += 1 + current_step += step_size yield from finalize_wrapper( plan=inner_fast_scan_grid( @@ -126,7 +129,7 @@ def inner_fast_scan_grid( step_motor, step_start, step_end, - step_size, + num_step, scan_motor, scan_start, scan_end, @@ -143,7 +146,7 @@ def _fast_scan_1d( start: float, end: float, motor_speed: float | None = None, -): +) -> MsgGenerator: """ The logic for one axis fast scan, see fast_scan_1d and fast_scan_grid @@ -208,24 +211,6 @@ def inner_fast_scan_1d( ) -def check_within_limit(values: list, motor: Motor): - LOGGER.info(f"Check {motor.name} limits.") - lower_limit = yield from bps.rd(motor.low_limit_travel) - high_limit = yield from bps.rd(motor.high_limit_travel) - for value in values: - if not lower_limit < value < high_limit: - raise ValueError( - f"{motor.name} move request of {value} is beyond limits:" - f"{lower_limit} < {high_limit}" - ) - - -def reset_speed(old_speed, motor: Motor): - LOGGER.info(f"Clean up: setting motor speed to {old_speed}.") - if old_speed: - yield from bps.abs_set(motor.velocity, old_speed) - - def clean_up(): LOGGER.info("Clean up") # possibly use to move back to starting position. diff --git a/src/p99_bluesky/plans/stxm.py b/src/p99_bluesky/plans/stxm.py index 127fa1b..962fe56 100644 --- a/src/p99_bluesky/plans/stxm.py +++ b/src/p99_bluesky/plans/stxm.py @@ -1,7 +1,9 @@ +import math from collections.abc import Iterator from typing import Any import bluesky.plan_stubs as bps +from blueapi.core import MsgGenerator from ophyd_async.epics.motion import Motor from p99_bluesky.devices.andor2Ad import Andor2Ad, Andor3Ad @@ -39,22 +41,23 @@ def stxm_fast( scan_end: float, plan_time: float, # step_size: float, -): +) -> MsgGenerator: num_data_point = plan_time / count_time scan_range = abs(scan_start - scan_end) step_range = abs(step_start - step_end) + # Assuming ideal step size is evenly distributed points within the two axis. ideal_step_size = 1.0 / ((num_data_point / (scan_range * step_range)) ** 0.5) ideal_velocity = ideal_step_size / count_time + LOGGER.info(f"{ideal_step_size} velocity = {ideal_velocity}.") velocity, step_size = yield from get_velocity_and_step_size( scan_motor, ideal_velocity, ideal_step_size ) LOGGER.info(f"{scan_motor.name} velocity = {velocity}.") LOGGER.info(f"{step_motor.name} step size = {step_size}.") - # yield from bps.abs_set(det.drv.acquire_time, count_time) - import math - + # yield from bps.abs_set(det.drv.acquire_time, count_time num_of_step = math.ceil(step_range / step_size) + yield from fast_scan_grid( [det], step_motor, @@ -86,19 +89,3 @@ def get_velocity_and_step_size( else: step_size = ideal_step_size return ideal_velocity, step_size - - -# from ophyd.sim import det - -# fast_scan_grid( -# dets: list[AsyncReadable], -# step_motor: Motor, -# step_start: float, -# step_end: float, -# step_size: float, -# scan_motor: Motor, -# scan_start: float, -# scan_end: float, -# motor_speed: float | None = None, -# snake_axes: bool = False, -# ): From 3467b1c3b4596189ed4a046f7b42b4cf7cb440c2 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Fri, 5 Jul 2024 11:42:52 +0000 Subject: [PATCH 05/11] adding tests --- pyproject.toml | 2 +- src/p99_bluesky/plan_stubs/__init__.py | 0 src/p99_bluesky/plan_stubs/motor_plan.py | 6 - src/p99_bluesky/plans/fast_scan.py | 10 +- src/p99_bluesky/plans/stxm.py | 8 +- tests/jupyter_tests/Untitled.ipynb | 23 +++ tests/jupyter_tests/fast_scan_test.ipynb | 179 ++------------------- tests/jupyter_tests/stream.ipynb | 193 +++++++++++++++++++++++ tests/plan_stubs/test_motor_plan.py | 26 +++ tests/test_fast_scan.py | 100 ++++++++++++ 10 files changed, 368 insertions(+), 179 deletions(-) create mode 100644 src/p99_bluesky/plan_stubs/__init__.py create mode 100644 tests/jupyter_tests/Untitled.ipynb create mode 100644 tests/jupyter_tests/stream.ipynb create mode 100644 tests/plan_stubs/test_motor_plan.py diff --git a/pyproject.toml b/pyproject.toml index fe4781e..2291d5f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -123,7 +123,7 @@ allowlist_externals = commands = pre-commit: pre-commit run --all-files {posargs} type-checking: pyright src tests {posargs} - tests: pytest --cov=p99_bluesky --cov-report term --cov-report xml:cov.xml {posargs} + tests: pytest --cov=p99_bluesky --cov-report term --cov-report xml:cov.xml {posargs} docs: sphinx-{posargs:build -EW --keep-going} -T docs build/html """ diff --git a/src/p99_bluesky/plan_stubs/__init__.py b/src/p99_bluesky/plan_stubs/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/p99_bluesky/plan_stubs/motor_plan.py b/src/p99_bluesky/plan_stubs/motor_plan.py index 1f5a687..e9df4af 100644 --- a/src/p99_bluesky/plan_stubs/motor_plan.py +++ b/src/p99_bluesky/plan_stubs/motor_plan.py @@ -14,9 +14,3 @@ def check_within_limit(values: list, motor: Motor): f"{motor.name} move request of {value} is beyond limits:" f"{lower_limit} < {high_limit}" ) - - -def reset_speed(old_speed, motor: Motor): - LOGGER.info(f"Clean up: setting motor speed to {old_speed}.") - if old_speed: - yield from bps.abs_set(motor.velocity, old_speed) diff --git a/src/p99_bluesky/plans/fast_scan.py b/src/p99_bluesky/plans/fast_scan.py index 2108fc9..6ac4ea2 100644 --- a/src/p99_bluesky/plans/fast_scan.py +++ b/src/p99_bluesky/plans/fast_scan.py @@ -8,7 +8,7 @@ from ophyd_async.protocols import AsyncReadable from p99_bluesky.log import LOGGER -from p99_bluesky.plan_stubs.motor_plan import check_within_limit, reset_speed +from p99_bluesky.plan_stubs.motor_plan import check_within_limit def fast_scan_1d( @@ -203,7 +203,7 @@ def inner_fast_scan_1d( while not done: yield from bps.trigger_and_read(dets + [motor]) done = yield from bps.rd(motor.motor_done_move) - yield from bps.checkpoint() + yield from bps.checkpoint() yield from finalize_wrapper( plan=inner_fast_scan_1d(dets, motor, start, end, motor_speed), @@ -211,6 +211,12 @@ def inner_fast_scan_1d( ) +def reset_speed(old_speed, motor: Motor): + LOGGER.info(f"Clean up: setting motor speed to {old_speed}.") + if old_speed: + yield from bps.abs_set(motor.velocity, old_speed) + + def clean_up(): LOGGER.info("Clean up") # possibly use to move back to starting position. diff --git a/src/p99_bluesky/plans/stxm.py b/src/p99_bluesky/plans/stxm.py index 962fe56..472ad54 100644 --- a/src/p99_bluesky/plans/stxm.py +++ b/src/p99_bluesky/plans/stxm.py @@ -79,13 +79,11 @@ def get_velocity_and_step_size( min_velocity = 0.01 # yield from bps.rd(scan_motor.min_velocity) # if motor does not move fast enough increase step_motor step size if ideal_velocity > max_velocity: - step_size = int(ideal_velocity / max_velocity * ideal_step_size) + ideal_step_size = ideal_velocity / max_velocity * ideal_step_size ideal_velocity = max_velocity # if motor does not move slow enough decrease step_motor step size # min_velocity not in motor atm need to add it elif ideal_velocity < min_velocity: - step_size = int(ideal_velocity / min_velocity * ideal_step_size) + ideal_step_size = ideal_velocity / min_velocity * ideal_step_size ideal_velocity = min_velocity - else: - step_size = ideal_step_size - return ideal_velocity, step_size + return ideal_velocity, ideal_step_size diff --git a/tests/jupyter_tests/Untitled.ipynb b/tests/jupyter_tests/Untitled.ipynb new file mode 100644 index 0000000..c27fd7b --- /dev/null +++ b/tests/jupyter_tests/Untitled.ipynb @@ -0,0 +1,23 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "ba954da1-3cc4-4634-842d-331f773c98a3", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "", + "name": "" + }, + "language_info": { + "name": "" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tests/jupyter_tests/fast_scan_test.ipynb b/tests/jupyter_tests/fast_scan_test.ipynb index 9132d45..3b9a8e6 100644 --- a/tests/jupyter_tests/fast_scan_test.ipynb +++ b/tests/jupyter_tests/fast_scan_test.ipynb @@ -7,171 +7,20 @@ "metadata": {}, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918048858\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918055680\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Y.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918058379\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918061292\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918065018\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918067491\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918122516\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918125285\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Y.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918128012\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918130556\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918135786\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918140418\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918144062\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918146975\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Z.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918152074\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918155949\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918159736\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918163397\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918168149\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918172844\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Z.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918177477\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918180550\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918185273\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.918191358\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.933693802\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.933702572\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 14:47:38.933897765\n", - "..................................................................\n" + "ename": "NotConnected", + "evalue": "\nmock_sampleAngleStage: NotConnected:\n theta: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITETHETA:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITETHETA\n roll: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEROLL:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEROLL\n pitch: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEPITCH:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEPITCH\nmock_filter_wheel: NotConnected:\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:MP:SELECT\nxyz_motor: NotConnected:\n x: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:X.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:XVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:XRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:XVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:XVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:XACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:X.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:XRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:XDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:XLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:XHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:XSTOP\n y: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:Y.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:YVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:YRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:YVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:YVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:YACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:Y.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:YRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:YDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:YLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:YHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:YSTOP\n z: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:Z.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:ZVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:ZRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:ZVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:ZVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:ZACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:Z.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:ZRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:ZDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:ZLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:ZHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:ZSTOP\n", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNotConnected\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[1], line 27\u001b[0m\n\u001b[1;32m 25\u001b[0m db \u001b[38;5;241m=\u001b[39m Broker\u001b[38;5;241m.\u001b[39mnamed(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtemp\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 26\u001b[0m RE\u001b[38;5;241m.\u001b[39msubscribe(db\u001b[38;5;241m.\u001b[39minsert)\n\u001b[0;32m---> 27\u001b[0m \u001b[38;5;28;43;01mwith\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mDeviceCollector\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmock\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m:\u001b[49m\n\u001b[1;32m 28\u001b[0m \u001b[43m \u001b[49m\u001b[43mmock_sampleAngleStage\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mSampleAngleStage\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 29\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mp99-MO-TABLE-01:\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmock_sampleAngleStage\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\n\u001b[1;32m 30\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 31\u001b[0m \u001b[43m \u001b[49m\u001b[43mmock_filter_wheel\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mFilterMotor\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 32\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mp99-MO-STAGE-02:MP:SELECT\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmock_filter_wheel\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\n\u001b[1;32m 33\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/ophyd_async/core/device.py:219\u001b[0m, in \u001b[0;36mDeviceCollector.__exit__\u001b[0;34m(self, type_, value, traceback)\u001b[0m\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_objects_on_exit \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_caller_locals()\n\u001b[1;32m 218\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 219\u001b[0m fut \u001b[38;5;241m=\u001b[39m \u001b[43mcall_in_bluesky_event_loop\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_on_exit\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 220\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m:\n\u001b[1;32m 221\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m NotConnected(\n\u001b[1;32m 222\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCould not connect devices. Is the bluesky event loop running? See \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 223\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttps://blueskyproject.io/ophyd-async/main/\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 224\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124muser/explanations/event-loop-choice.html for more info.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 225\u001b[0m )\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:2782\u001b[0m, in \u001b[0;36mcall_in_bluesky_event_loop\u001b[0;34m(coro, timeout)\u001b[0m\n\u001b[1;32m 2777\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mBluesky event loop not running\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 2778\u001b[0m fut \u001b[38;5;241m=\u001b[39m asyncio\u001b[38;5;241m.\u001b[39mrun_coroutine_threadsafe(\n\u001b[1;32m 2779\u001b[0m coro,\n\u001b[1;32m 2780\u001b[0m loop\u001b[38;5;241m=\u001b[39m_bluesky_event_loop,\n\u001b[1;32m 2781\u001b[0m )\n\u001b[0;32m-> 2782\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfut\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/usr/local/lib/python3.11/concurrent/futures/_base.py:456\u001b[0m, in \u001b[0;36mFuture.result\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 454\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError()\n\u001b[1;32m 455\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;241m==\u001b[39m FINISHED:\n\u001b[0;32m--> 456\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__get_result\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 457\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 458\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTimeoutError\u001b[39;00m()\n", + "File \u001b[0;32m/usr/local/lib/python3.11/concurrent/futures/_base.py:401\u001b[0m, in \u001b[0;36mFuture.__get_result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 399\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception:\n\u001b[1;32m 400\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 401\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception\n\u001b[1;32m 402\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 403\u001b[0m \u001b[38;5;66;03m# Break a reference cycle with the exception in self._exception\u001b[39;00m\n\u001b[1;32m 404\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/ophyd_async/core/device.py:210\u001b[0m, in \u001b[0;36mDeviceCollector._on_exit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 208\u001b[0m \u001b[38;5;66;03m# Connect to all the devices\u001b[39;00m\n\u001b[1;32m 209\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m connect_coroutines:\n\u001b[0;32m--> 210\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m wait_for_connection(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mconnect_coroutines)\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/ophyd_async/core/utils.py:129\u001b[0m, in \u001b[0;36mwait_for_connection\u001b[0;34m(**coros)\u001b[0m\n\u001b[1;32m 122\u001b[0m logging\u001b[38;5;241m.\u001b[39mexception(\n\u001b[1;32m 123\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdevice `\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mname\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m` raised unexpected exception \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 124\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(result)\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 125\u001b[0m exc_info\u001b[38;5;241m=\u001b[39mresult,\n\u001b[1;32m 126\u001b[0m )\n\u001b[1;32m 128\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m exceptions:\n\u001b[0;32m--> 129\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m NotConnected(exceptions)\n", + "\u001b[0;31mNotConnected\u001b[0m: \nmock_sampleAngleStage: NotConnected:\n theta: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITETHETA:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITETHETA\n roll: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEROLL:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEROLL\n pitch: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEPITCH:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEPITCH\nmock_filter_wheel: NotConnected:\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:MP:SELECT\nxyz_motor: NotConnected:\n x: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:X.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:XVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:XRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:XVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:XVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:XACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:X.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:XRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:XDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:XLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:XHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:XSTOP\n y: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:Y.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:YVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:YRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:YVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:YVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:YACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:Y.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:YRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:YDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:YLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:YHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:YSTOP\n z: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:Z.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:ZVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:ZRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:ZVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:ZVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:ZACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:Z.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:ZRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:ZDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:ZLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:ZHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:ZSTOP\n" ] } ], diff --git a/tests/jupyter_tests/stream.ipynb b/tests/jupyter_tests/stream.ipynb new file mode 100644 index 0000000..38ce0f3 --- /dev/null +++ b/tests/jupyter_tests/stream.ipynb @@ -0,0 +1,193 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "abfac095-8a7c-46a1-aee1-697c4ac427f8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import os \n", + "os.chdir(\"/workspaces/p99-bluesky/tests/\")\n", + "\n", + "import asyncio\n", + "import subprocess, os\n", + "from bluesky.run_engine import RunEngine\n", + "from ophyd_async.core import DeviceCollector\n", + "from ophyd_async.epics.signal import epics_signal_r, epics_signal_rw\n", + "from ophyd_async.core.signal import observe_value, wait_for_value\n", + "from p99_bluesky.devices.p99.sample_stage import (\n", + " FilterMotor,\n", + " SampleAngleStage,\n", + " p99StageSelections,\n", + ")\n", + "from p99_bluesky.plans.fast_scan import fast_scan_1d, fast_scan_grid\n", + "from p99_bluesky.plans.stxm import stxm_fast,get_velocity_and_step_size\n", + "from soft_motor import SoftThreeAxisStage\n", + "from bluesky.run_engine import RunEngine\n", + "from bluesky.callbacks.best_effort import BestEffortCallback\n", + "from bluesky.plans import count, scan \n", + "from ophyd.sim import noisy_det, det1,det2,det3\n", + "from ophyd.sim import motor\n", + "bec = BestEffortCallback()\n", + "RE = RunEngine({})\n", + "from databroker import Broker\n", + "from bluesky.utils import Msg\n", + "db = Broker.named('temp')\n", + "RE.subscribe(db.insert)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e0564fb7-d0ba-4119-9bc5-ab8fd5fee8cd", + "metadata": {}, + "outputs": [], + "source": [ + "def simple_scan_saving(det, motor,det1):\n", + " yield Msg(\"open_run\")\n", + " yield Msg(\"declare_stream\", None, motor, det, det1, name=\"primary\")\n", + " yield Msg(\"create\", name=\"primary\")\n", + " yield Msg(\"set\", motor, 5)\n", + " yield Msg(\"read\", motor)\n", + " yield Msg(\"trigger\", det)\n", + " yield Msg(\"read\", det)\n", + " yield Msg(\"read\", det1)\n", + " yield Msg(\"save\")\n", + " yield Msg(\"close_run\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "16fdb2df-4e20-44dd-b076-99cf36e687b6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Transient Scan ID: 5 Time: 2024-07-04 12:58:11\n", + "Persistent Unique Scan ID: 'bba38f0c-0c31-43a0-aeae-fed843e6ea26'\n", + "New stream: 'primary'\n", + "+-----------+------------+------------+------------+------------+\n", + "| seq_num | time | det2 | noisy_det | motor |\n", + "+-----------+------------+------------+------------+------------+\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Run aborted\n", + "Traceback (most recent call last):\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/run_engine.py\", line 1522, in _run\n", + " msg = self._plan_stack[-1].throw(stashed_exception or resp)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/tmp/ipykernel_1071954/2290841470.py\", line 10, in simple_scan_saving\n", + " yield Msg(\"read\", det1)\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/run_engine.py\", line 1607, in _run\n", + " new_response = await coro(msg)\n", + " ^^^^^^^^^^^^^^^\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/run_engine.py\", line 1902, in _read\n", + " await current_run.read(msg, ret)\n", + " File \"/venv/lib/python3.11/site-packages/bluesky/bundlers.py\", line 314, in read\n", + " raise ValueError(\n", + "ValueError: Data keys (field names) from SynGauss(prefix='', name='noisy_det', read_attrs=['val'], configuration_attrs=['Imax', 'center', 'sigma', 'noise', 'noise_multiplier']) collide with those from SynGauss(prefix='', name='noisy_det', read_attrs=['val'], configuration_attrs=['Imax', 'center', 'sigma', 'noise', 'noise_multiplier']). The colliding keys are {'noisy_det'}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "+-----------+------------+------------+------------+------------+\n", + "generator simple_scan_saving ['bba38f0c'] (scan num: 5)\n", + "LivePlot did not get any data that corresponds to the x axis. time\n", + "LivePlot did not get any data that corresponds to the y axis. det2\n", + "LivePlot did not get any data that corresponds to the x axis. time\n", + "LivePlot did not get any data that corresponds to the y axis. noisy_det\n", + "LivePlot did not get any data that corresponds to the x axis. time\n", + "LivePlot did not get any data that corresponds to the y axis. motor\n", + "\n", + "\n", + "\n" + ] + }, + { + "ename": "ValueError", + "evalue": "Data keys (field names) from SynGauss(prefix='', name='noisy_det', read_attrs=['val'], configuration_attrs=['Imax', 'center', 'sigma', 'noise', 'noise_multiplier']) collide with those from SynGauss(prefix='', name='noisy_det', read_attrs=['val'], configuration_attrs=['Imax', 'center', 'sigma', 'noise', 'noise_multiplier']). The colliding keys are {'noisy_det'}", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[11], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mRE\u001b[49m\u001b[43m(\u001b[49m\u001b[43msimple_scan_saving\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdet2\u001b[49m\u001b[43m,\u001b[49m\u001b[43mmotor\u001b[49m\u001b[43m,\u001b[49m\u001b[43mnoisy_det\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43mbec\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:918\u001b[0m, in \u001b[0;36mRunEngine.__call__\u001b[0;34m(self, *args, **metadata_kw)\u001b[0m\n\u001b[1;32m 914\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_blocking_event\u001b[38;5;241m.\u001b[39mset()\n\u001b[1;32m 916\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_task_fut\u001b[38;5;241m.\u001b[39madd_done_callback(set_blocking_event)\n\u001b[0;32m--> 918\u001b[0m plan_return \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_resume_task\u001b[49m\u001b[43m(\u001b[49m\u001b[43minit_func\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_build_task\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 920\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_interrupted:\n\u001b[1;32m 921\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m RunEngineInterrupted(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpause_msg) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:1057\u001b[0m, in \u001b[0;36mRunEngine._resume_task\u001b[0;34m(self, init_func)\u001b[0m\n\u001b[1;32m 1053\u001b[0m \u001b[38;5;66;03m# if the main task exception is not None, re-raise\u001b[39;00m\n\u001b[1;32m 1054\u001b[0m \u001b[38;5;66;03m# it (unless it is a canceled error)\u001b[39;00m\n\u001b[1;32m 1055\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (exc \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1056\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(exc, _RunEnginePanic)):\n\u001b[0;32m-> 1057\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n\u001b[1;32m 1058\u001b[0m \u001b[38;5;66;03m# Only try to get a result if there wasn't an error,\u001b[39;00m\n\u001b[1;32m 1059\u001b[0m \u001b[38;5;66;03m# (other than a cancelled error)\u001b[39;00m\n\u001b[1;32m 1060\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m exc \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:1687\u001b[0m, in \u001b[0;36mRunEngine._run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1685\u001b[0m exit_reason \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mstr\u001b[39m(err)\n\u001b[1;32m 1686\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlog\u001b[38;5;241m.\u001b[39mexception(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRun aborted\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 1687\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m err\n\u001b[1;32m 1688\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 1689\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m exit_reason:\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:1522\u001b[0m, in \u001b[0;36mRunEngine._run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1519\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (stashed_exception \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(resp, \u001b[38;5;167;01mException\u001b[39;00m)):\n\u001b[1;32m 1520\u001b[0m \u001b[38;5;66;03m# throw the exception at the current plan\u001b[39;00m\n\u001b[1;32m 1521\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1522\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_plan_stack[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39mthrow(stashed_exception \u001b[38;5;129;01mor\u001b[39;00m resp)\n\u001b[1;32m 1523\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 1524\u001b[0m \u001b[38;5;66;03m# The current plan did not handle it,\u001b[39;00m\n\u001b[1;32m 1525\u001b[0m \u001b[38;5;66;03m# maybe the next plan (if any) would like\u001b[39;00m\n\u001b[1;32m 1526\u001b[0m \u001b[38;5;66;03m# to try\u001b[39;00m\n\u001b[1;32m 1527\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_plan_stack\u001b[38;5;241m.\u001b[39mpop()\n", + "Cell \u001b[0;32mIn[10], line 10\u001b[0m, in \u001b[0;36msimple_scan_saving\u001b[0;34m(det, motor, det1)\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m Msg(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mread\u001b[39m\u001b[38;5;124m\"\u001b[39m, det)\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m Msg(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mread\u001b[39m\u001b[38;5;124m\"\u001b[39m, det1)\n\u001b[0;32m---> 10\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m Msg(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mread\u001b[39m\u001b[38;5;124m\"\u001b[39m, det1)\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m Msg(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msave\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 12\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m Msg(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mclose_run\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:1607\u001b[0m, in \u001b[0;36mRunEngine._run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1602\u001b[0m \u001b[38;5;66;03m# try to finally run the command the user asked for\u001b[39;00m\n\u001b[1;32m 1603\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1604\u001b[0m \u001b[38;5;66;03m# this is one of two places that 'async'\u001b[39;00m\n\u001b[1;32m 1605\u001b[0m \u001b[38;5;66;03m# exceptions (coming in via throw) can be\u001b[39;00m\n\u001b[1;32m 1606\u001b[0m \u001b[38;5;66;03m# raised\u001b[39;00m\n\u001b[0;32m-> 1607\u001b[0m new_response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m coro(msg)\n\u001b[1;32m 1609\u001b[0m \u001b[38;5;66;03m# special case `CancelledError` and let the outer\u001b[39;00m\n\u001b[1;32m 1610\u001b[0m \u001b[38;5;66;03m# exception block deal with it.\u001b[39;00m\n\u001b[1;32m 1611\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mCancelledError:\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:1902\u001b[0m, in \u001b[0;36mRunEngine._read\u001b[0;34m(self, msg)\u001b[0m\n\u001b[1;32m 1900\u001b[0m \u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;241m.\u001b[39m\n\u001b[1;32m 1901\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1902\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m current_run\u001b[38;5;241m.\u001b[39mread(msg, ret)\n\u001b[1;32m 1904\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ret\n", + "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/bundlers.py:314\u001b[0m, in \u001b[0;36mRunBundler.read\u001b[0;34m(self, msg, reading)\u001b[0m\n\u001b[1;32m 312\u001b[0m known_keys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_describe_cache[read_obj]\u001b[38;5;241m.\u001b[39mkeys()\n\u001b[1;32m 313\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mset\u001b[39m(known_keys) \u001b[38;5;241m&\u001b[39m cur_keys:\n\u001b[0;32m--> 314\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 315\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mData keys (field names) from \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mobj\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 316\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcollide with those from \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mread_obj\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 317\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThe colliding keys are \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mset\u001b[39m(known_keys)\u001b[38;5;250m \u001b[39m\u001b[38;5;241m&\u001b[39m\u001b[38;5;250m \u001b[39mcur_keys\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 318\u001b[0m )\n\u001b[1;32m 320\u001b[0m \u001b[38;5;66;03m# add this object to the cache of things we have read\u001b[39;00m\n\u001b[1;32m 321\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_objs_read\u001b[38;5;241m.\u001b[39mappend(obj)\n", + "\u001b[0;31mValueError\u001b[0m: Data keys (field names) from SynGauss(prefix='', name='noisy_det', read_attrs=['val'], configuration_attrs=['Imax', 'center', 'sigma', 'noise', 'noise_multiplier']) collide with those from SynGauss(prefix='', name='noisy_det', read_attrs=['val'], configuration_attrs=['Imax', 'center', 'sigma', 'noise', 'noise_multiplier']). The colliding keys are {'noisy_det'}" + ] + }, + { + "data": { + "image/png": "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N998s5577jnl5OQoIiLiojn9+vVr8y/JAQAAHadd8f/HP/6hPn36tDqna9eu+s1vftOuRQEAgMBp19X+drtdR48e9X69fft2/cd//IeWLVvmt4UBAIDAaFf8//Vf/1WbN2+WdP635N18883avn27HnnkET366KN+XSAAAPCvdsV/7969GjZsmCTp97//va6//npt3bpVK1as0PLly/25PgAA4Gftin9jY6OioqIkSRs3btQdd9whSUpOTtYnn3ziv9UBAAC/a1f8r7vuOhUXF+vNN9/Uhg0bdOutt0qSjh8/ru7du/t1gQAAwL/aFf/HH39c/+///T99//vfV25urgYPHixJ+tOf/uR9OwAAAHRO7folP5LU1NSkuro6XXXVVd6xjz/+WF26dFHPnj39tsBQwC/5AQD4Q6f+JT+SFBYW5hN+6fyf+gUAAJ1bm+P/7W9/W2VlZbrqqqv0rW99SzabrcW5gfrLfgAA4PK1Of5jx471XuGfk5MTqPUAAIAAa/d7/vgS7/kDAPyh07/nL0kVFRU6cOCApPMf//vWt77ll0UBAIDAaVf8q6urNXHiRL3++uuKjY2VJNXW1urGG2/UypUrFRcX5881AgAAP2rX5/xnzpypzz//XPv27VNNTY1qamq0d+9e1dXV6YEHHvD3GgEAgB+16z1/h8OhjRs3aujQoT7j27dv1y233KLa2lp/rS8k8J4/AMAfOqon7Xrm7/F4FBERcdF4RESEPB7PZS8KAAAETrvif9NNN2nWrFk6fvy4d+zYsWOaPXu2MjMz/bY4AADgf+2K/9KlS1VXV6e+ffvqm9/8pr75zW+qb9++qqur03/913/5e40AAMCP2nW1f2Jionbu3KmysjLvR/1SUlKUlZXl18UBAAD/a/cv+SkrK1NZWZmqq6svep//+eef98viQgUX/AEA/KFT/5KfhQsX6tFHH9WQIUPUq1evVn/PPwAA6FzaFf/i4mItX75c9957r7/XAwAAAqxdF/w1NDRoxIgR/l4LAADoAO2K/7/927+ppKTE32sBAAAdoF0v+589e1bLli3Txo0bdcMNN1z0C3+efPJJvywOAAD4X7viv3v3bqWmpkqS9u7d63MfF/8BANC5tSv+mzdv9vc6AABAB2nXe/4AACB0EX8AAAxD/AEAMAzxBwDAMMQfAADDEH8AAAxD/AEAMAzxBwDA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AKAzComP+qWkpOjWW2/V/fffr+3bt+utt97SjBkzNHHiRO+V/seOHVNycrK2b98u6fyz8Ly8POXn52vz5s2qqKjQ1KlTlZGRoeHDh0uSrrnmGo0dO1azZs3S1q1btXfvXk2ZMkXJycm68cYbg7ZfAAACKSTiL0krVqxQcnKyMjMzNXr0aI0cOVLLli3z3t/Y2KhDhw7pzJkz3rGnnnpKt99+u8aPH6/vfe97cjqdevXVV32+7wsvvKD09HSNGTNGo0aNUkREhEpLSxUREdHmtUVFRWnBggXNvhVgGs6FL87HlzgXX+Jc+OJ8fKmjzkVIfM4fAAD4T8g88wcAAP5B/AEAMAzxBwDAMMQfAADDEP824M8J+wrk+ZDO/1rLq6++WjabTbW1tQHYgf8E4ly8++67ys3NVWJioq644gqlpKRoyZIlgd5KuzzzzDPq27evoqOjlZ6e7v2obUtWr16t5ORkRUdHa9CgQVq/fr3P/ZZlaf78+erVq5euuOIKZWVl6f333w/kFvzGn+eisbFRDz30kAYNGqSuXbsqISFBkydP1vHjxwO9Db/w938X/+yHP/yhbDabFi9e7OdVB04gzseBAwd0xx13yOFwqGvXrho6dGirv5zuIha+0q233moNHjzYevvtt60333zT+j//5/9Yubm5rR7zwx/+0EpMTLTKysqsd955xxo+fLg1YsQInzmLFi2yEhISrBUrVlgffPCB9e6771p//OMfA7kVvwjU+bhg7Nix1m233WZJsj777LMA7MB/AnEufv3rX1sPPPCA9frrr1sffvih9bvf/c664oorrP/6r/8K9HYuycqVK63IyEjr+eeft/bt22fdf//9VmxsrFVVVdXs/LfeessKCwuzfvWrX1n79++35s2bZ0VERFh79uzxznnssccsh8NhrVmzxnr33XetO+64w+rXr5/1xRdfdNS22sXf56K2ttbKysqyVq1aZR08eNAqLy+3hg0bZqWlpXXkttolEP9dXPDqq69agwcPthISEqynnnoqwDvxj0Ccjw8++MDq1q2bNXfuXGvnzp3WBx98YP3xj39s8Xs2h/h/hf3791uSrB07dnjH/vKXv1g2m806duxYs8fU1tZaERER1urVq71jBw4csCRZ5eXllmVZVk1NjXXFFVdYGzduDOwG/CxQ5+OCZ5991ho1apRVVlbW6eMf6HPxz/793//duvHGG/23eD8YNmyYNX36dO/XTU1NVkJCglVUVNTs/LvvvtsaM2aMz1h6err1//1//59lWZbl8Xgsp9NpPfHEE977a2trraioKOull14KwA78x9/nojnbt2+3JFmHDx/2z6IDJFDn4ujRo1bv3r2tvXv3Wn369AmZ+AfifEyYMMG65557LmtdvOz/Fb7qzwk356v+nLCki/6c8NVXX627775bR44cCeyGLlOgzock7d+/X48++qheeOGFgP9ea38I5Ln439xud8D/0MelaGhoUEVFhc8+7Ha7srKyWtxHeXm5z3xJys7O9s7/6KOP5HK5fOY4HA6lp6e3em6CLRDnojlut1s2m+2iv1TamQTqXHg8Ht17772aO3eurrvuusAsPgACcT48Ho/+/Oc/65prrlF2drZ69uyp9PR0rVmz5pLW1vn/P2yQdcSfE168eLFefvll1dTU6Oabb1ZDQ0NA9uIPgTof9fX1ys3N1RNPPKGkpKSArN3fAnUu/retW7dq1apVmjZtml/W7Q8nT55UU1OT4uPjfcZb24fL5Wp1/oX/vZTv2RkE4lz8b2fPntVDDz2k3NzcTv2HbwJ1Lh5//HGFh4frgQce8P+iAygQ56O6ulqnTp3SY489pltvvVV//etfdeedd2rcuHHasmVLm9dmbPwLCgpks9lavR08eDBgj//Pf044Oztbw4cP10svvaT3339fmzdvDtjjtiTY56OwsFApKSm65557AvYYbRXsc/HP9u7dq7Fjx2rBggXePzsNszQ2Nuruu++WZVl67rnngr2cDldRUaElS5Zo+fLlstlswV5O0Hk8HknS2LFjNXv2bKWmpqqgoEC33367iouL2/x9gvpX/YIpVP+ccKAE+3xs2rRJe/bs0csvvyzp/FXfktSjRw898sgjWrhwYTt3dumCfS4u2L9/vzIzMzVt2jTNmzevXXsJlB49eigsLOyiT2w0t48LnE5nq/Mv/G9VVZX3/z4ufJ2amurH1ftXIM7FBRfCf/jwYW3atKlTP+uXAnMu3nzzTVVXV/u8ItjU1KQ5c+Zo8eLF+vjjj/27CT8KxPno0aOHwsPDfdohnf8DeH/729/avrjLumLAABcu6nrnnXe8Y6+99lqbLup6+eWXvWMHDx70uajr0KFDliSfC/4+/fRTy263W6+99lqAdnP5AnU+PvjgA2vPnj3e2/PPP29JsrZu3XpJV7B2pECdC8uyrL1791o9e/a05s6dG7gNXKZhw4ZZM2bM8H7d1NRk9e7du9ULmW6//XafsYyMjIsu+PvP//xP7/1utztkLvjz57mwLMtqaGiwcnJyrOuuu86qrq4OzMIDwN/n4uTJkz7/v2HPnj1WQkKC9dBDD1kHDx4M3Eb8JBD/bWRkZFx0wV9OTs5XftLonxH/Nrj11lutb33rW9a2bdusv/3tb9aAAQN8TvLRo0eta6+91tq2bZt37Ic//KGVlJRkbdq0yXrnnXesjIwMKyMjw+f7jh071rruuuust956y9qzZ491++23WwMHDrQaGho6bG/tEajz8c82b97c6a/2t6zAnIs9e/ZYcXFx1j333GN98skn3ltnC8DKlSutqKgoa/ny5db+/futadOmWbGxsZbL5bIsy7Luvfdeq6CgwDv/rbfessLDw63//M//v737CYmqi8M4/gyDN5kGG5MYsLCBagQTyk0tIkzauNLGhCGCKVtGuGm2MdBCN+9CcxEEMUYbcaEFGu1U3FgSRKL9gyZmI0pFoRhjjL8WLw1N9oLzOqPZ/X7gLubew+Gcw4Fn7uXce/6xly9fWiKR+O2rfoFAwB4+fGgvXryw1tbWHfOqXzHHYnV11VpaWuzAgQP2/PnzvHmQyWS2pY8bVYp58audtNq/FOMxNDRkZWVldufOHXv79q319fWZ1+u1ycnJDbeL8N+Ajx8/2oULF8zv91tFRYV1dHTY0tJS7noqlTJJNjY2ljv39etXu3r1qlVWVprP57NIJGLz8/N59X758sWuXLligUDA9u7da5FIxNLp9FZ1638r1Xj8bKeEfynGIpFImKR1x8GDB7ewZxvT19dnNTU15jiOnThxwqampnLXGhsb7dKlS3nlBwcHLRwOm+M4dvToURsdHc27vra2Zjdu3LBgMGi7du2ys2fP2uvXr7eiK5tWzLH4MW9+d/w8l/5UxZ4Xv9pJ4W9WmvG4e/euHT582MrLy+3YsWP24MGDgtrElr4AALiMa1f7AwDgVoQ/AAAuQ/gDAOAyhD8AAC5D+AMA4DKEPwAALkP4AwDgMoQ/AAAuQ/gD2LTx8XF5PB59/vx5u5sCYAP4wh+Agp05c0bHjx9XT0+PJGl1dVWfPn1SMBhk21VgB3Dtlr4AisdxnP/cohTAn4fH/gAKcvnyZU1MTKi3t1cej0cej0f9/f15j/37+/sVCAQ0MjKi2tpa+Xw+tbe3a2VlRffu3VMoFFJlZaU6OzuVzWZzdWcyGcXjce3fv1+7d+/WyZMnNT4+vj0dBf5i3PkDKEhvb6/evHmj+vp63bx5U5I0Ozu7rtzKyopu3bqlgYEBLS0tqa2tTZFIRIFAQI8ePdK7d+90/vx5nTp1StFoVJJ07do1zc3NaWBgQNXV1RoeHlZzc7NmZmZ05MiRLe0n8Dcj/AEUZM+ePXIcRz6fL/eo/9WrV+vKffv2Tbdv39ahQ4ckSe3t7bp//74WFhbk9/tVV1enpqYmjY2NKRqNKp1OK5lMKp1Oq7q6WpIUj8f1+PFjJZNJdXV1bV0ngb8c4Q+gJHw+Xy74JSkYDCoUCsnv9+edW1xclCTNzMwom80qHA7n1ZPJZFRVVbU1jQZcgvAHUBJlZWV5vz0ez2/Pra2tSZKWl5fl9Xr17Nkzeb3evHI//2EAsHmEP4CCOY6Tt1CvGBoaGpTNZrW4uKjTp08XtW4A+VjtD6BgoVBIT5480fv37/Xhw4fc3ftmhMNhXbx4UbFYTENDQ0qlUnr69Km6u7s1OjpahFYD+IHwB1CweDwur9eruro67du3T+l0uij1JpNJxWIxXb9+XbW1tTp37pymp6dVU1NTlPoB/Isv/AEA4DLc+QMA4DKEPwAALkP4AwDgMoQ/AAAuQ/gDAOAyhD8AAC5D+AMA4DKEPwAALkP4AwDgMoQ/AAAuQ/gDAOAy3wFH4YZ8La25MgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "RE(simple_scan_saving(det2,motor,noisy_det),bec)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8e3216f2-1fd2-4d0f-a950-2e259830a99f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tests/plan_stubs/test_motor_plan.py b/tests/plan_stubs/test_motor_plan.py new file mode 100644 index 0000000..cd9d0b4 --- /dev/null +++ b/tests/plan_stubs/test_motor_plan.py @@ -0,0 +1,26 @@ +import pytest +from bluesky.run_engine import RunEngine +from ophyd_async.core import DeviceCollector, set_mock_value +from ophyd_async.epics.motion import Motor + +from p99_bluesky.plan_stubs.motor_plan import check_within_limit + + +@pytest.fixture +async def mock_motor(): + async with DeviceCollector(mock=True): + mock_motor = Motor("BLxx-MO-xx-01:", "mock_motor") + yield mock_motor + + +def test_check_within_limit(mock_motor: Motor, RE: RunEngine): + set_mock_value(mock_motor.low_limit_travel, -10) + set_mock_value(mock_motor.high_limit_travel, 20) + + with pytest.raises(ValueError): + RE(check_within_limit([-11], mock_motor)) + + with pytest.raises(ValueError): + RE(check_within_limit([21], mock_motor)) + + RE(check_within_limit([18], mock_motor)) diff --git a/tests/test_fast_scan.py b/tests/test_fast_scan.py index e69de29..203cc82 100644 --- a/tests/test_fast_scan.py +++ b/tests/test_fast_scan.py @@ -0,0 +1,100 @@ +from pathlib import Path + +import pytest +from bluesky.run_engine import RunEngine +from ophyd.sim import SynPeriodicSignal +from ophyd_async.core import ( + DeviceCollector, + set_mock_value, +) +from ophyd_async.core.mock_signal_utils import ( + get_mock_put, +) + +from p99_bluesky.devices.andor2Ad import Andor2Ad, StaticDirectoryProviderPlus +from p99_bluesky.devices.stages import ThreeAxisStage +from p99_bluesky.plans.fast_scan import fast_scan_1d + +# Long enough for multiple asyncio event loop cycles to run so +# all the tasks have a chance to run +A_BIT = 0.001 + +CURRENT_DIRECTORY = Path(__file__).parent + + +async def make_andor2(prefix: str = "") -> Andor2Ad: + dp = StaticDirectoryProviderPlus(CURRENT_DIRECTORY, "test-") + + async with DeviceCollector(mock=True): + detector = Andor2Ad(prefix, dp, "andor2") + return detector + + +@pytest.fixture +async def andor2() -> Andor2Ad: + andor2 = await make_andor2(prefix="TEST") + + set_mock_value(andor2._controller.driver.array_size_x, 10) + set_mock_value(andor2._controller.driver.array_size_y, 20) + set_mock_value(andor2.hdf.file_path_exists, True) + set_mock_value(andor2.hdf.num_captured, 0) + set_mock_value(andor2.hdf.file_path, str(CURRENT_DIRECTORY)) + # assert "test-andor2-hdf0" == await andor2.hdf.file_name.get_value() + set_mock_value( + andor2.hdf.full_file_name, str(CURRENT_DIRECTORY) + "/test-andor2-hdf0" + ) + return andor2 + + +@pytest.fixture +async def sim_motor(): + async with DeviceCollector(mock=True): + sim_motor = ThreeAxisStage("BLxxI-MO-TABLE-01:X", name="sim_motor") + set_mock_value(sim_motor.x.velocity, 2.78) + set_mock_value(sim_motor.x.high_limit_travel, 8.168) + set_mock_value(sim_motor.x.low_limit_travel, -8.888) + set_mock_value(sim_motor.x.user_readback, 1) + set_mock_value(sim_motor.x.motor_egu, "mm") + set_mock_value(sim_motor.x.motor_done_move, True) + set_mock_value(sim_motor.y.motor_egu, "mm") + set_mock_value(sim_motor.y.high_limit_travel, 5.168) + set_mock_value(sim_motor.y.low_limit_travel, -5.888) + set_mock_value(sim_motor.y.user_readback, 0) + set_mock_value(sim_motor.y.motor_egu, "mm") + set_mock_value(sim_motor.y.velocity, 2.88) + set_mock_value(sim_motor.y.motor_done_move, True) + yield sim_motor + + +async def test_fast_scan_1d_fail_limit_check( + sim_motor: ThreeAxisStage, RE: RunEngine, andor2: Andor2Ad +): + det = SynPeriodicSignal(name="rand", labels={"detectors"}) + with pytest.raises(ValueError): + RE(fast_scan_1d([det], sim_motor.x, 8, 20, 10)) + + with pytest.raises(ValueError): + RE(fast_scan_1d([det], sim_motor.x, -208, 0, 10)) + + assert 0 == get_mock_put(sim_motor.x.user_setpoint).call_count + + +async def test_fast_scan_1d_success( + sim_motor: ThreeAxisStage, RE: RunEngine, andor2: Andor2Ad +): + det = SynPeriodicSignal(name="rand", labels={"detectors"}) + RE(fast_scan_1d([det], sim_motor.x, 5, -1, 10)) + + assert 2.78 == await sim_motor.x.velocity.get_value() + assert 2 == get_mock_put(sim_motor.x.user_setpoint).call_count + assert 2 == get_mock_put(sim_motor.x.velocity).call_count + + +# async def test_fast_scan_grid_success( +# sim_motor: ThreeAxisStage, RE: RunEngine, andor2: Andor2Ad +# ): +# RE(fast_scan_grid([det], sim_motor.x, 5, -1, 10, sim_motor.y, 5, -1, 10)) + +# assert 2.78 == await sim_motor.y.velocity.get_value() +# assert 20 == get_mock_put(sim_motor.y.user_setpoint).call_count +# assert 20 == get_mock_put(sim_motor.y.velocity).call_count From 662ed2b2d80d63145dea07dd4a185cfd2913cb76 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Fri, 5 Jul 2024 17:54:27 +0000 Subject: [PATCH 06/11] More tests --- pyproject.toml | 2 +- src/p99_bluesky/plans/fast_scan.py | 24 +- tests/conftest.py | 35 +- tests/epics/soft_ioc/softsignal.py | 2 +- tests/jupyter_tests/fast_scan_test.ipynb | 847 +---------------------- tests/test_fast_scan.py | 25 +- tests/test_p99_stages_softioc.py | 26 +- 7 files changed, 78 insertions(+), 883 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2291d5f..fe4781e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -123,7 +123,7 @@ allowlist_externals = commands = pre-commit: pre-commit run --all-files {posargs} type-checking: pyright src tests {posargs} - tests: pytest --cov=p99_bluesky --cov-report term --cov-report xml:cov.xml {posargs} + tests: pytest --cov=p99_bluesky --cov-report term --cov-report xml:cov.xml {posargs} docs: sphinx-{posargs:build -EW --keep-going} -T docs build/html """ diff --git a/src/p99_bluesky/plans/fast_scan.py b/src/p99_bluesky/plans/fast_scan.py index 6ac4ea2..d7a0c7b 100644 --- a/src/p99_bluesky/plans/fast_scan.py +++ b/src/p99_bluesky/plans/fast_scan.py @@ -1,3 +1,5 @@ +from typing import Any + import bluesky.plan_stubs as bps import bluesky.preprocessors as bpp from blueapi.core import MsgGenerator @@ -5,14 +7,13 @@ finalize_wrapper, ) from ophyd_async.epics.motion import Motor -from ophyd_async.protocols import AsyncReadable from p99_bluesky.log import LOGGER from p99_bluesky.plan_stubs.motor_plan import check_within_limit def fast_scan_1d( - dets: list[AsyncReadable], + dets: list[Any], motor: Motor, start: float, end: float, @@ -39,7 +40,7 @@ def fast_scan_1d( @bpp.stage_decorator(dets) @bpp.run_decorator() def inner_fast_scan_1d( - dets: list[AsyncReadable], + dets: list[Any], motor: Motor, start: float, end: float, @@ -55,7 +56,7 @@ def inner_fast_scan_1d( def fast_scan_grid( - dets: list[AsyncReadable], + dets: list[Any], step_motor: Motor, step_start: float, step_end: float, @@ -87,7 +88,7 @@ def fast_scan_grid( @bpp.stage_decorator(dets) @bpp.run_decorator() def inner_fast_scan_grid( - dets: list[AsyncReadable], + dets: list[Any], step_motor: Motor, step_start: float, step_end: float, @@ -109,19 +110,22 @@ def inner_fast_scan_grid( yield from _fast_scan_1d( dets + [step_motor], scan_motor, scan_start, scan_end, motor_speed ) - current_step += step_size + step_counter += 1 + current_step = step_start + step_size * step_counter yield from bps.mv(step_motor, current_step) yield from _fast_scan_1d( dets + [step_motor], scan_motor, scan_end, scan_start, motor_speed ) - current_step += step_size + step_counter += 1 + current_step = step_start + step_size * step_counter else: while num_step >= step_counter: yield from bps.mv(step_motor, current_step) yield from _fast_scan_1d( dets + [step_motor], scan_motor, scan_start, scan_end, motor_speed ) - current_step += step_size + step_counter += 1 + current_step = step_start + step_size * step_counter yield from finalize_wrapper( plan=inner_fast_scan_grid( @@ -141,7 +145,7 @@ def inner_fast_scan_grid( def _fast_scan_1d( - dets: list[AsyncReadable], + dets: list[Any], motor: Motor, start: float, end: float, @@ -182,7 +186,7 @@ def _fast_scan_1d( old_speed = yield from bps.rd(motor.velocity) def inner_fast_scan_1d( - dets: list[AsyncReadable], + dets: list[Any], motor: Motor, start: float, end: float, diff --git a/tests/conftest.py b/tests/conftest.py index 7988b94..ff0f6ab 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -8,8 +8,11 @@ import pytest from bluesky.run_engine import RunEngine +from ophyd_async.core import DeviceCollector from super_state_machine.errors import TransitionError +from soft_motor import SoftThreeAxisStage + RECORD = str(Path(__file__).parent / "panda" / "db" / "panda.db") INCOMPLETE_BLOCK_RECORD = str( Path(__file__).parent / "panda" / "db" / "incomplete_block_panda.db" @@ -20,7 +23,7 @@ ) -@pytest.fixture(scope="function") +@pytest.fixture(scope="session") def RE(request): loop = asyncio.new_event_loop() loop.set_debug(True) @@ -91,3 +94,33 @@ async def inner_coroutine(): raise ValueError() return inner_coroutine + + +A_BIT = 0.5 + + +@pytest.fixture(scope="session") +async def fake_99(): + p = subprocess.Popen( + [ + "python", + "tests/epics/soft_ioc/p99_softioc.py", + ], + ) + + # Give the server time to start + await asyncio.sleep(A_BIT) + # Check it started successfully + print("setup") + yield p + p.terminate() + # Shut it down at the + p.wait() + await asyncio.sleep(A_BIT) + + +@pytest.fixture(scope="session") +def xyz_motor(fake_99): + with DeviceCollector(mock=False): + xyz_motor = SoftThreeAxisStage("p99-MO-STAGE-02:", name="xyz_motor") + yield xyz_motor diff --git a/tests/epics/soft_ioc/softsignal.py b/tests/epics/soft_ioc/softsignal.py index 72ff47a..f00ce06 100644 --- a/tests/epics/soft_ioc/softsignal.py +++ b/tests/epics/soft_ioc/softsignal.py @@ -53,7 +53,7 @@ async def soft_motor(prefix: str, name: str, unit: str = "mm"): ) vel = builder.aOut( name + "VELO", - initial_value=1.5, + initial_value=1000, ) dmov = builder.boolOut( name + "DMOV", diff --git a/tests/jupyter_tests/fast_scan_test.ipynb b/tests/jupyter_tests/fast_scan_test.ipynb index 3b9a8e6..fde9c02 100644 --- a/tests/jupyter_tests/fast_scan_test.ipynb +++ b/tests/jupyter_tests/fast_scan_test.ipynb @@ -2,28 +2,10 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "58fe3420-313d-447a-bb09-7f9b85703169", "metadata": {}, - "outputs": [ - { - "ename": "NotConnected", - "evalue": "\nmock_sampleAngleStage: NotConnected:\n theta: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITETHETA:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITETHETA\n roll: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEROLL:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEROLL\n pitch: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEPITCH:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEPITCH\nmock_filter_wheel: NotConnected:\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:MP:SELECT\nxyz_motor: NotConnected:\n x: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:X.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:XVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:XRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:XVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:XVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:XACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:X.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:XRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:XDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:XLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:XHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:XSTOP\n y: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:Y.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:YVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:YRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:YVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:YVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:YACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:Y.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:YRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:YDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:YLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:YHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:YSTOP\n z: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:Z.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:ZVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:ZRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:ZVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:ZVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:ZACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:Z.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:ZRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:ZDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:ZLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:ZHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:ZSTOP\n", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNotConnected\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[1], line 27\u001b[0m\n\u001b[1;32m 25\u001b[0m db \u001b[38;5;241m=\u001b[39m Broker\u001b[38;5;241m.\u001b[39mnamed(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtemp\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 26\u001b[0m RE\u001b[38;5;241m.\u001b[39msubscribe(db\u001b[38;5;241m.\u001b[39minsert)\n\u001b[0;32m---> 27\u001b[0m \u001b[38;5;28;43;01mwith\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mDeviceCollector\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmock\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m:\u001b[49m\n\u001b[1;32m 28\u001b[0m \u001b[43m \u001b[49m\u001b[43mmock_sampleAngleStage\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mSampleAngleStage\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 29\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mp99-MO-TABLE-01:\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmock_sampleAngleStage\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\n\u001b[1;32m 30\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 31\u001b[0m \u001b[43m \u001b[49m\u001b[43mmock_filter_wheel\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mFilterMotor\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 32\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mp99-MO-STAGE-02:MP:SELECT\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmock_filter_wheel\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\n\u001b[1;32m 33\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/ophyd_async/core/device.py:219\u001b[0m, in \u001b[0;36mDeviceCollector.__exit__\u001b[0;34m(self, type_, value, traceback)\u001b[0m\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_objects_on_exit \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_caller_locals()\n\u001b[1;32m 218\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 219\u001b[0m fut \u001b[38;5;241m=\u001b[39m \u001b[43mcall_in_bluesky_event_loop\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_on_exit\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 220\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m:\n\u001b[1;32m 221\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m NotConnected(\n\u001b[1;32m 222\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCould not connect devices. Is the bluesky event loop running? See \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 223\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttps://blueskyproject.io/ophyd-async/main/\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 224\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124muser/explanations/event-loop-choice.html for more info.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 225\u001b[0m )\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/bluesky/run_engine.py:2782\u001b[0m, in \u001b[0;36mcall_in_bluesky_event_loop\u001b[0;34m(coro, timeout)\u001b[0m\n\u001b[1;32m 2777\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mBluesky event loop not running\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 2778\u001b[0m fut \u001b[38;5;241m=\u001b[39m asyncio\u001b[38;5;241m.\u001b[39mrun_coroutine_threadsafe(\n\u001b[1;32m 2779\u001b[0m coro,\n\u001b[1;32m 2780\u001b[0m loop\u001b[38;5;241m=\u001b[39m_bluesky_event_loop,\n\u001b[1;32m 2781\u001b[0m )\n\u001b[0;32m-> 2782\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfut\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/usr/local/lib/python3.11/concurrent/futures/_base.py:456\u001b[0m, in \u001b[0;36mFuture.result\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 454\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError()\n\u001b[1;32m 455\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;241m==\u001b[39m FINISHED:\n\u001b[0;32m--> 456\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__get_result\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 457\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 458\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTimeoutError\u001b[39;00m()\n", - "File \u001b[0;32m/usr/local/lib/python3.11/concurrent/futures/_base.py:401\u001b[0m, in \u001b[0;36mFuture.__get_result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 399\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception:\n\u001b[1;32m 400\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 401\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception\n\u001b[1;32m 402\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 403\u001b[0m \u001b[38;5;66;03m# Break a reference cycle with the exception in self._exception\u001b[39;00m\n\u001b[1;32m 404\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/ophyd_async/core/device.py:210\u001b[0m, in \u001b[0;36mDeviceCollector._on_exit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 208\u001b[0m \u001b[38;5;66;03m# Connect to all the devices\u001b[39;00m\n\u001b[1;32m 209\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m connect_coroutines:\n\u001b[0;32m--> 210\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m wait_for_connection(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mconnect_coroutines)\n", - "File \u001b[0;32m/venv/lib/python3.11/site-packages/ophyd_async/core/utils.py:129\u001b[0m, in \u001b[0;36mwait_for_connection\u001b[0;34m(**coros)\u001b[0m\n\u001b[1;32m 122\u001b[0m logging\u001b[38;5;241m.\u001b[39mexception(\n\u001b[1;32m 123\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdevice `\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mname\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m` raised unexpected exception \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 124\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(result)\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 125\u001b[0m exc_info\u001b[38;5;241m=\u001b[39mresult,\n\u001b[1;32m 126\u001b[0m )\n\u001b[1;32m 128\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m exceptions:\n\u001b[0;32m--> 129\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m NotConnected(exceptions)\n", - "\u001b[0;31mNotConnected\u001b[0m: \nmock_sampleAngleStage: NotConnected:\n theta: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITETHETA:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITETHETA\n roll: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEROLL:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEROLL\n pitch: NotConnected:\n read_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEPITCH:RBV\n write_pv: NotConnected: ca://p99-MO-TABLE-01:WRITEPITCH\nmock_filter_wheel: NotConnected:\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:MP:SELECT\nxyz_motor: NotConnected:\n x: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:X.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:XVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:XRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:XVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:XVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:XACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:X.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:XRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:XDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:XLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:XHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:XSTOP\n y: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:Y.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:YVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:YRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:YVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:YVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:YACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:Y.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:YRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:YDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:YLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:YHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:YSTOP\n z: NotConnected:\n motor_egu: NotConnected: ca://p99-MO-STAGE-02:Z.EGU\n velocity: NotConnected: ca://p99-MO-STAGE-02:ZVELO\n user_readback: NotConnected: ca://p99-MO-STAGE-02:ZRBV\n user_setpoint: NotConnected: ca://p99-MO-STAGE-02:ZVAL\n max_velocity: NotConnected: ca://p99-MO-STAGE-02:ZVMAX\n acceleration_time: NotConnected: ca://p99-MO-STAGE-02:ZACCL\n precision: NotConnected: ca://p99-MO-STAGE-02:Z.PREC\n deadband: NotConnected: ca://p99-MO-STAGE-02:ZRDBD\n motor_done_move: NotConnected: ca://p99-MO-STAGE-02:ZDMOV\n low_limit_travel: NotConnected: ca://p99-MO-STAGE-02:ZLLM\n high_limit_travel: NotConnected: ca://p99-MO-STAGE-02:ZHLM\n motor_stop: NotConnected: ca://p99-MO-STAGE-02:ZSTOP\n" - ] - } - ], + "outputs": [], "source": [ "import os \n", "os.chdir(\"/workspaces/p99-bluesky/tests/\")\n", @@ -63,230 +45,10 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "d437b274-146d-4c05-a118-e3e1dbb9a904", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2024-07-03 15:38:34,668 - P99 - INFO - 0.44000000000000006 velocity = 0.8800000000000001.\n", - "2024-07-03 15:38:34,668 - P99 - INFO - xyz_motor-x velocity = 0.8800000000000001.\n", - "2024-07-03 15:38:34,669 - P99 - INFO - xyz_motor-y step size = 0.44000000000000006.\n", - "\n", - "\n", - "Transient Scan ID: 2 Time: 2024-07-03 15:38:34\n", - "Persistent Unique Scan ID: '33be3a82-e337-4c8a-b377-41bf4ca9187c'\n", - "2024-07-03 15:38:34,671 - P99 - INFO - Check xyz_motor-y limits.\n", - "2024-07-03 15:38:34,672 - P99 - INFO - Check xyz_motor-x limits.\n", - "2024-07-03 15:38:36,209 - P99 - INFO - Moving xyz_motor-x to start position = -2.2.\n", - "2024-07-03 15:38:36,219 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", - "2024-07-03 15:38:36,220 - P99 - INFO - Set xyz_motor-x to end position(2.2) and begin scan.\n", - "New stream: 'primary'\n", - "+-----------+------------+------------+-------------+-------------+\n", - "| seq_num | time | noisy_det | xyz_motor-y | xyz_motor-x |\n", - "+-----------+------------+------------+-------------+-------------+\n", - "| 1 | 15:38:36.2 | 0.981 | -2 | -2 |\n", - "| 2 | 15:38:36.4 | 1.015 | -2 | -2 |\n", - "| 3 | 15:38:36.6 | 0.934 | -2 | -1 |\n", - "| 4 | 15:38:36.8 | 0.901 | -2 | -1 |\n", - "| 5 | 15:38:37.0 | 0.986 | -2 | -1 |\n", - "| 6 | 15:38:37.2 | 0.986 | -2 | -0 |\n", - "| 7 | 15:38:37.3 | 0.991 | -2 | -0 |\n", - "| 8 | 15:38:37.5 | 0.965 | -2 | 0 |\n", - "| 9 | 15:38:37.7 | 1.005 | -2 | 1 |\n", - "| 10 | 15:38:37.9 | 1.054 | -2 | 1 |\n", - "| 11 | 15:38:38.1 | 0.996 | -2 | 1 |\n", - "| 12 | 15:38:38.3 | 1.055 | -2 | 2 |\n", - "| 13 | 15:38:38.5 | 1.008 | -2 | 2 |\n", - "2024-07-03 15:38:38,766 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", - "2024-07-03 15:38:38,910 - P99 - INFO - Moving xyz_motor-x to start position = 2.2.\n", - "2024-07-03 15:38:38,919 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", - "2024-07-03 15:38:38,920 - P99 - INFO - Set xyz_motor-x to end position(-2.2) and begin scan.\n", - "| 14 | 15:38:38.9 | 0.966 | -1 | 2 |\n", - "| 15 | 15:38:39.1 | 0.962 | -1 | 2 |\n", - "| 16 | 15:38:39.3 | 0.974 | -1 | 2 |\n", - "| 17 | 15:38:39.5 | 1.042 | -1 | 1 |\n", - "| 18 | 15:38:39.6 | 0.978 | -1 | 1 |\n", - "| 19 | 15:38:39.8 | 0.992 | -1 | 1 |\n", - "| 20 | 15:38:40.0 | 1.026 | -1 | 0 |\n", - "| 21 | 15:38:40.2 | 0.979 | -1 | -0 |\n", - "| 22 | 15:38:40.4 | 1.091 | -1 | -0 |\n", - "| 23 | 15:38:40.6 | 0.915 | -1 | -1 |\n", - "| 24 | 15:38:40.8 | 1.097 | -1 | -1 |\n", - "| 25 | 15:38:41.0 | 1.014 | -1 | -1 |\n", - "| 26 | 15:38:41.1 | 0.993 | -1 | -2 |\n", - "| 27 | 15:38:41.3 | 0.916 | -1 | -2 |\n", - "2024-07-03 15:38:41,546 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", - "2024-07-03 15:38:41,685 - P99 - INFO - Moving xyz_motor-x to start position = -2.2.\n", - "2024-07-03 15:38:41,694 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", - "2024-07-03 15:38:41,695 - P99 - INFO - Set xyz_motor-x to end position(2.2) and begin scan.\n", - "| 28 | 15:38:41.6 | 1.048 | -1 | -2 |\n", - "| 29 | 15:38:41.8 | 0.929 | -1 | -2 |\n", - "| 30 | 15:38:42.0 | 0.950 | -1 | -2 |\n", - "| 31 | 15:38:42.2 | 0.967 | -1 | -1 |\n", - "| 32 | 15:38:42.4 | 1.042 | -1 | -1 |\n", - "| 33 | 15:38:42.6 | 0.967 | -1 | -1 |\n", - "| 34 | 15:38:42.8 | 1.051 | -1 | -0 |\n", - "| 35 | 15:38:42.9 | 1.073 | -1 | 0 |\n", - "| 36 | 15:38:43.1 | 1.001 | -1 | 0 |\n", - "| 37 | 15:38:43.3 | 0.987 | -1 | 1 |\n", - "| 38 | 15:38:43.5 | 1.094 | -1 | 1 |\n", - "| 39 | 15:38:43.7 | 1.057 | -1 | 1 |\n", - "| 40 | 15:38:43.9 | 0.920 | -1 | 2 |\n", - "| 41 | 15:38:44.1 | 0.995 | -1 | 2 |\n", - "2024-07-03 15:38:44,304 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", - "2024-07-03 15:38:44,443 - P99 - INFO - Moving xyz_motor-x to start position = 2.2.\n", - "2024-07-03 15:38:44,453 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", - "2024-07-03 15:38:44,454 - P99 - INFO - Set xyz_motor-x to end position(-2.2) and begin scan.\n", - "| 42 | 15:38:44.4 | 1.036 | -0 | 2 |\n", - "| 43 | 15:38:44.6 | 0.979 | -0 | 2 |\n", - "| 44 | 15:38:44.8 | 1.085 | -0 | 2 |\n", - "| 45 | 15:38:45.0 | 0.906 | -0 | 1 |\n", - "| 46 | 15:38:45.1 | 1.064 | -0 | 1 |\n", - "| 47 | 15:38:45.3 | 1.053 | -0 | 1 |\n", - "| 48 | 15:38:45.5 | 0.957 | -0 | 0 |\n", - "| 49 | 15:38:45.7 | 0.946 | -0 | -0 |\n", - "+-----------+------------+------------+-------------+-------------+\n", - "| seq_num | time | noisy_det | xyz_motor-y | xyz_motor-x |\n", - "+-----------+------------+------------+-------------+-------------+\n", - "| 50 | 15:38:45.9 | 0.946 | -0 | -0 |\n", - "| 51 | 15:38:46.1 | 0.927 | -0 | -1 |\n", - "| 52 | 15:38:46.2 | 1.060 | -0 | -1 |\n", - "| 53 | 15:38:46.4 | 0.918 | -0 | -1 |\n", - "| 54 | 15:38:46.6 | 1.064 | -0 | -2 |\n", - "| 55 | 15:38:46.8 | 0.918 | -0 | -2 |\n", - "2024-07-03 15:38:47,035 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", - "2024-07-03 15:38:47,175 - P99 - INFO - Moving xyz_motor-x to start position = -2.2.\n", - "2024-07-03 15:38:47,185 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", - "2024-07-03 15:38:47,186 - P99 - INFO - Set xyz_motor-x to end position(2.2) and begin scan.\n", - "| 56 | 15:38:47.1 | 0.919 | 0 | -2 |\n", - "| 57 | 15:38:47.3 | 1.091 | 0 | -2 |\n", - "| 58 | 15:38:47.5 | 1.095 | 0 | -2 |\n", - "| 59 | 15:38:47.7 | 1.076 | 0 | -1 |\n", - "| 60 | 15:38:47.9 | 0.910 | 0 | -1 |\n", - "| 61 | 15:38:48.1 | 0.906 | 0 | -1 |\n", - "| 62 | 15:38:48.3 | 0.918 | 0 | -0 |\n", - "| 63 | 15:38:48.5 | 0.947 | 0 | 0 |\n", - "| 64 | 15:38:48.7 | 0.943 | 0 | 0 |\n", - "| 65 | 15:38:48.8 | 0.920 | 0 | 1 |\n", - "| 66 | 15:38:49.0 | 0.970 | 0 | 1 |\n", - "| 67 | 15:38:49.2 | 1.079 | 0 | 1 |\n", - "| 68 | 15:38:49.4 | 1.056 | 0 | 2 |\n", - "| 69 | 15:38:49.6 | 1.042 | 0 | 2 |\n", - "2024-07-03 15:38:49,840 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", - "2024-07-03 15:38:49,983 - P99 - INFO - Moving xyz_motor-x to start position = 2.2.\n", - "2024-07-03 15:38:49,992 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", - "2024-07-03 15:38:49,993 - P99 - INFO - Set xyz_motor-x to end position(-2.2) and begin scan.\n", - "| 70 | 15:38:49.9 | 0.985 | 0 | 2 |\n", - "| 71 | 15:38:50.1 | 1.018 | 0 | 2 |\n", - "| 72 | 15:38:50.3 | 1.003 | 0 | 2 |\n", - "| 73 | 15:38:50.5 | 0.944 | 0 | 1 |\n", - "| 74 | 15:38:50.7 | 0.980 | 0 | 1 |\n", - "| 75 | 15:38:50.9 | 0.904 | 0 | 1 |\n", - "| 76 | 15:38:51.1 | 0.976 | 0 | 0 |\n", - "| 77 | 15:38:51.3 | 0.970 | 0 | -0 |\n", - "| 78 | 15:38:51.5 | 0.962 | 0 | -0 |\n", - "| 79 | 15:38:51.7 | 0.964 | 0 | -1 |\n", - "| 80 | 15:38:51.8 | 1.019 | 0 | -1 |\n", - "| 81 | 15:38:52.0 | 0.950 | 0 | -1 |\n", - "| 82 | 15:38:52.2 | 1.082 | 0 | -2 |\n", - "| 83 | 15:38:52.4 | 1.031 | 0 | -2 |\n", - "2024-07-03 15:38:52,637 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", - "2024-07-03 15:38:52,771 - P99 - INFO - Moving xyz_motor-x to start position = -2.2.\n", - "2024-07-03 15:38:52,780 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", - "2024-07-03 15:38:52,781 - P99 - INFO - Set xyz_motor-x to end position(2.2) and begin scan.\n", - "| 84 | 15:38:52.7 | 0.978 | 1 | -2 |\n", - "| 85 | 15:38:52.9 | 1.100 | 1 | -2 |\n", - "| 86 | 15:38:53.1 | 1.015 | 1 | -2 |\n", - "| 87 | 15:38:53.3 | 0.999 | 1 | -1 |\n", - "| 88 | 15:38:53.5 | 1.058 | 1 | -1 |\n", - "| 89 | 15:38:53.7 | 0.984 | 1 | -0 |\n", - "| 90 | 15:38:53.9 | 1.088 | 1 | -0 |\n", - "| 91 | 15:38:54.1 | 0.911 | 1 | 0 |\n", - "| 92 | 15:38:54.3 | 0.970 | 1 | 1 |\n", - "| 93 | 15:38:54.5 | 1.040 | 1 | 1 |\n", - "| 94 | 15:38:54.7 | 1.017 | 1 | 1 |\n", - "| 95 | 15:38:54.9 | 0.941 | 1 | 2 |\n", - "| 96 | 15:38:55.1 | 1.082 | 1 | 2 |\n", - "2024-07-03 15:38:55,343 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", - "2024-07-03 15:38:55,481 - P99 - INFO - Moving xyz_motor-x to start position = 2.2.\n", - "2024-07-03 15:38:55,491 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", - "2024-07-03 15:38:55,491 - P99 - INFO - Set xyz_motor-x to end position(-2.2) and begin scan.\n", - "| 97 | 15:38:55.4 | 0.915 | 1 | 2 |\n", - "| 98 | 15:38:55.6 | 1.032 | 1 | 2 |\n", - "| 99 | 15:38:55.8 | 0.970 | 1 | 2 |\n", - "+-----------+------------+------------+-------------+-------------+\n", - "| seq_num | time | noisy_det | xyz_motor-y | xyz_motor-x |\n", - "+-----------+------------+------------+-------------+-------------+\n", - "| 100 | 15:38:56.0 | 1.086 | 1 | 1 |\n", - "| 101 | 15:38:56.2 | 1.079 | 1 | 1 |\n", - "| 102 | 15:38:56.4 | 0.904 | 1 | 1 |\n", - "| 103 | 15:38:56.6 | 0.947 | 1 | 0 |\n", - "| 104 | 15:38:56.8 | 1.045 | 1 | -0 |\n", - "| 105 | 15:38:57.0 | 1.043 | 1 | -0 |\n", - "| 106 | 15:38:57.1 | 1.050 | 1 | -1 |\n", - "| 107 | 15:38:57.3 | 1.024 | 1 | -1 |\n", - "| 108 | 15:38:57.5 | 1.036 | 1 | -1 |\n", - "| 109 | 15:38:57.7 | 1.054 | 1 | -2 |\n", - "| 110 | 15:38:57.9 | 0.903 | 1 | -2 |\n", - "2024-07-03 15:38:58,133 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", - "2024-07-03 15:38:58,276 - P99 - INFO - Moving xyz_motor-x to start position = -2.2.\n", - "2024-07-03 15:38:58,286 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", - "2024-07-03 15:38:58,286 - P99 - INFO - Set xyz_motor-x to end position(2.2) and begin scan.\n", - "| 111 | 15:38:58.2 | 0.958 | 2 | -2 |\n", - "| 112 | 15:38:58.4 | 1.036 | 2 | -2 |\n", - "| 113 | 15:38:58.6 | 0.916 | 2 | -2 |\n", - "| 114 | 15:38:58.8 | 1.082 | 2 | -1 |\n", - "| 115 | 15:38:59.0 | 0.939 | 2 | -1 |\n", - "| 116 | 15:38:59.2 | 1.097 | 2 | -1 |\n", - "| 117 | 15:38:59.4 | 1.028 | 2 | -0 |\n", - "| 118 | 15:38:59.6 | 1.063 | 2 | 0 |\n", - "| 119 | 15:38:59.8 | 1.002 | 2 | 0 |\n", - "| 120 | 15:39:00.0 | 1.023 | 2 | 1 |\n", - "| 121 | 15:39:00.2 | 0.963 | 2 | 1 |\n", - "| 122 | 15:39:00.4 | 0.965 | 2 | 1 |\n", - "| 123 | 15:39:00.6 | 0.975 | 2 | 2 |\n", - "| 124 | 15:39:00.8 | 1.033 | 2 | 2 |\n", - "2024-07-03 15:39:01,004 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", - "2024-07-03 15:39:01,147 - P99 - INFO - Moving xyz_motor-x to start position = 2.2.\n", - "2024-07-03 15:39:01,157 - P99 - INFO - Set xyz_motor-x speed = 0.8800000000000001.\n", - "2024-07-03 15:39:01,158 - P99 - INFO - Set xyz_motor-x to end position(-2.2) and begin scan.\n", - "| 125 | 15:39:01.1 | 1.057 | 2 | 2 |\n", - "| 126 | 15:39:01.3 | 1.055 | 2 | 2 |\n", - "| 127 | 15:39:01.5 | 0.949 | 2 | 2 |\n", - "| 128 | 15:39:01.7 | 1.067 | 2 | 1 |\n", - "| 129 | 15:39:01.9 | 1.036 | 2 | 1 |\n", - "| 130 | 15:39:02.1 | 1.009 | 2 | 1 |\n", - "| 131 | 15:39:02.2 | 1.026 | 2 | 0 |\n", - "| 132 | 15:39:02.4 | 1.040 | 2 | -0 |\n", - "| 133 | 15:39:02.6 | 1.065 | 2 | -0 |\n", - "| 134 | 15:39:02.8 | 1.028 | 2 | -1 |\n", - "| 135 | 15:39:03.0 | 0.996 | 2 | -1 |\n", - "| 136 | 15:39:03.2 | 0.915 | 2 | -1 |\n", - "| 137 | 15:39:03.4 | 0.917 | 2 | -2 |\n", - "| 138 | 15:39:03.6 | 0.907 | 2 | -2 |\n", - "2024-07-03 15:39:03,830 - P99 - INFO - Clean up: setting motor speed to 1.5.\n", - "+-----------+------------+------------+-------------+-------------+\n", - "generator stxm_fast ['33be3a82'] (scan num: 2)\n", - "\n", - "\n", - "\n", - "2024-07-03 15:39:04,124 - P99 - INFO - Clean up\n" - ] - }, - { - "data": { - "image/png": "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zdibW+A1KON14DUQeB3KeB2CuwbzjfgFFvwREREZhsGfiIjIMAz+AUin07jjjjuQTqejPpXI8BqU8TrwGgi8DmW8DnJcAxb8ERERGYYjfyIiIsMw+BMRERmGwZ+IiMgwDP5ERESGYfD32X333Ydjjz0WDQ0NOPfcc7F9+/aoTylUX/rSl2BZ1rRfp5xyStSnFbht27bhgx/8IJYvXw7LsvDEE09M+3PbtnH77bdj2bJlaGxsxCWXXILf/va30ZxsQBa6Btdff/2Me+Oyyy6L5mQDsnHjRqxZswatra3o6enBFVdcgddff33a90xOTmLdunXo6upCS0sLPvzhD+PQoUMRnXEwKrkOa9eunXE/fOYzn4nojIOxadMmnH766U4zn/POOw8//vGPnT+P8l5g8PfRI488gltvvRV33HEHXn75ZZxxxhl4//vfj97e3qhPLVTvfOc7ceDAAefXc889F/UpBW58fBxnnHEG7rvvvln//O///u9xzz334P7778fPf/5zNDc34/3vfz8mJydDPtPgLHQNAOCyyy6bdm98//vfD/EMg7d161asW7cOL774Ip5++mnk83lceumlGB8fd77nlltuwb/+67/in//5n7F161bs378fV111VYRn7b9KrgMA3HDDDdPuh7//+7+P6IyDsWLFCnz5y1/Gjh078NJLL+FP/uRP8Gd/9mf49a9/DSDie8Em37z73e+2161b5/y+WCzay5cvtzdu3BjhWYXrjjvusM8444yoTyNSAOzHH3/c+X2pVLKXLl1qf+UrX3G+NjQ0ZKfTafv73/9+BGcYvCOvgW3b9nXXXWf/2Z/9WSTnE5Xe3l4bgL1161bbtsv/7slk0v7nf/5n53tee+01G4D9wgsvRHWagTvyOti2bb/3ve+1/+qv/iq6k4rIokWL7AceeCDye4Ejf5/kcjns2LEDl1xyifO1WCyGSy65BC+88EKEZxa+3/72t1i+fDmOO+44fOxjH8PevXujPqVI7dmzBwcPHpx2b7S3t+Pcc8817t549tln0dPTg5NPPhk33ngj+vv7oz6lQA0PDwMAOjs7AQA7duxAPp+fdi+ccsopOProo7W+F468DsL//t//G93d3Vi9ejU2bNiATCYTxemFolgs4uGHH8b4+DjOO++8yO8Fbuzjk76+PhSLRSxZsmTa15csWYLdu3dHdFbhO/fcc7F582acfPLJOHDgAO6880788R//MXbt2oXW1taoTy8SBw8eBIBZ7w3xZya47LLLcNVVV2HVqlV488038cUvfhGXX345XnjhBcTj8ahPz3elUgk333wzLrjgAqxevRpA+V5IpVLo6OiY9r063wuzXQcA+C//5b/gmGOOwfLly/HLX/4S/+2//Te8/vrreOyxxyI8W//96le/wnnnnYfJyUm0tLTg8ccfx6mnnoqdO3dGei8w+JOvLr/8cue/Tz/9dJx77rk45phj8Oijj+LTn/50hGdGUfvoRz/q/Pdpp52G008/HccffzyeffZZXHzxxRGeWTDWrVuHXbt2GVHzMp+5rsOf//mfO/992mmnYdmyZbj44ovx5ptv4vjjjw/7NANz8sknY+fOnRgeHsa//Mu/4LrrrsPWrVujPi0W/Pmlu7sb8Xh8RqXmoUOHsHTp0ojOKnodHR046aST8MYbb0R9KpER//68N6Y77rjj0N3dreW9sX79ejz55JPYsmXLtO3Bly5dilwuh6GhoWnfr+u9MNd1mM25554LANrdD6lUCieccALOOeccbNy4EWeccQa+/vWvR34vMPj7JJVK4ZxzzsEzzzzjfK1UKuGZZ57BeeedF+GZRWtsbAxvvvkmli1bFvWpRGbVqlVYunTptHtjZGQEP//5z42+N/7whz+gv79fq3vDtm2sX78ejz/+OH72s59h1apV0/78nHPOQTKZnHYvvP7669i7d69W98JC12E2O3fuBACt7ofZlEolZLPZ6O+FwEsKDfLwww/b6XTa3rx5s/3qq6/af/7nf253dHTYBw8ejPrUQvO5z33OfvbZZ+09e/bYzz//vH3JJZfY3d3ddm9vb9SnFqjR0VH7lVdesV955RUbgH333Xfbr7zyiv373//etm3b/vKXv2x3dHTYP/zhD+1f/vKX9p/92Z/Zq1atsicmJiI+c//Mdw1GR0ftz3/+8/YLL7xg79mzx/7pT39qn3322faJJ55oT05ORn3qvrnxxhvt9vZ2+9lnn7UPHDjg/MpkMs73fOYzn7GPPvpo+2c/+5n90ksv2eedd5593nnnRXjW/lvoOrzxxhv2XXfdZb/00kv2nj177B/+8If2cccdZ1944YURn7m/brvtNnvr1q32nj177F/+8pf2bbfdZluWZf/bv/2bbdvR3gsM/j6799577aOPPtpOpVL2u9/9bvvFF1+M+pRCdc0119jLli2zU6mUfdRRR9nXXHON/cYbb0R9WoHbsmWLDWDGr+uuu8627fJyv7/5m7+xlyxZYqfTafviiy+2X3/99WhP2mfzXYNMJmNfeuml9uLFi+1kMmkfc8wx9g033KDdi/Fsf38A9oMPPuh8z8TEhP2Xf/mX9qJFi+ympib7yiuvtA8cOBDdSQdgoeuwd+9e+8ILL7Q7OzvtdDptn3DCCfYXvvAFe3h4ONoT99mnPvUp+5hjjrFTqZS9ePFi++KLL3YCv21Hey9wS18iIiLDcM6fiIjIMAz+REREhmHwJyIiMgyDPxERkWEY/ImIiAzD4E9ERGQYBn8iIiLDMPgTEREZhsGfiHzz7LPPwrKsGZuVEJFc2OGPiGq2du1anHnmmfiHf/gHAEAul8PAwACWLFkCy7KiPTkimlMi6hMgIn2kUiktt6Yl0g3T/kRUk+uvvx5bt27F17/+dViWBcuysHnz5mlp/82bN6OjowNPPvkkTj75ZDQ1NeEjH/kIMpkMvvOd7+DYY4/FokWL8NnPfhbFYtH52dlsFp///Odx1FFHobm5Geeeey6effbZaP6iRBriyJ+IavL1r38dv/nNb7B69WrcddddAIBf//rXM74vk8ngnnvuwcMPP4zR0VFcddVVuPLKK9HR0YH/83/+D9566y18+MMfxgUXXIBrrrkGALB+/Xq8+uqrePjhh7F8+XI8/vjjuOyyy/CrX/0KJ554Yqh/TyIdMfgTUU3a29uRSqXQ1NTkpPp379494/vy+Tw2bdqE448/HgDwkY98BN/97ndx6NAhtLS04NRTT8VFF12ELVu24JprrsHevXvx4IMPYu/evVi+fDkA4POf/zyeeuopPPjgg/if//N/hveXJNIUgz8RBaqpqckJ/ACwZMkSHHvssWhpaZn2td7eXgDAr371KxSLRZx00knTfk42m0VXV1c4J02kOQZ/IgpUMpmc9nvLsmb9WqlUAgCMjY0hHo9jx44diMfj077P+8JARLVj8CeimqVSqWmFen4466yzUCwW0dvbiz/+4z/29WcTURmr/YmoZsceeyx+/vOf43e/+x36+vqc0Xs9TjrpJHzsYx/Dtddei8ceewx79uzB9u3bsXHjRvzoRz/y4ayJiMGfiGr2+c9/HvF4HKeeeioWL16MvXv3+vJzH3zwQVx77bX43Oc+h5NPPhlXXHEF/u///b84+uijffn5RKZjhz8iIiLDcORPRERkGAZ/IiIiwzD4ExERGYbBn4iIyDAM/kRERIZh8CciIjIMgz8REZFhGPyJiIgMw+BPRERkGAZ/IiIiwzD4ExERGeb/BzuA2CBWv1y4AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "uid, = RE(stxm_fast(\n", " det=det,\n", @@ -303,576 +65,10 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "id": "0e37db82-9b3e-4f9c-9999-14b5702343a9", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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ZcuWYcWKFaHbbN68GVOmTIn1/hdffHHu/4877jgcf/zxOOKII7B+/XrMnj071nvKQPV+UybqvsclvybmuOOOw6hRozB79mxs2bIFRxxxROz3ZcxTX1+P+vr63N8zZ87E0UcfjZ/97Ge4+eabDbaMUcXkyZMxefLk3N8zZ87Eli1bcMcdd+BXv/qVwZbF58orr8Srr76KZ5991nRTQmF5CWHp0qVYuHBh6DYTJ06U9nkTJ07E8OHD0draalReVO53bW0tAKCzsxOjRo3KPd7Z2YmpU6fGek+ZRN332traAYWb+/btwwcffJDbxyjMmDEDANDa2kpSXoYPH45Bgwahs7Oz3+OdnZ1F97O2tlZoe4rE2e9CDj74YJx44olobW1V0URSFDvmVVVVzkZdijF9+nTyA38xFi9enJt8UCpaaPo6Z3kJYcSIERgxYoS2z3vrrbfw/vvv9xvUTaByvydMmIDa2lqsXbs2JyvZbBYbNmwQnqmlgqj7Xl9fj507d2Ljxo2YNm0aAGDdunXo6+vLCUkUNm3aBADGj3kxKioqMG3aNKxduxbz588H8HFYee3atVi8eHHga+rr67F27VosWbIk99iaNWv6RSWoE2e/C9m/fz9eeeUVnH322QpbSoP6+voB02RtO+ay2LRpE9nruRie5+Gqq67CQw89hPXr12PChAklX2P8OtdSFpwC3nzzTe+ll17yli9f7h122GHeSy+95L300kverl27cttMnjzZe/DBBz3P87xdu3Z53/zmN73m5mZv69at3pNPPumddNJJ3pFHHunt2bPH1G4II7rfnud5//mf/+kNHTrUe+SRR7yXX37ZO/fcc70JEyZ4H330kYldiM28efO8E0880duwYYP37LPPekceeaR3ySWX5J5/6623vMmTJ3sbNmzwPM/zWltbvZtuusl74YUXvK1bt3qPPPKIN3HiRO+0004ztQuRuP/++71MJuOtWrXKe/31173LL7/cGzp0qNfR0eF5nud96Utf8pYtW5bb/rnnnvMOOugg7/bbb/c2b97s3Xjjjd7BBx/svfLKK6Z2IRai+718+XLvj3/8o7dlyxZv48aN3sUXX+xVVlZ6r732mqldiM2uXbty1zIA7wc/+IH30ksveW+++abneZ63bNky70tf+lJu+7///e/eIYcc4n3rW9/yNm/e7N11113eoEGDvCeeeMLULsRCdL/vuOMO7+GHH/b+9re/ea+88op39dVXe+Xl5d6TTz5pahdiccUVV3jV1dXe+vXrvR07duT+ffjhh7ltqF3nLC+SWLBggQdgwL+nnnoqtw0A75577vE8z/M+/PBD78wzz/RGjBjhHXzwwd7hhx/uLVq0KNcx2oLofnvex9Olr7/+eq+mpsbLZDLe7NmzvZaWFv2NT8j777/vXXLJJd5hhx3mVVVVeZdeemk/adu6dWu/76Ktrc077bTTvGHDhnmZTMabNGmS961vfcvr6uoytAfR+dGPfuSNGzfOq6io8KZPn+796U9/yj13+umnewsWLOi3/e9//3vvqKOO8ioqKrxjjjnGe+yxxzS3WA4i+71kyZLctjU1Nd7ZZ5/tvfjiiwZanRx/CnDhP39/FyxY4J1++ukDXjN16lSvoqLCmzhxYr9r3hZE93vFihXeEUcc4VVWVnrDhg3zZs2a5a1bt85M4xMQtM+F/Ta167zsnw1nGIZhGIaxAl7nhWEYhmEYq2B5YRiGYRjGKlheGIZhGIaxCpYXhmEYhmGsguWFYRiGYRirYHlhGIZhGMYqWF4YhmEYhrEKlheGYRiGYayC5YVhGIZhGKtgeWEYhmEYxipYXhiGYRiGsQqWF4ZhGIZhrOL/A+Nr4tDaQWj1AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "CA.Client.Exception...............................................\n", - " Warning: \"Virtual circuit disconnect\"\n", - " Context: \"host.containers.internal:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1237\n", - " Current Time: Wed Jul 03 2024 15:51:33.491127279\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.733635751\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.733642594\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - "errlog: lost 6 messages\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.733647030\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.733653296\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - "errlog: lost 108 messages\n", - " Current Time: Wed Jul 03 2024 15:56:49.733676574\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.733679081\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Z.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.733681406\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.733684103\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.733701202\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.733706470\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.733709317\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.733711632\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.738562004\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA:RBV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.743435893\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.748903713\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL:RBV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.753570862\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.758471602\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH:RBV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.763360290\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.768781335\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:X.EGU\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.773449417\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVELO\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.778688444\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XRBV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.783354681\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVAL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.788406660\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVMAX\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.793167804\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XACCL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.798243129\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:X.PREC\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.803816051\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XRDBD\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.808914254\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XDMOV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.813848622\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 15:56:49.819465895\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Virtual circuit disconnect\"\n", - " Context: \"host.containers.internal:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1237\n", - " Current Time: Wed Jul 03 2024 16:02:08.379911454\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.199589951\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.199596820\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - "errlog: lost 190 messages\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.204086635\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.208816863\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.213831591\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.219016378\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.223723575\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.229210646\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.234252133\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:X.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.239086876\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.244051272\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.249074240\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.254136801\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.259065110\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.264074606\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:X.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.269000979\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.274175041\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.279211773\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:17.283846766\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Virtual circuit disconnect\"\n", - " Context: \"host.containers.internal:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1237\n", - " Current Time: Wed Jul 03 2024 16:02:20.508261862\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZDMOV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:49.965033970\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZLLM\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:49.965039692\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"errlog: lost 13 messages\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YVMAX\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:49.970458227\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YACCL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:49.975407790\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Y.PREC\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:49.980306083\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YRDBD\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:49.985717024\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YDMOV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:49.990703739\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YLLM\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:49.995608806\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YHLM\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:50.000870889\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YSTOP\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:50.005815661\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Z.EGU\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:50.010727710\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVELO\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:50.015888797\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZRBV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:50.021055396\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVAL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:50.025162132\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVMAX\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:50.029873815\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZACCL\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:50.034869359\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Z.PREC\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:50.040052053\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZRDBD\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:50.044796491\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.513923947\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.513930378\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - "errlog: lost 30 messages\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.519324278\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.524563542\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.529400407\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.534316642\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.539019306\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.543128888\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.548292820\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:X.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.553441697\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.558107875\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.563759419\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.568921465\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.573894907\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.578945626\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:X.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.583879337\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.589047844\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.594234761\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Wed Jul 03 2024 16:02:59.599394811\n", - "..................................................................\n" - ] - } - ], + "outputs": [], "source": [ "header = db[-1]\n", "data = header.table()\n", @@ -881,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "e1bbed8a-11e5-4bd5-a267-e28d6e22134a", "metadata": {}, "outputs": [], @@ -891,31 +87,10 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "dcda2ee8-dece-4dcc-9314-2590c9646e1e", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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Hf324fDhwyW1sDyeeeYZXHXVVfjTn/6ENWvWYO/evTj77LOxe/fuguvYdBzG2T7ArmMQgUfcc889QW1tbahl582bF5x33nlS2yOasNu3f//+oL6+Prj11lsz7+3YsSNIJBLBb3/7W4ktjMfrr78eAAj+8pe/ZN773//936CioiLYunVrwfXOOOOM4Oqrr1bQwmhMmzYtuOqqqzJ/79u3Lxg5cmTQ0tKSd/l//dd/Dc4999x+702fPj3493//d6ntLIeo2xjl2DQNAMGjjz5adJlrr702OOGEE/q9d9FFFwVNTU0SWyaGMNv39NNPBwCCv//970raJJr3338/ABA888wzBZex8ThME2b7bDsGvYi8xGXdunUYPnw4JkyYgCuvvBIffvih7iYJYfPmzeju7sbs2bMz79XW1mL69Oloa2vT2LL8tLW1YfDgwTjllFMy782ePRuVlZVYv3590XV/85vfYOjQoTjxxBOxbNkyfPzxx7KbW5S+vj5s2LCh329fWVmJ2bNnF/zt29ra+i0PAE1NTUbuKyDeNgLArl27cPTRR6OhoQHnnXceXnvtNRXNVYJt+zAukydPxogRI/Av//IveP7553U3JzTJZBIAMGTIkILL2LwPw2wfYNcxSHkpwJw5c3DfffehtbUVt9xyC5555hnMnTsX+/bt0920sknnoevq6vq9X1dXZ2SOuru7+5Dw88CBAzFkyJCi7f3qV7+KX//613j66aexbNky3H///fja174mu7lF+eCDD7Bv375Iv313d7c1+wqIt40TJkzAr371Kzz22GP49a9/jf3792PGjBl49913VTRZOoX2YSqVwieffKKpVeIYMWIEVqxYgd///vf4/e9/j4aGBsycORMvvfSS7qaVZP/+/Vi0aBFOO+00nHjiiQWXs+04TBN2+2w7Bq19qvTSpUtxyy23FF3mjTfewMSJE2N9/le+8pXM/5900kn4/Oc/j2OOOQbr1q3DrFmzYn1mFGRvnwmE3ca4ZNfEnHTSSRgxYgRmzZqFTZs24Zhjjon9uUQ8jY2NaGxszPw9Y8YMHH/88fj5z3+Om266SWPLSBgmTJiACRMmZP6eMWMGNm3ahDvuuAP333+/xpaV5qqrrsKrr76K5557TndTpBB2+2w7Bq2VlyVLlmD+/PlFlxk3bpyw7xs3bhyGDh2Kzs5OJfIic/vq6+sBAD09PRgxYkTm/Z6eHkyePDnWZ8Yh7DbW19cfUuj56aef4qOPPspsSximT58OAOjs7NQmL0OHDsWAAQPQ09PT7/2enp6C21JfXx9ped3E2cZcDjvsMEyZMgWdnZ0ymqicQvuwpqYGhx9+uKZWyWXatGnGC8HChQszNwCMGjWq6LK2HYdAtO3LxfRj0Fp5GTZsGIYNG6bs+9599118+OGH/U72MpG5fWPHjkV9fT1aW1szspJKpbB+/frId2SVQ9htbGxsxI4dO7BhwwZMnToVALB27Vrs378/IyRhaG9vBwBl+zAfVVVVmDp1KlpbW9Hc3AzgQFi3tbUVCxcuzLtOY2MjWltbsWjRosx7a9as6XeVZBJxtjGXffv24ZVXXsE555wjsaXqaGxsPOS2WpP3oQja29u1HmvFCIIA3/rWt/Doo49i3bp1GDt2bMl1bDoO42xfLsYfg7orhlXwzjvvBBs3bgyWL18eHHnkkcHGjRuDjRs3Bjt37swsM2HChOAPf/hDEARBsHPnzuDb3/520NbWFmzevDl46qmngpNPPjk49thjgz179ujajIJE3b4gCIL/+q//CgYPHhw89thjwcsvvxycd955wdixY4NPPvlExyaUZM6cOcGUKVOC9evXB88991xw7LHHBhdffHHm3999991gwoQJwfr164MgCILOzs7gxhtvDF588cVg8+bNwWOPPRaMGzcuOP3003VtQoYHH3wwSCQSwcqVK4PXX389uOKKK4LBgwcH3d3dQRAEwde//vVg6dKlmeWff/75YODAgcFtt90WvPHGG8ENN9wQHHbYYcErr7yiaxNKEnUbly9fHvzxj38MNm3aFGzYsCH4yle+ElRXVwevvfaark0oys6dOzPHGYDgRz/6UbBx48bgnXfeCYIgCJYuXRp8/etfzyz/9ttvB0cccUTwne98J3jjjTeCu+66KxgwYECwevVqXZtQlKjbd8cddwSrVq0K/vrXvwavvPJKcPXVVweVlZXBU089pWsTinLllVcGtbW1wbp164Jt27ZlXh9//HFmGZuPwzjbZ9sx6IW8zJs3LwBwyOvpp5/OLAMguOeee4IgCIKPP/44OPvss4Nhw4YFhx12WHD00UcHCxYsyAy8phF1+4LgwO3S1113XVBXVxckEolg1qxZQUdHh/rGh+TDDz8MLr744uDII48Mampqgssuu6yfnG3evLnfNnd1dQWnn356MGTIkCCRSATjx48PvvOd7wTJZFLTFvTnJz/5STB69OigqqoqmDZtWvCnP/0p829nnHFGMG/evH7L/+53vwuOO+64oKqqKjjhhBOCJ554QnGLoxNlGxctWpRZtq6uLjjnnHOCl156SUOrw5G+NTj3ld6mefPmBWecccYh60yePDmoqqoKxo0b1+94NI2o23fLLbcExxxzTFBdXR0MGTIkmDlzZrB27Vo9jQ9Bvm3LHSNtPg7jbJ9tx2BFEASB1NAOIYQQQohAeKs0IYQQQqyC8kIIIYQQq6C8EEIIIcQqKC+EEEIIsQrKCyGEEEKsgvJCCCGEEKugvBBCCCHEKigvhBBCCLEKygshhBBCrILyQgghhBCroLwQQgghxCooL4QQQgixiv8f2iMPpW5a25YAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [] }, { @@ -945,7 +120,7 @@ "metadata": {}, "outputs": [], "source": [ - "RE(fast_scan_grid([det],xyz_motor.x,-2,2,10, xyz_motor.y,-0,-10,1),bec)" + "RE(fast_scan_grid([det],xyz_motor.x,-2,2,3, xyz_motor.y,-0,-10,1),bec)" ] }, { @@ -955,7 +130,7 @@ "metadata": {}, "outputs": [], "source": [ - "RE(fast_scan_grid([det],xyz_motor.x,0,10,10, xyz_motor.y,-0,-10,5,snake_axes = True),bec)" + "RE(fast_scan_grid([det],xyz_motor.x,0,5,10, xyz_motor.y,-0,-10,5,snake_axes = True),bec)" ] }, { diff --git a/tests/test_fast_scan.py b/tests/test_fast_scan.py index 203cc82..09f13c5 100644 --- a/tests/test_fast_scan.py +++ b/tests/test_fast_scan.py @@ -7,13 +7,11 @@ DeviceCollector, set_mock_value, ) -from ophyd_async.core.mock_signal_utils import ( - get_mock_put, -) +from ophyd_async.core.mock_signal_utils import get_mock_put from p99_bluesky.devices.andor2Ad import Andor2Ad, StaticDirectoryProviderPlus from p99_bluesky.devices.stages import ThreeAxisStage -from p99_bluesky.plans.fast_scan import fast_scan_1d +from p99_bluesky.plans.fast_scan import fast_scan_1d, fast_scan_grid # Long enough for multiple asyncio event loop cycles to run so # all the tasks have a chance to run @@ -90,11 +88,16 @@ async def test_fast_scan_1d_success( assert 2 == get_mock_put(sim_motor.x.velocity).call_count -# async def test_fast_scan_grid_success( -# sim_motor: ThreeAxisStage, RE: RunEngine, andor2: Andor2Ad -# ): -# RE(fast_scan_grid([det], sim_motor.x, 5, -1, 10, sim_motor.y, 5, -1, 10)) +async def test_fast_scan_2d_success( + sim_motor: ThreeAxisStage, RE: RunEngine, andor2: Andor2Ad +): + det = SynPeriodicSignal(name="rand", labels={"detectors"}) + step = 5 + RE(fast_scan_grid([det], sim_motor.x, 0, 2, step, sim_motor.y, -0, -5, 1)) -# assert 2.78 == await sim_motor.y.velocity.get_value() -# assert 20 == get_mock_put(sim_motor.y.user_setpoint).call_count -# assert 20 == get_mock_put(sim_motor.y.velocity).call_count + assert 2.78 == await sim_motor.x.velocity.get_value() + assert step == get_mock_put(sim_motor.x.user_setpoint).call_count + assert 0 == get_mock_put(sim_motor.x.velocity).call_count + assert 2.88 == await sim_motor.y.velocity.get_value() + assert step * 2 == get_mock_put(sim_motor.y.user_setpoint).call_count + assert step * 2 == get_mock_put(sim_motor.y.velocity).call_count diff --git a/tests/test_p99_stages_softioc.py b/tests/test_p99_stages_softioc.py index ac976ed..ecd24a7 100644 --- a/tests/test_p99_stages_softioc.py +++ b/tests/test_p99_stages_softioc.py @@ -1,5 +1,4 @@ import asyncio -import subprocess from collections import defaultdict from bluesky.plans import scan @@ -11,26 +10,18 @@ SampleAngleStage, p99StageSelections, ) -from soft_motor import SoftThreeAxisStage # Long enough for multiple asyncio event loop cycles to run so # all the tasks have a chance to run -A_BIT = 0.001 +A_BIT = 0.5 -async def test_fake_p99(RE: RunEngine) -> None: +async def test_fake_p99(RE: RunEngine, xyz_motor) -> None: docs = defaultdict(list) def capture_emitted(name, doc): docs[name].append(doc) - p = subprocess.Popen( - [ - "python", - "tests/epics/soft_ioc/p99_softioc.py", - ], - ) - await asyncio.sleep(A_BIT) with DeviceCollector(mock=False): mock_sampleAngleStage = SampleAngleStage( @@ -39,7 +30,6 @@ def capture_emitted(name, doc): mock_filter_wheel = FilterMotor( "p99-MO-STAGE-02:MP:SELECT", name="mock_filter_wheel" ) - xyz_motor = SoftThreeAxisStage("p99-MO-STAGE-02:", name="xyz_motor") assert mock_sampleAngleStage.roll.name == "mock_sampleAngleStage-roll" assert mock_sampleAngleStage.pitch.name == "mock_sampleAngleStage-pitch" @@ -50,7 +40,6 @@ def capture_emitted(name, doc): mock_sampleAngleStage.pitch.set(3.1), mock_sampleAngleStage.roll.set(4), mock_filter_wheel.user_setpoint.set(p99StageSelections.Cd25um), - xyz_motor.x.user_setpoint.set(0), ) await asyncio.sleep(A_BIT) result = asyncio.gather( @@ -58,20 +47,13 @@ def capture_emitted(name, doc): mock_sampleAngleStage.pitch.get_value(), mock_sampleAngleStage.roll.get_value(), mock_filter_wheel.user_setpoint.get_value(), - xyz_motor.x.user_readback.get_value(), ) await asyncio.wait_for(result, timeout=2) - assert result.result() == [2.0, 3.1, 4.0, p99StageSelections.Cd25um, 0.0] + assert result.result() == [2.0, 3.1, 4.0, p99StageSelections.Cd25um] RE( scan( [mock_sampleAngleStage.theta], - xyz_motor.y, - -1, - 1, - xyz_motor.x, - -2, - 2, xyz_motor.z, -3, 3, @@ -82,6 +64,4 @@ def capture_emitted(name, doc): ], ) assert_emitted(docs, start=1, descriptor=1, event=10, stop=1) - p.terminate() - p.wait() await asyncio.sleep(A_BIT) From 21cec352ce5d4696ba0383f6c7698ed09500eb40 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Mon, 8 Jul 2024 16:07:39 +0000 Subject: [PATCH 07/11] added stxm tests with andor detector --- src/p99_bluesky/plans/fast_scan.py | 34 ++--- src/p99_bluesky/plans/stxm.py | 59 ++++---- tests/jupyter_tests/stream.ipynb | 88 +++++++++++- tests/test_fast_scan.py | 171 ++++++++++++++++++------ tests/test_stxm.py | 208 +++++++++++++++++++++++++++++ 5 files changed, 464 insertions(+), 96 deletions(-) create mode 100644 tests/test_stxm.py diff --git a/src/p99_bluesky/plans/fast_scan.py b/src/p99_bluesky/plans/fast_scan.py index d7a0c7b..3e80c5d 100644 --- a/src/p99_bluesky/plans/fast_scan.py +++ b/src/p99_bluesky/plans/fast_scan.py @@ -6,6 +6,7 @@ from bluesky.preprocessors import ( finalize_wrapper, ) +from numpy import linspace from ophyd_async.epics.motion import Motor from p99_bluesky.log import LOGGER @@ -101,31 +102,24 @@ def inner_fast_scan_grid( ): yield from check_within_limit([step_start, step_end], step_motor) yield from check_within_limit([scan_start, scan_end], scan_motor) - step_size = (step_end - step_start) / num_step - step_counter = 1 - current_step = step_start + step_size * step_counter + steps = linspace(step_start, step_end, num_step, endpoint=True) if snake_axes: - while num_step >= step_counter: - yield from bps.mv(step_motor, current_step) - yield from _fast_scan_1d( - dets + [step_motor], scan_motor, scan_start, scan_end, motor_speed - ) - step_counter += 1 - current_step = step_start + step_size * step_counter - yield from bps.mv(step_motor, current_step) - yield from _fast_scan_1d( - dets + [step_motor], scan_motor, scan_end, scan_start, motor_speed - ) - step_counter += 1 - current_step = step_start + step_size * step_counter + for cnt, step in enumerate(steps): + yield from bps.mv(step_motor, step) + if cnt % 2 == 0: + yield from _fast_scan_1d( + dets + [step_motor], scan_motor, scan_start, scan_end, motor_speed + ) + else: + yield from _fast_scan_1d( + dets + [step_motor], scan_motor, scan_end, scan_start, motor_speed + ) else: - while num_step >= step_counter: - yield from bps.mv(step_motor, current_step) + for step in steps: + yield from bps.mv(step_motor, step) yield from _fast_scan_1d( dets + [step_motor], scan_motor, scan_start, scan_end, motor_speed ) - step_counter += 1 - current_step = step_start + step_size * step_counter yield from finalize_wrapper( plan=inner_fast_scan_grid( diff --git a/src/p99_bluesky/plans/stxm.py b/src/p99_bluesky/plans/stxm.py index 472ad54..33d0f82 100644 --- a/src/p99_bluesky/plans/stxm.py +++ b/src/p99_bluesky/plans/stxm.py @@ -1,5 +1,5 @@ -import math from collections.abc import Iterator +from math import ceil from typing import Any import bluesky.plan_stubs as bps @@ -10,25 +10,6 @@ from p99_bluesky.log import LOGGER from p99_bluesky.plans.fast_scan import fast_scan_grid -""" -set parameter for fast_scan_grid - -from detector count time calculate roughly how many data point can be done -if no step size for slow axis - assuming even distribution of points between two axis and work out the - step for step motor -from the fast scan speed calculate the motor speed needed to achieve those - point density. -if it is below the min speed, use min speed and place a warning: - recalculate the step size to fit within time flame and use min speed - warning -if it is above the max speed, use max - increase step size so it finishes on time. - warning that it will finish early - - -""" - def stxm_fast( det: Andor2Ad | Andor3Ad, @@ -40,23 +21,39 @@ def stxm_fast( scan_start: float, scan_end: float, plan_time: float, - # step_size: float, + step_size: float | None = None, ) -> MsgGenerator: - num_data_point = plan_time / count_time + """ + Software triggering stxm scan: + Using detector count time to calculate roughly how many data point can be done + If no step size is provided use evenly distributed of points if possible, + the speed of the scanning motor is calculated using the point density. + If scan motor speed is above its max speed,max speed is used and + the step size is adjusted so it finishes roughly on time. + """ + scan_range = abs(scan_start - scan_end) step_range = abs(step_start - step_end) + step_motor_speed = yield from bps.rd(step_motor.velocity) + + # get number of data point possible after adjusting plan_time for step movement speed + num_data_point = (plan_time - step_motor_speed * step_range) / count_time + # Assuming ideal step size is evenly distributed points within the two axis. - ideal_step_size = 1.0 / ((num_data_point / (scan_range * step_range)) ** 0.5) + if step_size is not None: + ideal_step_size = step_size + else: + ideal_step_size = 1.0 / ((num_data_point / (scan_range * step_range)) ** 0.5) ideal_velocity = ideal_step_size / count_time - LOGGER.info(f"{ideal_step_size} velocity = {ideal_velocity}.") - velocity, step_size = yield from get_velocity_and_step_size( + LOGGER.info(f"ideal step size = {ideal_step_size} velocity = {ideal_velocity}.") + velocity, ideal_step_size = yield from get_velocity_and_step_size( scan_motor, ideal_velocity, ideal_step_size ) LOGGER.info(f"{scan_motor.name} velocity = {velocity}.") LOGGER.info(f"{step_motor.name} step size = {step_size}.") # yield from bps.abs_set(det.drv.acquire_time, count_time - num_of_step = math.ceil(step_range / step_size) + num_of_step = ceil(step_range / ideal_step_size) yield from fast_scan_grid( [det], @@ -75,15 +72,13 @@ def stxm_fast( def get_velocity_and_step_size( scan_motor: Motor, ideal_velocity: float, ideal_step_size ) -> Iterator[Any]: + print(ideal_velocity) + if ideal_velocity <= 0.1: + raise ValueError(f"{scan_motor.name} speed: {ideal_velocity} <= 0") max_velocity = yield from bps.rd(scan_motor.max_velocity) - min_velocity = 0.01 # yield from bps.rd(scan_motor.min_velocity) # if motor does not move fast enough increase step_motor step size if ideal_velocity > max_velocity: ideal_step_size = ideal_velocity / max_velocity * ideal_step_size ideal_velocity = max_velocity - # if motor does not move slow enough decrease step_motor step size - # min_velocity not in motor atm need to add it - elif ideal_velocity < min_velocity: - ideal_step_size = ideal_velocity / min_velocity * ideal_step_size - ideal_velocity = min_velocity + return ideal_velocity, ideal_step_size diff --git a/tests/jupyter_tests/stream.ipynb b/tests/jupyter_tests/stream.ipynb index 38ce0f3..da67628 100644 --- a/tests/jupyter_tests/stream.ipynb +++ b/tests/jupyter_tests/stream.ipynb @@ -162,10 +162,96 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "id": "8e3216f2-1fd2-4d0f-a950-2e259830a99f", "metadata": {}, "outputs": [], + "source": [ + " y_position = [1]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "3c5ba9c7-790c-4aeb-bc69-8d4da73c8420", + "metadata": {}, + "outputs": [], + "source": [ + "y_position.extend((2,2))" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "31204b68-490f-4497-aeeb-02a83f9cd1f6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 2, 2]" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_position" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "a3938089-0180-4ff9-a889-f7ba2175f92b", + "metadata": {}, + "outputs": [], + "source": [ + "from numpy import linspace\n", + "x_start = 0\n", + "x_end = 2\n", + "num_step = 5\n", + "y_start = -5\n", + "y_end = 5\n", + "speed = 1\n", + "steps = linspace(x_start, x_end, num_step, endpoint=True)\n", + "y_position = [y_start]\n", + "for cnt, i in enumerate(steps[1:-1]):\n", + " if cnt % 2 == 0:\n", + " y_position.extend((y_end, y_end))\n", + " else:\n", + " y_position.extend((y_start, y_start))\n", + "y_position.append(y_start)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "2358d3b7-ce55-4f20-ac8e-394124b3d234", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-5, 5, 5, -5, -5, 5, 5, -5]" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_position" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "18d00883-5e07-4429-b690-19921272b70b", + "metadata": {}, + "outputs": [], "source": [] } ], diff --git a/tests/test_fast_scan.py b/tests/test_fast_scan.py index 09f13c5..b3b18cb 100644 --- a/tests/test_fast_scan.py +++ b/tests/test_fast_scan.py @@ -1,15 +1,17 @@ -from pathlib import Path +from collections import defaultdict +from unittest import mock import pytest from bluesky.run_engine import RunEngine +from numpy import linspace from ophyd.sim import SynPeriodicSignal from ophyd_async.core import ( DeviceCollector, + assert_emitted, set_mock_value, ) from ophyd_async.core.mock_signal_utils import get_mock_put -from p99_bluesky.devices.andor2Ad import Andor2Ad, StaticDirectoryProviderPlus from p99_bluesky.devices.stages import ThreeAxisStage from p99_bluesky.plans.fast_scan import fast_scan_1d, fast_scan_grid @@ -17,31 +19,10 @@ # all the tasks have a chance to run A_BIT = 0.001 -CURRENT_DIRECTORY = Path(__file__).parent - - -async def make_andor2(prefix: str = "") -> Andor2Ad: - dp = StaticDirectoryProviderPlus(CURRENT_DIRECTORY, "test-") - - async with DeviceCollector(mock=True): - detector = Andor2Ad(prefix, dp, "andor2") - return detector - @pytest.fixture -async def andor2() -> Andor2Ad: - andor2 = await make_andor2(prefix="TEST") - - set_mock_value(andor2._controller.driver.array_size_x, 10) - set_mock_value(andor2._controller.driver.array_size_y, 20) - set_mock_value(andor2.hdf.file_path_exists, True) - set_mock_value(andor2.hdf.num_captured, 0) - set_mock_value(andor2.hdf.file_path, str(CURRENT_DIRECTORY)) - # assert "test-andor2-hdf0" == await andor2.hdf.file_name.get_value() - set_mock_value( - andor2.hdf.full_file_name, str(CURRENT_DIRECTORY) + "/test-andor2-hdf0" - ) - return andor2 +def det(): + return SynPeriodicSignal(name="rand", labels={"detectors"}) @pytest.fixture @@ -65,39 +46,143 @@ async def sim_motor(): async def test_fast_scan_1d_fail_limit_check( - sim_motor: ThreeAxisStage, RE: RunEngine, andor2: Andor2Ad + sim_motor: ThreeAxisStage, RE: RunEngine, det ): - det = SynPeriodicSignal(name="rand", labels={"detectors"}) + """Testing both high and low limits making sure nothing get run if it is exceeded""" + docs = defaultdict(list) + + def capture_emitted(name, doc): + docs[name].append(doc) + with pytest.raises(ValueError): - RE(fast_scan_1d([det], sim_motor.x, 8, 20, 10)) + RE(fast_scan_1d([det], sim_motor.x, 8, 20, 10), capture_emitted) with pytest.raises(ValueError): - RE(fast_scan_1d([det], sim_motor.x, -208, 0, 10)) + RE(fast_scan_1d([det], sim_motor.x, -208, 0, 10), capture_emitted) assert 0 == get_mock_put(sim_motor.x.user_setpoint).call_count + assert_emitted(docs, start=2, stop=2) -async def test_fast_scan_1d_success( - sim_motor: ThreeAxisStage, RE: RunEngine, andor2: Andor2Ad -): - det = SynPeriodicSignal(name="rand", labels={"detectors"}) - RE(fast_scan_1d([det], sim_motor.x, 5, -1, 10)) +async def test_fast_scan_1d_success(sim_motor: ThreeAxisStage, RE: RunEngine, det): + docs = defaultdict(list) + + def capture_emitted(name, doc): + docs[name].append(doc) + + RE(fast_scan_1d([det], sim_motor.x, 5, -1, 10), capture_emitted) assert 2.78 == await sim_motor.x.velocity.get_value() assert 2 == get_mock_put(sim_motor.x.user_setpoint).call_count assert 2 == get_mock_put(sim_motor.x.velocity).call_count + """Only 1 event as sim motor motor_done_move is set to true, + so only 1 loop is ran""" + assert_emitted(docs, start=1, descriptor=1, event=1, stop=1) + + +async def test_fast_scan_2d_success(sim_motor: ThreeAxisStage, RE: RunEngine, det): + docs = defaultdict(list) + + def capture_emitted(name, doc): + docs[name].append(doc) + + x_start = 0 + x_end = 2 + num_step = 5 + y_start = -5 + y_end = 5 + speed = 1 + snake_axes = False + RE( + fast_scan_grid( + [det], + sim_motor.x, + x_start, + x_end, + num_step, + sim_motor.y, + y_start, + y_end, + speed, + snake_axes=snake_axes, + ), + capture_emitted, + ) + assert 2.78 == await sim_motor.x.velocity.get_value() + assert num_step == get_mock_put(sim_motor.x.user_setpoint).call_count + assert 0 == get_mock_put(sim_motor.x.velocity).call_count + steps = linspace(x_start, x_end, num_step, endpoint=True) + for cnt, motor_x in enumerate(get_mock_put(sim_motor.x.user_setpoint).call_args_list): + assert motor_x == mock.call(steps[cnt], wait=True, timeout=mock.ANY) -async def test_fast_scan_2d_success( - sim_motor: ThreeAxisStage, RE: RunEngine, andor2: Andor2Ad -): - det = SynPeriodicSignal(name="rand", labels={"detectors"}) - step = 5 - RE(fast_scan_grid([det], sim_motor.x, 0, 2, step, sim_motor.y, -0, -5, 1)) + assert 2.88 == await sim_motor.y.velocity.get_value() + assert num_step * 2 == get_mock_put(sim_motor.y.velocity).call_count + assert num_step * 2 == get_mock_put(sim_motor.y.user_setpoint).call_count + for cnt, motor_y in enumerate(get_mock_put(sim_motor.y.user_setpoint).call_args_list): + if cnt % 2 == 0: + assert motor_y == mock.call(y_start, wait=True, timeout=mock.ANY) + else: + assert motor_y == mock.call(y_end, wait=True, timeout=mock.ANY) + """Only 1 event per step as sim motor motor_done_move is set to true, + so only 1 loop is ran""" + assert_emitted(docs, start=1, descriptor=1, event=num_step, stop=1) + + +async def test_fast_scan_2d_Snake_success(sim_motor: ThreeAxisStage, RE: RunEngine, det): + docs = defaultdict(list) + + def capture_emitted(name, doc): + docs[name].append(doc) + + x_start = 0 + x_end = 2 + num_step = 5 + y_start = -5 + y_end = 4 + speed = 1 + snake_axes = True + RE( + fast_scan_grid( + [det], + sim_motor.x, + x_start, + x_end, + num_step, + sim_motor.y, + y_start, + y_end, + speed, + snake_axes=snake_axes, + ), + capture_emitted, + ) assert 2.78 == await sim_motor.x.velocity.get_value() - assert step == get_mock_put(sim_motor.x.user_setpoint).call_count + assert num_step == get_mock_put(sim_motor.x.user_setpoint).call_count assert 0 == get_mock_put(sim_motor.x.velocity).call_count + steps = linspace(x_start, x_end, num_step, endpoint=True) + for cnt, motor_x in enumerate(get_mock_put(sim_motor.x.user_setpoint).call_args_list): + assert motor_x == mock.call(steps[cnt], wait=True, timeout=mock.ANY) + assert 2.88 == await sim_motor.y.velocity.get_value() - assert step * 2 == get_mock_put(sim_motor.y.user_setpoint).call_count - assert step * 2 == get_mock_put(sim_motor.y.velocity).call_count + assert num_step * 2 == get_mock_put(sim_motor.y.velocity).call_count + assert num_step * 2 == get_mock_put(sim_motor.y.user_setpoint).call_count + """ build a list of expected y_position""" + y_position = [y_start] + for cnt in range(0, num_step): + if cnt % 2 == 0: + y_position.extend((y_end, y_end)) + else: + y_position.extend((y_start, y_start)) + if num_step % 2 == 0: + y_position.append(y_start) + else: + y_position.append(y_end) + """check them""" + for cnt, motor_y in enumerate(get_mock_put(sim_motor.y.user_setpoint).call_args_list): + assert motor_y == mock.call(y_position[cnt], wait=True, timeout=mock.ANY) + + """Only 1 event per step as sim motor motor_done_move is set to true, + so only 1 loop is ran""" + assert_emitted(docs, start=1, descriptor=1, event=num_step, stop=1) diff --git a/tests/test_stxm.py b/tests/test_stxm.py new file mode 100644 index 0000000..80118eb --- /dev/null +++ b/tests/test_stxm.py @@ -0,0 +1,208 @@ +from collections import defaultdict +from math import ceil +from pathlib import Path +from unittest.mock import Mock + +import pytest +from ophyd_async.core import ( + DeviceCollector, + assert_emitted, + callback_on_mock_put, + set_mock_value, +) +from ophyd_async.epics.areadetector.drivers.ad_base import DetectorState + +from p99_bluesky.devices.andor2Ad import Andor2Ad, StaticDirectoryProviderPlus +from p99_bluesky.devices.stages import ThreeAxisStage +from p99_bluesky.plans.stxm import stxm_fast + + +@pytest.fixture +async def sim_motor(): + async with DeviceCollector(mock=True): + sim_motor = ThreeAxisStage("BLxxI-MO-TABLE-01:X", name="sim_motor") + set_mock_value(sim_motor.x.velocity, 2.78) + set_mock_value(sim_motor.x.high_limit_travel, 8.168) + set_mock_value(sim_motor.x.low_limit_travel, -8.888) + set_mock_value(sim_motor.x.user_readback, 1) + set_mock_value(sim_motor.x.motor_egu, "mm") + set_mock_value(sim_motor.x.motor_done_move, True) + set_mock_value(sim_motor.x.max_velocity, 10) + + set_mock_value(sim_motor.y.motor_egu, "mm") + set_mock_value(sim_motor.y.high_limit_travel, 5.168) + set_mock_value(sim_motor.y.low_limit_travel, -5.888) + set_mock_value(sim_motor.y.user_readback, 0) + set_mock_value(sim_motor.y.motor_egu, "mm") + set_mock_value(sim_motor.y.velocity, 2.88) + set_mock_value(sim_motor.y.motor_done_move, True) + set_mock_value(sim_motor.y.max_velocity, 10) + + yield sim_motor + + +CURRENT_DIRECTORY = Path(__file__).parent + + +async def make_andor2(prefix: str = "") -> Andor2Ad: + dp = StaticDirectoryProviderPlus(CURRENT_DIRECTORY, "test-") + + async with DeviceCollector(mock=True): + detector = Andor2Ad(prefix, dp, "andor2") + return detector + + +@pytest.fixture +async def andor2() -> Andor2Ad: + andor2 = await make_andor2(prefix="TEST") + + set_mock_value(andor2._controller.driver.array_size_x, 10) + set_mock_value(andor2._controller.driver.array_size_y, 20) + set_mock_value(andor2.hdf.file_path_exists, True) + set_mock_value(andor2.hdf.num_captured, 0) + set_mock_value(andor2.hdf.file_path, str(CURRENT_DIRECTORY)) + set_mock_value( + andor2.hdf.full_file_name, str(CURRENT_DIRECTORY) + "/test-andor2-hdf0" + ) + set_mock_value(andor2.drv.detector_state, DetectorState.Idle) + return andor2 + + +async def test_stxm_fast_zero_velocity_fail(andor2, sim_motor, RE): + plan_time = 30 + count_time = 0.2 + step_size = 0.0 + step_start = -2 + step_end = 3 + docs = defaultdict(list) + + def capture_emitted(name, doc): + docs[name].append(doc) + + with pytest.raises(ValueError): + RE( + stxm_fast( + det=andor2, + count_time=count_time, + step_motor=sim_motor.x, + step_start=step_start, + step_end=step_end, + scan_motor=sim_motor.y, + scan_start=1, + scan_end=2, + plan_time=plan_time, + step_size=step_size, + ), + capture_emitted, + ) + # should do nothing + assert_emitted(docs) + + +async def test_stxm_fast(andor2, sim_motor, RE): + rbv_mocks = Mock() + rbv_mocks.get.side_effect = range(0, 100) + callback_on_mock_put( + andor2._writer.hdf.capture, + lambda *_, **__: set_mock_value(andor2._writer.hdf.capture, value=True), + ) + callback_on_mock_put( + andor2.drv.acquire, + lambda *_, **__: set_mock_value(andor2._writer.hdf.num_captured, rbv_mocks.get()), + ) + + docs = defaultdict(list) + + def capture_emitted(name, doc): + docs[name].append(doc) + + plan_time = 30 + count_time = 0.2 + step_size = 0.2 + step_start = -2 + step_end = 3 + step_range = abs(step_start - step_end) + num_of_step = ceil(step_range / step_size) + RE( + stxm_fast( + det=andor2, + count_time=count_time, + step_motor=sim_motor.x, + step_start=step_start, + step_end=step_end, + scan_motor=sim_motor.y, + scan_start=1, + scan_end=2, + plan_time=plan_time, + step_size=step_size, + ), + capture_emitted, + ) + assert_emitted( + docs, + start=1, + descriptor=1, + stream_resource=1, + stream_datum=num_of_step, + event=num_of_step, + stop=1, + ) + + +async def test_stxm_fast_unknown_step(andor2, sim_motor, RE): + rbv_mocks = Mock() + rbv_mocks.get.side_effect = range(0, 100) + callback_on_mock_put( + andor2._writer.hdf.capture, + lambda *_, **__: set_mock_value(andor2._writer.hdf.capture, value=True), + ) + callback_on_mock_put( + andor2.drv.acquire, + lambda *_, **__: set_mock_value(andor2._writer.hdf.num_captured, rbv_mocks.get()), + ) + + docs = defaultdict(list) + + def capture_emitted(name, doc): + docs[name].append(doc) + + step_motor_speed = 1 + set_mock_value(sim_motor.x.velocity, step_motor_speed) + + step_start = 0 + step_end = 2 + plan_time = 10 + step_motor_speed * abs(step_start - step_end) + count_time = 0.1 + + scan_start = 0 + scan_end = 2 + # make the scan motor slow so it can only do 2 steps + # ideal step-size is 0.2 with speed =2 for 10x10 + set_mock_value(sim_motor.y.max_velocity, 1) + + # Unknown step size + docs = defaultdict(list) + RE( + stxm_fast( + det=andor2, + count_time=count_time, + step_motor=sim_motor.x, + step_start=step_start, + step_end=step_end, + scan_start=scan_start, + scan_end=scan_end, + scan_motor=sim_motor.y, + plan_time=plan_time, + ), + capture_emitted, + ) + # speed capped at half ideal so expecting 5 events + assert_emitted( + docs, + start=1, + descriptor=1, + stream_resource=1, + stream_datum=5, + event=5, + stop=1, + ) From 834a91ea54da4df07c504bd3cdd9b5b27a99ec95 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Tue, 9 Jul 2024 11:25:23 +0000 Subject: [PATCH 08/11] add docstring and fixed bugs --- src/p99_bluesky/plans/fast_scan.py | 10 +- src/p99_bluesky/plans/stxm.py | 78 +- tests/jupyter_tests/Untitled.ipynb | 23 - tests/jupyter_tests/fast_scan_test.ipynb | 1121 +++++++++++++++++----- tests/jupyter_tests/get_stat.ipynb | 782 --------------- tests/test_fast_scan.py | 11 +- tests/test_stxm.py | 28 +- 7 files changed, 975 insertions(+), 1078 deletions(-) delete mode 100644 tests/jupyter_tests/Untitled.ipynb delete mode 100644 tests/jupyter_tests/get_stat.ipynb diff --git a/src/p99_bluesky/plans/fast_scan.py b/src/p99_bluesky/plans/fast_scan.py index 3e80c5d..da60bef 100644 --- a/src/p99_bluesky/plans/fast_scan.py +++ b/src/p99_bluesky/plans/fast_scan.py @@ -21,12 +21,12 @@ def fast_scan_1d( motor_speed: float | None = None, ) -> MsgGenerator: """ - One axis fast scan + One axis fast scan, using _fast_scan_1d. Parameters ---------- detectors : list - list of 'readable' objects + list of 'readable',triggerable objects motor : Motor (moveable, readable) start: float @@ -69,7 +69,7 @@ def fast_scan_grid( snake_axes: bool = False, ) -> MsgGenerator: """ - Same as fast_scan_1d with an extra axis to step through forming a grid + Same as fast_scan_1d with an extra axis to step through forming a grid. Parameters ---------- @@ -146,7 +146,7 @@ def _fast_scan_1d( motor_speed: float | None = None, ) -> MsgGenerator: """ - The logic for one axis fast scan, see fast_scan_1d and fast_scan_grid + The logic for one axis fast scan, used in fast_scan_1d and fast_scan_grid In this scan: 1) The motor moves to the starting point. @@ -159,7 +159,7 @@ def _fast_scan_1d( Note: This is purely software triggering which result in variable accuracy. However, fast scan does not require encoder and hardware setup and should work for all motor. It is most frequently use for alignment and - slow motion measurements. + slow motion measurements. Parameters ---------- diff --git a/src/p99_bluesky/plans/stxm.py b/src/p99_bluesky/plans/stxm.py index 33d0f82..1c77999 100644 --- a/src/p99_bluesky/plans/stxm.py +++ b/src/p99_bluesky/plans/stxm.py @@ -24,12 +24,37 @@ def stxm_fast( step_size: float | None = None, ) -> MsgGenerator: """ - Software triggering stxm scan: - Using detector count time to calculate roughly how many data point can be done - If no step size is provided use evenly distributed of points if possible, - the speed of the scanning motor is calculated using the point density. - If scan motor speed is above its max speed,max speed is used and - the step size is adjusted so it finishes roughly on time. + This initiates an STXM scan, targeting a maximum scan speed of around 10Hz. + It calculates the number of data points achievable based on the detector's count + time. If no step size is provided, the software aims for a uniform distribution + of points across the scan area. The scanning motor's speed is then determined using + the calculated point density. If the desired speed exceeds the motor's limit, + the maximum speed is used. In this case, the step size is automatically adjusted + to ensure the scan finishes close to the intended duration. + + Parameters + ---------- + det: Andor2Ad | Andor3Ad, + Area detector. + count_time: float + detector count time. + step_motor: Motor, + Motor for the slow axis + step_start: float, + Starting position for step axis + step_end: float, + Ending position for step axis + scan_motor: Motor, + Motor for the continuously moving axis + scan_start: float, + Start for scanning axis + scan_end: float, + End for scanning axis + plan_time: float, + How long it should take in second + step_size: float | None = None, + Optional step size for the slow axis + """ scan_range = abs(scan_start - scan_end) @@ -37,24 +62,35 @@ def stxm_fast( step_motor_speed = yield from bps.rd(step_motor.velocity) # get number of data point possible after adjusting plan_time for step movement speed - num_data_point = (plan_time - step_motor_speed * step_range) / count_time + num_data_point = (plan_time - step_range / step_motor_speed) / count_time # Assuming ideal step size is evenly distributed points within the two axis. if step_size is not None: - ideal_step_size = step_size + ideal_step_size = abs(step_size) + if step_size == 0: + ideal_velocity = 0 # zero step size + else: + ideal_velocity = scan_range / ( + (num_data_point / abs(step_range / ideal_step_size)) * count_time + ) + else: ideal_step_size = 1.0 / ((num_data_point / (scan_range * step_range)) ** 0.5) - ideal_velocity = ideal_step_size / count_time + ideal_velocity = ideal_step_size / count_time - LOGGER.info(f"ideal step size = {ideal_step_size} velocity = {ideal_velocity}.") + LOGGER.info( + f"ideal step size = {ideal_step_size} velocity = {ideal_velocity}" + + f"number of data point {num_data_point}" + ) velocity, ideal_step_size = yield from get_velocity_and_step_size( scan_motor, ideal_velocity, ideal_step_size ) LOGGER.info(f"{scan_motor.name} velocity = {velocity}.") - LOGGER.info(f"{step_motor.name} step size = {step_size}.") - # yield from bps.abs_set(det.drv.acquire_time, count_time + LOGGER.info(f"{step_motor.name} step size = {ideal_step_size}.") + # Set count time on detector + yield from bps.abs_set(det.drv.acquire_time, count_time) num_of_step = ceil(step_range / ideal_step_size) - + LOGGER.info(f"{step_motor.name} number of step = {num_of_step}.") yield from fast_scan_grid( [det], step_motor, @@ -70,10 +106,20 @@ def stxm_fast( def get_velocity_and_step_size( - scan_motor: Motor, ideal_velocity: float, ideal_step_size + scan_motor: Motor, ideal_velocity: float, ideal_step_size: float ) -> Iterator[Any]: - print(ideal_velocity) - if ideal_velocity <= 0.1: + """Adjust the step size if the required velocity is higher than max value. + + Parameters + ---------- + scan_motor: Motor, + The motor which will move continuously. + ideal_velocity: float + The velocity wanted. + ideal_step_size: float + The non-scanning motor step size. + """ + if ideal_velocity <= 0.0: raise ValueError(f"{scan_motor.name} speed: {ideal_velocity} <= 0") max_velocity = yield from bps.rd(scan_motor.max_velocity) # if motor does not move fast enough increase step_motor step size diff --git a/tests/jupyter_tests/Untitled.ipynb b/tests/jupyter_tests/Untitled.ipynb deleted file mode 100644 index c27fd7b..0000000 --- a/tests/jupyter_tests/Untitled.ipynb +++ /dev/null @@ -1,23 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "ba954da1-3cc4-4634-842d-331f773c98a3", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "", - "name": "" - }, - "language_info": { - "name": "" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tests/jupyter_tests/fast_scan_test.ipynb b/tests/jupyter_tests/fast_scan_test.ipynb index fde9c02..56c71ac 100644 --- a/tests/jupyter_tests/fast_scan_test.ipynb +++ b/tests/jupyter_tests/fast_scan_test.ipynb @@ -2,10 +2,275 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "58fe3420-313d-447a-bb09-7f9b85703169", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.593309030\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.593319786\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Y.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.593323853\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.593332020\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.593339409\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.593346837\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.593362629\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.593375131\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Y.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.593384188\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.593389282\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.600589617\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.600598845\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.600861769\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601081383\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Z.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601172491\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601211618\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601269405\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601341937\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601346145\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601349495\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:Z.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601352792\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601355919\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601359160\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601369238\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601375627\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:ZSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.601380672\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.605993487\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.610924379\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.616721260\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.621853908\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.627026213\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.632114907\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:X.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.637463908\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.642606636\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.647188178\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.652469735\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.656558383\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.661744904\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:X.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.666680455\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.671343556\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.675974223\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.681109073\n", + "..................................................................\n", + "CA.Client.Exception...............................................\n", + " Warning: \"Identical process variable names on multiple servers\"\n", + " Context: \"Channel: \"p99-MO-STAGE-02:YHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", + " Source File: modules/ca/src/client/cac.cpp line 1320\n", + " Current Time: Tue Jul 09 2024 11:21:00.685787501\n", + "..................................................................\n" + ] + } + ], "source": [ "import os \n", "os.chdir(\"/workspaces/p99-bluesky/tests/\")\n", @@ -45,31 +310,300 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "d437b274-146d-4c05-a118-e3e1dbb9a904", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-07-09 11:21:30,504 - P99 - INFO - ideal step size = 0.2782926792421032 velocity = 1.391463396210516number of data point 249.978\n", + "2024-07-09 11:21:30,504 - P99 - INFO - xyz_motor-y velocity = 1.391463396210516.\n", + "2024-07-09 11:21:30,505 - P99 - INFO - xyz_motor-x step size = 0.2782926792421032.\n", + "2024-07-09 11:21:30,505 - P99 - INFO - xyz_motor-x number of step = 16.\n", + "\n", + "\n", + "Transient Scan ID: 2 Time: 2024-07-09 11:21:30\n", + "Persistent Unique Scan ID: 'b947e1a1-2cab-43db-9b8f-f6280d457912'\n", + "2024-07-09 11:21:30,507 - P99 - INFO - Check xyz_motor-x limits.\n", + "2024-07-09 11:21:30,508 - P99 - INFO - Check xyz_motor-y limits.\n", + "2024-07-09 11:21:30,512 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:21:30,522 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:30,522 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "New stream: 'primary'\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| seq_num | time | xyz_motor-y | noisy_det | xyz_motor-x |\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| 1 | 11:21:30.5 | -2 | 1.039 | -2 |\n", + "| 2 | 11:21:30.7 | -2 | 1.010 | -2 |\n", + "| 3 | 11:21:30.9 | -1 | 0.955 | -2 |\n", + "| 4 | 11:21:31.1 | -1 | 0.994 | -2 |\n", + "| 5 | 11:21:31.3 | -0 | 0.973 | -2 |\n", + "| 6 | 11:21:31.4 | 0 | 0.998 | -2 |\n", + "| 7 | 11:21:31.6 | 1 | 0.901 | -2 |\n", + "| 8 | 11:21:31.8 | 1 | 1.041 | -2 |\n", + "| 9 | 11:21:32.0 | 2 | 1.092 | -2 |\n", + "2024-07-09 11:21:32,228 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:32,231 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:21:32,241 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:32,242 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 10 | 11:21:32.2 | 2 | 0.954 | -2 |\n", + "| 11 | 11:21:32.4 | 2 | 0.968 | -2 |\n", + "| 12 | 11:21:32.6 | 1 | 0.932 | -2 |\n", + "| 13 | 11:21:32.7 | 1 | 1.022 | -2 |\n", + "| 14 | 11:21:32.9 | 0 | 0.960 | -2 |\n", + "| 15 | 11:21:33.1 | -0 | 1.036 | -2 |\n", + "| 16 | 11:21:33.3 | -1 | 0.921 | -2 |\n", + "| 17 | 11:21:33.5 | -1 | 1.086 | -2 |\n", + "| 18 | 11:21:33.6 | -2 | 1.051 | -2 |\n", + "2024-07-09 11:21:33,881 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:33,888 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:21:33,898 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:33,899 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 19 | 11:21:33.9 | -2 | 1.083 | -2 |\n", + "| 20 | 11:21:34.0 | -2 | 0.953 | -2 |\n", + "| 21 | 11:21:34.2 | -1 | 0.958 | -2 |\n", + "| 22 | 11:21:34.4 | -1 | 1.029 | -2 |\n", + "| 23 | 11:21:34.6 | -0 | 1.033 | -2 |\n", + "| 24 | 11:21:34.8 | 0 | 0.975 | -2 |\n", + "| 25 | 11:21:35.0 | 1 | 0.948 | -2 |\n", + "| 26 | 11:21:35.2 | 1 | 0.936 | -2 |\n", + "| 27 | 11:21:35.4 | 2 | 0.985 | -2 |\n", + "2024-07-09 11:21:35,608 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:35,619 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:21:35,629 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:35,629 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 28 | 11:21:35.6 | 2 | 1.065 | -1 |\n", + "| 29 | 11:21:35.8 | 2 | 0.958 | -1 |\n", + "| 30 | 11:21:36.0 | 1 | 0.979 | -1 |\n", + "| 31 | 11:21:36.2 | 1 | 1.022 | -1 |\n", + "| 32 | 11:21:36.4 | 0 | 1.061 | -1 |\n", + "| 33 | 11:21:36.6 | -0 | 1.085 | -1 |\n", + "| 34 | 11:21:36.7 | -1 | 0.964 | -1 |\n", + "| 35 | 11:21:36.9 | -2 | 0.994 | -1 |\n", + "| 36 | 11:21:37.1 | -2 | 1.016 | -1 |\n", + "2024-07-09 11:21:37,388 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:37,398 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:21:37,408 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:37,409 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 37 | 11:21:37.4 | -2 | 0.922 | -1 |\n", + "| 38 | 11:21:37.6 | -2 | 0.980 | -1 |\n", + "| 39 | 11:21:37.8 | -1 | 1.035 | -1 |\n", + "| 40 | 11:21:38.0 | -1 | 1.032 | -1 |\n", + "| 41 | 11:21:38.2 | -0 | 0.921 | -1 |\n", + "| 42 | 11:21:38.3 | 0 | 1.087 | -1 |\n", + "| 43 | 11:21:38.5 | 1 | 0.954 | -1 |\n", + "| 44 | 11:21:38.8 | 2 | 1.026 | -1 |\n", + "2024-07-09 11:21:39,036 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:39,041 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:21:39,051 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:39,052 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 45 | 11:21:39.0 | 2 | 1.064 | -1 |\n", + "| 46 | 11:21:39.2 | 2 | 0.948 | -1 |\n", + "| 47 | 11:21:39.4 | 1 | 1.082 | -1 |\n", + "| 48 | 11:21:39.6 | 1 | 1.076 | -1 |\n", + "| 49 | 11:21:39.8 | 0 | 1.093 | -1 |\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| seq_num | time | xyz_motor-y | noisy_det | xyz_motor-x |\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| 50 | 11:21:40.0 | -1 | 1.035 | -1 |\n", + "| 51 | 11:21:40.2 | -1 | 1.075 | -1 |\n", + "| 52 | 11:21:40.4 | -2 | 1.059 | -1 |\n", + "| 53 | 11:21:40.6 | -2 | 1.008 | -1 |\n", + "2024-07-09 11:21:40,831 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:40,833 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:21:40,844 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:40,844 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 54 | 11:21:40.8 | -2 | 1.040 | -0 |\n", + "| 55 | 11:21:41.0 | -2 | 0.904 | -0 |\n", + "| 56 | 11:21:41.2 | -1 | 1.058 | -0 |\n", + "| 57 | 11:21:41.4 | -1 | 1.074 | -0 |\n", + "| 58 | 11:21:41.6 | -0 | 0.933 | -0 |\n", + "| 59 | 11:21:41.8 | 0 | 1.045 | -0 |\n", + "| 60 | 11:21:42.0 | 1 | 0.957 | -0 |\n", + "| 61 | 11:21:42.2 | 2 | 1.021 | -0 |\n", + "| 62 | 11:21:42.4 | 2 | 1.009 | -0 |\n", + "2024-07-09 11:21:42,613 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:42,621 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:21:42,631 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:42,632 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 63 | 11:21:42.6 | 2 | 0.998 | -0 |\n", + "| 64 | 11:21:42.8 | 2 | 1.009 | -0 |\n", + "| 65 | 11:21:43.0 | 1 | 0.926 | -0 |\n", + "| 66 | 11:21:43.2 | 1 | 0.987 | -0 |\n", + "| 67 | 11:21:43.4 | 0 | 1.046 | -0 |\n", + "| 68 | 11:21:43.6 | -1 | 0.964 | -0 |\n", + "| 69 | 11:21:43.8 | -1 | 0.905 | -0 |\n", + "| 70 | 11:21:44.0 | -2 | 0.977 | -0 |\n", + "2024-07-09 11:21:44,259 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:44,265 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:21:44,275 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:44,276 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 71 | 11:21:44.2 | -2 | 0.912 | 0 |\n", + "| 72 | 11:21:44.4 | -2 | 0.917 | 0 |\n", + "| 73 | 11:21:44.6 | -1 | 1.028 | 0 |\n", + "| 74 | 11:21:44.8 | -1 | 1.029 | 0 |\n", + "| 75 | 11:21:45.0 | -0 | 1.009 | 0 |\n", + "| 76 | 11:21:45.2 | 1 | 0.986 | 0 |\n", + "| 77 | 11:21:45.4 | 1 | 1.018 | 0 |\n", + "| 78 | 11:21:45.6 | 2 | 1.047 | 0 |\n", + "| 79 | 11:21:45.8 | 2 | 1.047 | 0 |\n", + "2024-07-09 11:21:46,047 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:46,057 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:21:46,067 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:46,067 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 80 | 11:21:46.0 | 2 | 1.015 | 0 |\n", + "| 81 | 11:21:46.2 | 2 | 0.972 | 0 |\n", + "| 82 | 11:21:46.4 | 1 | 1.049 | 0 |\n", + "| 83 | 11:21:46.6 | 1 | 1.075 | 0 |\n", + "| 84 | 11:21:46.8 | -0 | 0.940 | 0 |\n", + "| 85 | 11:21:47.0 | -1 | 0.937 | 0 |\n", + "| 86 | 11:21:47.2 | -1 | 1.039 | 0 |\n", + "| 87 | 11:21:47.4 | -2 | 0.939 | 0 |\n", + "2024-07-09 11:21:47,683 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:47,691 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:21:47,701 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:47,702 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 88 | 11:21:47.7 | -2 | 1.032 | 1 |\n", + "| 89 | 11:21:47.9 | -2 | 0.951 | 1 |\n", + "| 90 | 11:21:48.1 | -1 | 1.080 | 1 |\n", + "| 91 | 11:21:48.3 | -1 | 0.907 | 1 |\n", + "| 92 | 11:21:48.5 | -0 | 0.957 | 1 |\n", + "| 93 | 11:21:48.6 | 1 | 1.056 | 1 |\n", + "| 94 | 11:21:48.8 | 1 | 0.977 | 1 |\n", + "| 95 | 11:21:49.1 | 2 | 0.998 | 1 |\n", + "2024-07-09 11:21:49,305 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:49,310 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:21:49,320 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:49,320 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 96 | 11:21:49.3 | 2 | 0.942 | 1 |\n", + "| 97 | 11:21:49.5 | 2 | 1.058 | 1 |\n", + "| 98 | 11:21:49.7 | 1 | 0.977 | 1 |\n", + "| 99 | 11:21:49.8 | 1 | 0.987 | 1 |\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| seq_num | time | xyz_motor-y | noisy_det | xyz_motor-x |\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| 100 | 11:21:50.0 | 0 | 0.910 | 1 |\n", + "| 101 | 11:21:50.2 | -0 | 0.924 | 1 |\n", + "| 102 | 11:21:50.4 | -1 | 1.044 | 1 |\n", + "| 103 | 11:21:50.6 | -1 | 1.059 | 1 |\n", + "| 104 | 11:21:50.8 | -2 | 1.012 | 1 |\n", + "2024-07-09 11:21:51,036 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:51,041 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:21:51,051 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:51,051 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 105 | 11:21:51.0 | -2 | 0.968 | 1 |\n", + "| 106 | 11:21:51.2 | -2 | 1.006 | 1 |\n", + "| 107 | 11:21:51.4 | -1 | 0.907 | 1 |\n", + "| 108 | 11:21:51.6 | -1 | 1.004 | 1 |\n", + "| 109 | 11:21:51.8 | -0 | 0.998 | 1 |\n", + "| 110 | 11:21:51.9 | 0 | 1.050 | 1 |\n", + "| 111 | 11:21:52.1 | 1 | 1.081 | 1 |\n", + "| 112 | 11:21:52.3 | 1 | 1.099 | 1 |\n", + "| 113 | 11:21:52.5 | 2 | 1.007 | 1 |\n", + "2024-07-09 11:21:52,766 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:52,773 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:21:52,783 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:52,783 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 114 | 11:21:52.7 | 2 | 1.021 | 2 |\n", + "| 115 | 11:21:52.9 | 2 | 1.070 | 2 |\n", + "| 116 | 11:21:53.1 | 1 | 0.929 | 2 |\n", + "| 117 | 11:21:53.3 | 1 | 0.935 | 2 |\n", + "| 118 | 11:21:53.5 | 0 | 0.985 | 2 |\n", + "| 119 | 11:21:53.7 | -0 | 0.925 | 2 |\n", + "| 120 | 11:21:53.9 | -1 | 0.975 | 2 |\n", + "| 121 | 11:21:54.0 | -1 | 0.977 | 2 |\n", + "| 122 | 11:21:54.2 | -2 | 0.959 | 2 |\n", + "2024-07-09 11:21:54,475 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:54,480 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:21:54,490 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:54,490 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 123 | 11:21:54.4 | -2 | 1.026 | 2 |\n", + "| 124 | 11:21:54.6 | -2 | 1.043 | 2 |\n", + "| 125 | 11:21:54.8 | -1 | 1.062 | 2 |\n", + "| 126 | 11:21:55.0 | -1 | 0.960 | 2 |\n", + "| 127 | 11:21:55.2 | -0 | 1.069 | 2 |\n", + "| 128 | 11:21:55.4 | 0 | 1.030 | 2 |\n", + "| 129 | 11:21:55.6 | 1 | 0.959 | 2 |\n", + "| 130 | 11:21:55.8 | 1 | 1.043 | 2 |\n", + "| 131 | 11:21:55.9 | 2 | 1.029 | 2 |\n", + "2024-07-09 11:21:56,178 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:21:56,188 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:21:56,198 - P99 - INFO - Set xyz_motor-y speed = 1.391463396210516.\n", + "2024-07-09 11:21:56,199 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 132 | 11:21:56.2 | 2 | 0.910 | 2 |\n", + "| 133 | 11:21:56.3 | 2 | 0.990 | 2 |\n", + "| 134 | 11:21:56.5 | 1 | 0.916 | 2 |\n", + "| 135 | 11:21:56.7 | 1 | 0.918 | 2 |\n", + "| 136 | 11:21:56.9 | 0 | 0.986 | 2 |\n", + "| 137 | 11:21:57.1 | -0 | 1.026 | 2 |\n", + "| 138 | 11:21:57.3 | -1 | 1.032 | 2 |\n", + "| 139 | 11:21:57.5 | -1 | 1.033 | 2 |\n", + "| 140 | 11:21:57.7 | -2 | 1.036 | 2 |\n", + "2024-07-09 11:21:57,905 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "+-----------+------------+-------------+------------+-------------+\n", + "generator stxm_fast ['b947e1a1'] (scan num: 2)\n", + "\n", + "\n", + "\n", + "2024-07-09 11:21:58,183 - P99 - INFO - Clean up\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "uid, = RE(stxm_fast(\n", " det=det,\n", - " count_time = 0.5,\n", - " scan_motor = xyz_motor.x,\n", - " scan_start = -2.2,\n", - " scan_end = 2.2,\n", - " step_motor = xyz_motor.y,\n", + " count_time = 0.2,\n", + " step_motor = xyz_motor.x,\n", " step_start = -2.2,\n", " step_end = 2.2,\n", + " scan_motor = xyz_motor.y,\n", + " scan_start = -2.2,\n", + " scan_end = 2.2,\n", " plan_time = 50,\n", "),bec)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "0e37db82-9b3e-4f9c-9999-14b5702343a9", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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LlpaWorup7sesrwE8NZbb6Gvrw9333031q9fj9tvvx3Lli3DNddcE7jfVVddhT/+8Y945JFH8Pzzz+PDDz/EmWeeqemoxejt7cU555yDyy67TGi/OXPm4KOPPsq8fve73yk6wnhEOb9bbrkFv/jFL7Bs2TKsWbMG++23H2bPno3ubppPA7zggguwfv16rFy5Ek8++SReeOEFXHLJJUX3W7BgQb97eMstt2g42mB+//vfo6GhATfccAP++te/4qijjsLs2bPx8ccf593+5Zdfxvnnn4+LL74Yr732GubOnYu5c+fizTff1Hzk4RE9R2DPSqbZ9+qDDz7QeMRi7NixA0cddRTuuuuuUNtv3LgRp59+Ok466SSsW7cOixYtwre//W386U9/Unyk0RA9P5+WlpZ+93DUqFGKjjAezz//PC6//HK88sorWLlyJXbt2oVTTjkFO3YUfjqlkXroMULccsst3vjx4wv++9atW71BgwZ5jzzySOa9DRs2eAC85uZmHYcYifvvv9+rrKwMte28efO8M844Q+nxyCbs+fX19XnV1dXerbfemnlv69atXiqV8n73u98pPMJo/O1vf/MAeH/5y18y7/3v//6vV1JS4rW3txfc78QTT/SuvPJKDUcoxtSpU73LL7888/fu3bu9MWPGeI2NjXm3/7d/+zfv9NNP7/fetGnTvO985ztKjzMOoucoUjepAcB7/PHHA7f5/ve/7x122GH93jv33HO92bNnKzwyOYQ5v+eee84D4P3973/Xckyy+fjjjz0A3vPPP19wGxP1kCMvgnR1dWH48OEF/33t2rXYtWsXZs2alXlv8uTJqK2tRXNzs45D1MLq1asxatQoTJo0CZdddhk+/fRT04ckhY0bN6Kjo6Pf/ausrMS0adNI3r/m5mYMGzYMxx57bOa9WbNmobS0FGvWrAnc98EHH8SIESNw+OGHY8mSJfj8889VH24gvb29WLt2bb9rX1pailmzZhW89s3Nzf22B4DZs2eTvFdAtHMEgO3bt+PAAw9ETU0NzjjjDKxfv17H4WrBtnsYlSlTpmD06NH453/+Z7z00kumDyc0XV1dABDY75m4h849mFElra2tuPPOO3HbbbcV3KajowNlZWX75FdUVVWRHeMUZc6cOTjzzDMxfvx4vPvuu7jmmmtw6qmnorm5GQMGDDB9eLHw71FVVVW/96nev46Ojn3CzwMHDsTw4cMDj/cb3/gGDjzwQIwZMwavv/46fvCDH6ClpQWPPfaY6kMuyCeffILdu3fnvfZvvfVW3n06OjqsuVdAtHOcNGkS7rvvPhx55JHo6urCbbfdhunTp2P9+vXKH0Krg0L3MJ1OY+fOnRg8eLChI5PD6NGjsWzZMhx77LHo6enBvffeixkzZmDNmjU45phjTB9eIH19fVi0aBGOP/54HH744QW3M1EPExl5Wbx4cd4EquxXbkPS3t6OOXPm4JxzzsGCBQsMHXk4opyfCOeddx7+9V//FUcccQTmzp2LJ598En/5y1+wevVqeScRgOrzo4Dqc7zkkkswe/ZsHHHEEbjgggvwwAMP4PHHH8e7774r8SwYGdTX1+PCCy/ElClTcOKJJ+Kxxx7DyJEjcffdd5s+NCYEkyZNwne+8x3U1dVh+vTpuO+++zB9+nTcfvvtpg+tKJdffjnefPNNPPzww6YPZR8SGXm5+uqrMX/+/MBtJkyYkPn/Dz/8ECeddBKmT5+Oe+65J3C/6upq9Pb2YuvWrf2iL52dnaiuro5z2KERPb+4TJgwASNGjEBraytmzpwp7XMLofL8/HvU2dmJ0aNHZ97v7OzElClTIn1mFMKeY3V19T6Jnl988QU+++wzofI2bdo0AHuiiwcddJDw8cpgxIgRGDBgwD4z84LqTnV1tdD2polyjrkMGjQIRx99NFpbW1UconYK3cOKigrroy6FmDp1Kl588UXThxHIwoULMxMAikX4TNTDRMrLyJEjMXLkyFDbtre346STTkJdXR3uv/9+lJYGB6vq6uowaNAgNDU14ayzzgKwJ8u8ra0N9fX1sY89DCLnJ4PNmzfj008/7dfZq0Tl+Y0fPx7V1dVoamrKyEo6ncaaNWuEZ2TFIew51tfXY+vWrVi7di3q6uoAAKtWrUJfX19GSMKwbt06ANB2D/NRVlaGuro6NDU1Ye7cuQD2hK2bmpqwcOHCvPvU19ejqakJixYtyry3cuVKbXVNlCjnmMvu3bvxxhtv4LTTTlN4pPqor6/fZ1ot5Xsog3Xr1hmta0F4nocrrrgCjz/+OFavXo3x48cX3cdIPVSWCuwAmzdv9iZOnOjNnDnT27x5s/fRRx9lXtnbTJo0yVuzZk3mvUsvvdSrra31Vq1a5b366qtefX29V19fb+IUivLBBx94r732mrd06VJv//3391577TXvtdde87Zt25bZZtKkSd5jjz3meZ7nbdu2zfuP//gPr7m52du4caP37LPPesccc4x38MEHe93d3aZOoyCi5+d5nvdf//Vf3rBhw7wnnnjCe/31170zzjjDGz9+vLdz504Tp1CUOXPmeEcffbS3Zs0a78UXX/QOPvhg7/zzz8/8e24ZbW1t9X70ox95r776qrdx40bviSee8CZMmOCdcMIJpk4hw8MPP+ylUilv+fLl3t/+9jfvkksu8YYNG+Z1dHR4nud53/zmN73Fixdntn/ppZe8gQMHerfddpu3YcMG74YbbvAGDRrkvfHGG6ZOoSii57h06VLvT3/6k/fuu+96a9eu9c477zyvvLzcW79+valTCGTbtm2ZegbA+9nPfua99tpr3gcffOB5nuctXrzY++Y3v5nZ/r333vOGDBnife973/M2bNjg3XXXXd6AAQO8Z555xtQpBCJ6frfffru3YsUK75133vHeeOMN78orr/RKS0u9Z5991tQpBHLZZZd5lZWV3urVq/v1eZ9//nlmGwr1kOUlgPvvv98DkPfls3HjRg+A99xzz2Xe27lzp/fd737X+9KXvuQNGTLE+/rXv95PeCgxb968vOeXfT4AvPvvv9/zPM/7/PPPvVNOOcUbOXKkN2jQIO/AAw/0FixYkGl4qSF6fp63Z7r0dddd51VVVXmpVMqbOXOm19LSov/gQ/Lpp596559/vrf//vt7FRUV3kUXXdRPznLLaFtbm3fCCSd4w4cP91KplDdx4kTve9/7ntfV1WXoDPpz5513erW1tV5ZWZk3depU75VXXsn824knnujNmzev3/Z/+MMfvEMOOcQrKyvzDjvsMO+pp57SfMTiiJzjokWLMttWVVV5p512mvfXv/7VwFGHw58anPvyz2nevHneiSeeuM8+U6ZM8crKyrwJEyb0q4/UED2/m2++2TvooIO88vJyb/jw4d6MGTO8VatWmTn4EBTq87LvCYV6WPKPg2UYhmEYhrGCRM42YhiGYRjGXlheGIZhGIaxCpYXhmEYhmGsguWFYRiGYRirYHlhGIZhGMYqWF4YhmEYhrEKlheGYRiGYayC5YVhGIZhGKtgeWEYhmEYxipYXhiGYRiGsQqWF4ZhGIZhrILlhWEYhmEYq/j/wfhTraVxs4EAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ + "import matplotlib.pyplot as plt\n", "header = db[-1]\n", "data = header.table()\n", "plt.tricontourf(data[\"xyz_motor-y\"],data[\"xyz_motor-x\"],data['noisy_det'])" @@ -77,256 +611,371 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "e1bbed8a-11e5-4bd5-a267-e28d6e22134a", - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dcda2ee8-dece-4dcc-9314-2590c9646e1e", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "281491c4-3b72-4627-bd14-0293bce7ae2d", - "metadata": {}, - "outputs": [], - "source": [ - "k = RE(get_velocity_and_step_size(xyz_motor.x, 20, 0.1))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "92a3fb8e-0385-4f75-aa9a-795662ed423e", - "metadata": {}, - "outputs": [], - "source": [ - "RE.abort() " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d27ca3b9-a980-47a8-ba0c-118adcd55234", - "metadata": {}, - "outputs": [], - "source": [ - "RE(fast_scan_grid([det],xyz_motor.x,-2,2,3, xyz_motor.y,-0,-10,1),bec)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f338149e-cdfd-4e04-b8a4-635fcabee41d", - "metadata": {}, - "outputs": [], - "source": [ - "RE(fast_scan_grid([det],xyz_motor.x,0,5,10, xyz_motor.y,-0,-10,5,snake_axes = True),bec)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "35d1be9a-07d0-4b55-9b12-95cf4c9c0608", - "metadata": {}, - "outputs": [], - "source": [ - "RE(fast_scan([det],xyz_motor.x,-8.888,18880,5\n", - " ))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6c280df5-7726-44a8-8cc1-28d13bc7be1e", - "metadata": {}, - "outputs": [], - "source": [ - "import bluesky.plan_patterns as bpp\n", - "import bluesky.plan_stubs as bps\n", - "from bluesky.simulators import check_limits\n", - "from ophyd_async.epics.motion import Motor\n", - "from ophyd_async.protocols import AsyncReadable\n", - "import asyncio\n", - "from typing import Optional\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "39faa52a-36c7-483d-afd7-1848b7ea645b", - "metadata": {}, - "outputs": [], - "source": [ - "def plan(motor):\n", - " y = yield from bps.read(motor.x)\n", - " print(y)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d303fd1d-b944-4ff9-a55b-22f6fb1c1aa0", - "metadata": {}, - "outputs": [], - "source": [ - "RE(bps.abs_set(xyz_motor.y.velocity,100))\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dad0c338-9440-4b6d-a196-cbf31f8210aa", - "metadata": {}, - "outputs": [], - "source": [ - "RE(bps.abs_set(xyz_motor.x.velocity,100))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b30f312c-83ab-4381-833e-7c3d2d8c7c2f", - "metadata": {}, - "outputs": [], - "source": [ - "def set_and_count(det,motor,end):\n", - " yield from bps.abs_set(xyz_motor.x,end) \n", - " current_value = yield from bps.rd(motor.user_readback)\n", - " while abs(end - current_value) > 1e-7:\n", - " yield from count(det+[motor], num=1)\n", - " current_value = yield from bps.rd(motor.user_readback)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b4f28923-739f-426d-9aea-3dc6b137a06e", - "metadata": {}, - "outputs": [], - "source": [ - "from ophyd.sim import det, det1, motor1\n", - "from bluesky.plans import count\n", - "from bluesky.preprocessors import monitor_during_wrapper\n", - "\n", - "# Record any updates from det1 while 'counting' det 5 times.\n", - "RE(set_and_count([det],xyz_motor.x,7),bec)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3ba8b1c6-4799-4ae0-b234-1dbb6ed92529", - "metadata": {}, - "outputs": [], - "source": [ - "a = [1,2,3,4]\n", - "b = 5" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b4571fbd-b939-4515-83b9-79ccba65856a", - "metadata": {}, - "outputs": [], - "source": [ - "c = a,b" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5c6d700c-4ffb-4956-bc15-ce26b33e3e5c", - "metadata": {}, - "outputs": [], - "source": [ - "c" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "79058ee5-65ec-488c-abaf-e32325a52614", - "metadata": {}, - "outputs": [], - "source": [ - "from bluesky.plans import grid_scan\n", - "from ophyd.sim import det5, jittery_motor1, jittery_motor2\n", - "from bluesky.callbacks.mpl_plotting import LiveScatter\n", - "\n", - "# The 'jittery' example motors won't go exactly where they are told to go.\n", - "\n", - "RE(grid_scan([det5],\n", - " jittery_motor1, -3, 3, 6,\n", - " jittery_motor2, -5, 5, 10, False),\n", - " LiveScatter('jittery_motor1', 'jittery_motor2', 'det5',\n", - " xlim=(-3, 3), ylim=(-5, 5)))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ae3af411-6e83-4485-97e3-af193cca6e9b", + "execution_count": 5, + "id": "4551503d-084d-41e6-a096-bdd7db2934d8", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "def test(count_time: float,\n", - " scan_range: float,\n", - " step_range: float,\n", - " plan_time :float,):\n", - " num_data_point = plan_time/count_time\n", - " step_size = 1.0/(num_data_point/(scan_range*step_range))**0.5\n", - " ideal_velocity = step_size/count_time\n", - " #smallest_possible_step_size = scan_motor.max_velocity\n", - "\n", - " print(ideal_velocity,step_size)" + "plt.plot(data[\"xyz_motor-x\"],data[\"xyz_motor-y\"])" ] }, { "cell_type": "code", - "execution_count": null, - "id": "415e3926-ef2c-45c3-a529-10f8380b289f", + "execution_count": 6, + "id": "c39068a7-8641-4471-b11e-83ccdbddcc25", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2024-07-09 11:22:09,674 - P99 - INFO - ideal step size = 0.27829267924 velocity = 1.391463396221032number of data point 499.956\n", + "2024-07-09 11:22:09,675 - P99 - INFO - xyz_motor-y velocity = 1.391463396221032.\n", + "2024-07-09 11:22:09,675 - P99 - INFO - xyz_motor-x step size = 0.27829267924.\n", + "2024-07-09 11:22:09,675 - P99 - INFO - xyz_motor-x number of step = 16.\n", + "\n", + "\n", + "Transient Scan ID: 3 Time: 2024-07-09 11:22:09\n", + "Persistent Unique Scan ID: '745c6b97-9387-4c2b-9ec0-36b584095967'\n", + "2024-07-09 11:22:09,678 - P99 - INFO - Check xyz_motor-x limits.\n", + "2024-07-09 11:22:09,679 - P99 - INFO - Check xyz_motor-y limits.\n", + "2024-07-09 11:22:09,690 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:22:09,699 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:09,700 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "New stream: 'primary'\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| seq_num | time | xyz_motor-y | noisy_det | xyz_motor-x |\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| 1 | 11:22:09.7 | 2 | 0.981 | 2 |\n", + "| 2 | 11:22:09.9 | 1 | 0.993 | 2 |\n", + "| 3 | 11:22:10.1 | 1 | 1.079 | 2 |\n", + "| 4 | 11:22:10.3 | 0 | 1.004 | 2 |\n", + "| 5 | 11:22:10.5 | -0 | 0.913 | 2 |\n", + "| 6 | 11:22:10.7 | -1 | 0.914 | 2 |\n", + "| 7 | 11:22:10.8 | -1 | 0.936 | 2 |\n", + "| 8 | 11:22:11.0 | -2 | 1.066 | 2 |\n", + "| 9 | 11:22:11.2 | -2 | 0.965 | 2 |\n", + "2024-07-09 11:22:11,460 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:11,470 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:22:11,480 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:11,481 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 10 | 11:22:11.4 | -2 | 1.081 | 2 |\n", + "| 11 | 11:22:11.6 | -2 | 0.989 | 2 |\n", + "| 12 | 11:22:11.8 | -1 | 0.944 | 2 |\n", + "| 13 | 11:22:12.0 | -1 | 0.985 | 2 |\n", + "| 14 | 11:22:12.2 | -0 | 0.920 | 2 |\n", + "| 15 | 11:22:12.4 | 0 | 1.056 | 2 |\n", + "| 16 | 11:22:12.6 | 1 | 1.087 | 2 |\n", + "| 17 | 11:22:12.8 | 1 | 1.083 | 2 |\n", + "| 18 | 11:22:12.9 | 2 | 1.054 | 2 |\n", + "2024-07-09 11:22:13,185 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:13,193 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:22:13,203 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:13,204 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 19 | 11:22:13.2 | 2 | 0.917 | 2 |\n", + "| 20 | 11:22:13.3 | 2 | 1.021 | 2 |\n", + "| 21 | 11:22:13.5 | 1 | 0.932 | 2 |\n", + "| 22 | 11:22:13.7 | 1 | 0.927 | 2 |\n", + "| 23 | 11:22:13.9 | 0 | 0.966 | 2 |\n", + "| 24 | 11:22:14.1 | -0 | 0.956 | 2 |\n", + "| 25 | 11:22:14.3 | -1 | 0.920 | 2 |\n", + "| 26 | 11:22:14.5 | -2 | 0.917 | 2 |\n", + "| 27 | 11:22:14.7 | -2 | 1.024 | 2 |\n", + "2024-07-09 11:22:14,992 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:14,997 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:22:15,007 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:15,007 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 28 | 11:22:15.0 | -2 | 0.944 | 1 |\n", + "| 29 | 11:22:15.2 | -2 | 1.049 | 1 |\n", + "| 30 | 11:22:15.4 | -1 | 1.053 | 1 |\n", + "| 31 | 11:22:15.5 | -1 | 1.009 | 1 |\n", + "| 32 | 11:22:15.7 | -0 | 1.000 | 1 |\n", + "| 33 | 11:22:16.0 | 1 | 1.018 | 1 |\n", + "| 34 | 11:22:16.2 | 1 | 0.904 | 1 |\n", + "| 35 | 11:22:16.4 | 2 | 1.020 | 1 |\n", + "| 36 | 11:22:16.6 | 2 | 1.066 | 1 |\n", + "2024-07-09 11:22:16,806 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:16,811 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:22:16,821 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:16,822 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 37 | 11:22:16.8 | 2 | 0.918 | 1 |\n", + "| 38 | 11:22:17.0 | 2 | 1.000 | 1 |\n", + "| 39 | 11:22:17.2 | 1 | 1.026 | 1 |\n", + "| 40 | 11:22:17.4 | 0 | 0.959 | 1 |\n", + "| 41 | 11:22:17.6 | -0 | 0.982 | 1 |\n", + "| 42 | 11:22:17.8 | -1 | 0.931 | 1 |\n", + "| 43 | 11:22:18.0 | -1 | 0.947 | 1 |\n", + "| 44 | 11:22:18.2 | -2 | 1.005 | 1 |\n", + "2024-07-09 11:22:18,438 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:18,442 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:22:18,452 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:18,453 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 45 | 11:22:18.4 | -2 | 0.941 | 1 |\n", + "| 46 | 11:22:18.6 | -2 | 1.007 | 1 |\n", + "| 47 | 11:22:18.8 | -1 | 0.980 | 1 |\n", + "| 48 | 11:22:19.0 | -1 | 0.988 | 1 |\n", + "| 49 | 11:22:19.2 | -0 | 1.074 | 1 |\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| seq_num | time | xyz_motor-y | noisy_det | xyz_motor-x |\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| 50 | 11:22:19.4 | 0 | 1.046 | 1 |\n", + "| 51 | 11:22:19.6 | 1 | 0.916 | 1 |\n", + "| 52 | 11:22:19.8 | 2 | 1.046 | 1 |\n", + "| 53 | 11:22:20.0 | 2 | 0.935 | 1 |\n", + "2024-07-09 11:22:20,231 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:20,236 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:22:20,246 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:20,246 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 54 | 11:22:20.2 | 2 | 1.085 | 0 |\n", + "| 55 | 11:22:20.4 | 2 | 0.951 | 0 |\n", + "| 56 | 11:22:20.6 | 1 | 1.018 | 0 |\n", + "| 57 | 11:22:20.8 | 1 | 0.963 | 0 |\n", + "| 58 | 11:22:21.0 | -0 | 0.942 | 0 |\n", + "| 59 | 11:22:21.2 | -1 | 1.009 | 0 |\n", + "| 60 | 11:22:21.4 | -1 | 0.976 | 0 |\n", + "| 61 | 11:22:21.6 | -2 | 1.025 | 0 |\n", + "2024-07-09 11:22:21,860 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:21,865 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:22:21,875 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:21,875 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 62 | 11:22:21.8 | -2 | 1.008 | 0 |\n", + "| 63 | 11:22:22.0 | -2 | 0.992 | 0 |\n", + "| 64 | 11:22:22.2 | -1 | 0.942 | 0 |\n", + "| 65 | 11:22:22.4 | -1 | 1.071 | 0 |\n", + "| 66 | 11:22:22.6 | -0 | 0.939 | 0 |\n", + "| 67 | 11:22:22.8 | 1 | 1.055 | 0 |\n", + "| 68 | 11:22:23.1 | 1 | 1.053 | 0 |\n", + "| 69 | 11:22:23.3 | 2 | 1.070 | 0 |\n", + "2024-07-09 11:22:23,515 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:23,524 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:22:23,534 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:23,535 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 70 | 11:22:23.5 | 2 | 1.004 | -0 |\n", + "| 71 | 11:22:23.7 | 2 | 1.055 | -0 |\n", + "| 72 | 11:22:23.9 | 1 | 0.999 | -0 |\n", + "| 73 | 11:22:24.1 | 1 | 1.006 | -0 |\n", + "| 74 | 11:22:24.3 | -0 | 0.984 | -0 |\n", + "| 75 | 11:22:24.5 | -1 | 0.959 | -0 |\n", + "| 76 | 11:22:24.7 | -1 | 1.047 | -0 |\n", + "| 77 | 11:22:24.9 | -2 | 1.053 | -0 |\n", + "2024-07-09 11:22:25,197 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:25,203 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:22:25,213 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:25,213 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 78 | 11:22:25.2 | -2 | 1.075 | -0 |\n", + "| 79 | 11:22:25.4 | -2 | 1.064 | -0 |\n", + "| 80 | 11:22:25.6 | -1 | 0.972 | -0 |\n", + "| 81 | 11:22:25.8 | -1 | 1.095 | -0 |\n", + "| 82 | 11:22:26.0 | 0 | 0.951 | -0 |\n", + "| 83 | 11:22:26.2 | 1 | 0.906 | -0 |\n", + "| 84 | 11:22:26.4 | 1 | 1.001 | -0 |\n", + "| 85 | 11:22:26.6 | 2 | 0.978 | -0 |\n", + "| 86 | 11:22:26.8 | 2 | 0.936 | -0 |\n", + "2024-07-09 11:22:26,997 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:27,008 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:22:27,018 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:27,019 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 87 | 11:22:27.0 | 2 | 1.051 | -1 |\n", + "| 88 | 11:22:27.2 | 2 | 1.050 | -1 |\n", + "| 89 | 11:22:27.4 | 1 | 0.991 | -1 |\n", + "| 90 | 11:22:27.6 | 1 | 1.038 | -1 |\n", + "| 91 | 11:22:27.7 | 0 | 0.983 | -1 |\n", + "| 92 | 11:22:27.9 | -0 | 1.055 | -1 |\n", + "| 93 | 11:22:28.1 | -1 | 1.082 | -1 |\n", + "| 94 | 11:22:28.3 | -2 | 0.942 | -1 |\n", + "| 95 | 11:22:28.5 | -2 | 1.080 | -1 |\n", + "2024-07-09 11:22:28,772 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:28,775 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:22:28,784 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:28,785 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 96 | 11:22:28.7 | -2 | 1.092 | -1 |\n", + "| 97 | 11:22:28.9 | -2 | 1.027 | -1 |\n", + "| 98 | 11:22:29.1 | -1 | 1.026 | -1 |\n", + "| 99 | 11:22:29.3 | -1 | 1.025 | -1 |\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| seq_num | time | xyz_motor-y | noisy_det | xyz_motor-x |\n", + "+-----------+------------+-------------+------------+-------------+\n", + "| 100 | 11:22:29.5 | -0 | 0.980 | -1 |\n", + "| 101 | 11:22:29.7 | 0 | 0.935 | -1 |\n", + "| 102 | 11:22:29.9 | 1 | 0.959 | -1 |\n", + "| 103 | 11:22:30.1 | 1 | 0.932 | -1 |\n", + "| 104 | 11:22:30.3 | 2 | 0.913 | -1 |\n", + "2024-07-09 11:22:30,491 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:30,493 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:22:30,503 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:30,504 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 105 | 11:22:30.5 | 2 | 1.069 | -1 |\n", + "| 106 | 11:22:30.6 | 2 | 0.993 | -1 |\n", + "| 107 | 11:22:30.8 | 1 | 0.958 | -1 |\n", + "| 108 | 11:22:31.0 | 1 | 0.910 | -1 |\n", + "| 109 | 11:22:31.2 | 0 | 1.004 | -1 |\n", + "| 110 | 11:22:31.4 | -0 | 0.962 | -1 |\n", + "| 111 | 11:22:31.6 | -1 | 1.040 | -1 |\n", + "| 112 | 11:22:31.8 | -1 | 0.975 | -1 |\n", + "| 113 | 11:22:32.0 | -2 | 0.991 | -1 |\n", + "2024-07-09 11:22:32,225 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:32,231 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:22:32,241 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:32,242 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 114 | 11:22:32.2 | -2 | 1.030 | -2 |\n", + "| 115 | 11:22:32.4 | -2 | 1.090 | -2 |\n", + "| 116 | 11:22:32.6 | -1 | 1.096 | -2 |\n", + "| 117 | 11:22:32.8 | -1 | 0.981 | -2 |\n", + "| 118 | 11:22:32.9 | -0 | 0.957 | -2 |\n", + "| 119 | 11:22:33.1 | 0 | 1.052 | -2 |\n", + "| 120 | 11:22:33.3 | 1 | 0.910 | -2 |\n", + "| 121 | 11:22:33.5 | 1 | 1.068 | -2 |\n", + "| 122 | 11:22:33.7 | 2 | 0.930 | -2 |\n", + "2024-07-09 11:22:33,919 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:33,930 - P99 - INFO - Moving xyz_motor-y to start position = 2.2.\n", + "2024-07-09 11:22:33,939 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:33,940 - P99 - INFO - Set xyz_motor-y to end position(-2.2) and begin scan.\n", + "| 123 | 11:22:33.9 | 2 | 1.007 | -2 |\n", + "| 124 | 11:22:34.1 | 2 | 1.071 | -2 |\n", + "| 125 | 11:22:34.3 | 1 | 0.920 | -2 |\n", + "| 126 | 11:22:34.5 | 1 | 1.065 | -2 |\n", + "| 127 | 11:22:34.6 | 0 | 1.002 | -2 |\n", + "| 128 | 11:22:34.8 | -0 | 1.046 | -2 |\n", + "| 129 | 11:22:35.0 | -1 | 1.002 | -2 |\n", + "| 130 | 11:22:35.2 | -1 | 0.997 | -2 |\n", + "| 131 | 11:22:35.4 | -2 | 0.936 | -2 |\n", + "2024-07-09 11:22:35,604 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "2024-07-09 11:22:35,609 - P99 - INFO - Moving xyz_motor-y to start position = -2.2.\n", + "2024-07-09 11:22:35,618 - P99 - INFO - Set xyz_motor-y speed = 1.391463396221032.\n", + "2024-07-09 11:22:35,619 - P99 - INFO - Set xyz_motor-y to end position(2.2) and begin scan.\n", + "| 132 | 11:22:35.6 | -2 | 1.017 | -2 |\n", + "| 133 | 11:22:35.8 | -2 | 0.940 | -2 |\n", + "| 134 | 11:22:35.9 | -1 | 1.009 | -2 |\n", + "| 135 | 11:22:36.1 | -1 | 1.021 | -2 |\n", + "| 136 | 11:22:36.3 | -0 | 0.964 | -2 |\n", + "| 137 | 11:22:36.5 | 0 | 1.051 | -2 |\n", + "| 138 | 11:22:36.7 | 1 | 1.026 | -2 |\n", + "| 139 | 11:22:36.9 | 1 | 0.967 | -2 |\n", + "| 140 | 11:22:37.1 | 2 | 1.028 | -2 |\n", + "2024-07-09 11:22:37,298 - P99 - INFO - Clean up: setting motor speed to 1000.0.\n", + "+-----------+------------+-------------+------------+-------------+\n", + "generator stxm_fast ['745c6b97'] (scan num: 3)\n", + "\n", + "\n", + "\n", + "2024-07-09 11:22:37,582 - P99 - INFO - Clean up\n" + ] + }, + { + "data": { + "image/png": "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9NOVe+Lb3/72DI6w+TzwwAO47LLL8PDDD+Oee+5BoVDAW9/6VkxMTDjbfPSjH8V//dd/4Tvf+Q4eeOABbNu2Deedd14LRx0fYc4fAC6++GLlPvjHf/zHFo04fvbbbz989rOfxaZNm/DII4/gLW95C84++2z89re/BRDj92+TtuSEE06wL7vsMud1qVSylyxZYl977bUtHNXMcfXVV9urV69u9TBaBgD7zjvvdF6Xy2V70aJF9uc+9znnvd27d9v5fN7+9re/3YIRNhf9/G3bti+88EL77LPPbsl4WsXIyIgNwH7ggQds265859ls1v7Od77jbPO73/3OBmA/9NBDrRpm09DP37Zt+81vfrP9V3/1V60bVAuYPXu2/dWvfjXW75+afxsyPT2NTZs2Yd26dc57qVQK69atw0MPPdTCkc0sTz/9NJYsWYKVK1fi3e9+N7Zu3drqIbWMLVu2YMeOHco9MTQ0hDVr1nTVPXH//fdjwYIFOPTQQ3HppZfi5ZdfbvWQmsro6CgAYM6cOQCATZs2oVAoKPfBqlWrsP/++yfyPtDPX/Af//EfmDdvHo444ghceeWV2Lt3byuG13RKpRJuvfVWTExMYO3atbF+/2zs04bs2rULpVIJCxcuVN5fuHAhnnzyyRaNamZZs2YNbrnlFhx66KHYvn07Pv3pT+ONb3wjHn/8cQwMDLR6eDPOjh07AMB4T4j/JZ3TTz8d5513HlasWIFnn30Wn/jEJ3DGGWfgoYceQjqdbvXwYqdcLuMjH/kIXv/61+OII44AULkPcrkchoeHlW2TeB+Yzh8A/vzP/xwHHHAAlixZgl//+tf4m7/5Gzz11FO44447WjjaePnNb36DtWvXYnJyEv39/bjzzjtx+OGHY/PmzbF9/xT+pC0544wznL+POuoorFmzBgcccABuv/12vP/972/hyEireOc73+n8feSRR+Koo47CgQceiPvvvx+nnHJKC0fWHC677DI8/vjjiY918cPv/D/4wQ86fx955JFYvHgxTjnlFDz77LM48MADZ3qYTeHQQw/F5s2bMTo6iu9+97u48MIL8cADD8R6DJr925B58+YhnU57Ijh37tyJRYsWtWhUrWV4eBiHHHIInnnmmVYPpSWI7533hMvKlSsxb968RN4T69evx/e//33cd999SnvxRYsWYXp6Grt371a2T9p94Hf+JtasWQMAiboPcrkcDjroIBx33HG49tprsXr1alx//fWxfv8U/m1ILpfDcccdh3vvvdd5r1wu495778XatWtbOLLWsWfPHjz77LNYvHhxq4fSElasWIFFixYp98TY2Bh++ctfdu098cILL+Dll19O1D1h2zbWr1+PO++8Ez/5yU+wYsUK5f/HHXccstmsch889dRT2Lp1ayLug1rnb2Lz5s0AkKj7QKdcLmNqaire7z/emEQSF7feequdz+ftW265xX7iiSfsD37wg/bw8LC9Y8eOVg9tRvjYxz5m33///faWLVvsn//85/a6devsefPm2SMjI60eWtMYHx+3H3vsMfuxxx6zAdjXXXed/dhjj9l//OMfbdu27c9+9rP28PCw/Z//+Z/2r3/9a/vss8+2V6xYYe/bt6/FI4+HoPMfHx+3P/7xj9sPPfSQvWXLFvvHP/6xfeyxx9oHH3ywPTk52eqhx8all15qDw0N2ffff7+9fft252fv3r3ONpdccom9//772z/5yU/sRx55xF67dq29du3aFo46Pmqd/zPPPGNfc8019iOPPGJv2bLF/s///E975cqV9pve9KYWjzw+rrjiCvuBBx6wt2zZYv/617+2r7jiCtuyLPv//b//Z9t2fN8/hX8b88UvftHef//97VwuZ59wwgn2ww8/3OohzRjnn3++vXjxYjuXy9lLly61zz//fPuZZ55p9bCayn333WcD8PxceOGFtm1X0v3+7u/+zl64cKGdz+ftU045xX7qqadaO+gYCTr/vXv32m9961vt+fPn29ls1j7ggAPsiy++OHGLYdP5A7BvvvlmZ5t9+/bZf/mXf2nPnj3b7u3ttc8991x7+/btrRt0jNQ6/61bt9pvetOb7Dlz5tj5fN4+6KCD7L/+67+2R0dHWzvwGHnf+95nH3DAAXYul7Pnz59vn3LKKY7gt+34vn+29CWEEEK6DPr8CSGEkC6Dwp8QQgjpMij8CSGEkC6Dwp8QQgjpMij8CSGEkC6Dwp8QQgjpMij8CSGEkC6Dwp8QQgjpMij8CSF1c//998OyLE+jEUJIe8MKf4SQ0Jx00kk4+uij8S//8i8AgOnpabzyyitYuHAhLMtq7eAIIaHJtHoAhJDOJZfLJaqVLCHdAs3+hJBQvPe978UDDzyA66+/HpZlwbIs3HLLLYrZ/5ZbbsHw8DC+//3v49BDD0Vvby/+7M/+DHv37sXXv/51LF++HLNnz8aHP/xhlEolZ99TU1P4+Mc/jqVLl6Kvrw9r1qzB/fff35oTJaQLoOZPCAnF9ddfj9///vc44ogjcM011wAAfvvb33q227t3L77whS/g1ltvxfj4OM477zyce+65GB4exn//93/jueeew9vf/na8/vWvx/nnnw8AWL9+PZ544gnceuutWLJkCe68806cfvrp+M1vfoODDz54Rs+TkG6Awp8QEoqhoSHkcjn09vY6pv4nn3zSs12hUMCNN96IAw88EADwZ3/2Z/jGN76BnTt3or+/H4cffjhOPvlk3HfffTj//POxdetW3Hzzzdi6dSuWLFkCAPj4xz+Ou+++GzfffDP+v//v/5u5kySkS6DwJ4TESm9vryP4AWDhwoVYvnw5+vv7lfdGRkYAAL/5zW9QKpVwyCGHKPuZmprC3LlzZ2bQhHQZFP6EkFjJZrPKa8uyjO+Vy2UAwJ49e5BOp7Fp0yak02llO3nBQAiJDwp/QkhocrmcEqgXB8cccwxKpRJGRkbwxje+MdZ9E0LMMNqfEBKa5cuX45e//CX+8Ic/YNeuXY723giHHHII3v3ud+OCCy7AHXfcgS1btmDjxo249tpr8YMf/CCGURNCdCj8CSGh+fjHP450Oo3DDz8c8+fPx9atW2PZ780334wLLrgAH/vYx3DooYfinHPOwf/8z/9g//33j2X/hBAVVvgjhBBCugxq/oQQQkiXQeFPCCGEdBkU/oQQQkiXQeFPCCGEdBkU/oQQQkiXQeFPCCGEdBkU/oQQQkiXQeFPCCGEdBkU/oQQQkiXQeFPCCGEdBkU/oQQQkiX8f8DQl6BspHgvtQAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "test(0.1,10,2,100)" + "uid, = RE(stxm_fast(\n", + " det=det,\n", + " count_time = 0.1,\n", + " step_motor = xyz_motor.x,\n", + " step_start = 2.2,\n", + " step_end = -2.2,\n", + " scan_motor = xyz_motor.y,\n", + " scan_start = 2.2,\n", + " scan_end = -2.2,\n", + " plan_time = 50,\n", + " step_size = -0.27829267924\n", + "),bec)" ] }, { "cell_type": "code", - "execution_count": null, - "id": "3ebaef8d-ea75-459c-8f93-4b7d54e6c487", + "execution_count": 7, + "id": "42ee4d35-6a97-453d-a595-2cdecd8ec2c4", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "(100/0.1/20)**0.5" + "header = db[-1]\n", + "data = header.table()\n", + "plt.tricontourf(data[\"xyz_motor-y\"],data[\"xyz_motor-x\"],data['noisy_det'])\n" ] }, { "cell_type": "code", - "execution_count": null, - "id": "b5247ccd-eab0-4af5-9a16-b03d3382cf07", + "execution_count": 8, + "id": "a79b25b4-b8d9-440f-99cf-ad9c9048f6d3", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "(7.07*2) *(7.07*10)\n" + "plt.plot(data[\"xyz_motor-x\"],data[\"xyz_motor-y\"])" ] }, { "cell_type": "code", "execution_count": null, - "id": "4551503d-084d-41e6-a096-bdd7db2934d8", + "id": "10689f4a-6a77-45da-81b5-97fa862312f3", "metadata": {}, "outputs": [], "source": [] diff --git a/tests/jupyter_tests/get_stat.ipynb b/tests/jupyter_tests/get_stat.ipynb deleted file mode 100644 index 274adce..0000000 --- a/tests/jupyter_tests/get_stat.ipynb +++ /dev/null @@ -1,782 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "3fd89bb1-aaf8-4c23-915d-4c413968942c", - "metadata": {}, - "outputs": [], - "source": [ - "import os \n", - "os.chdir(\"/workspaces/p99-bluesky/tests/\")\n", - "\n", - "import asyncio\n", - "import subprocess, os\n", - "from bluesky.run_engine import RunEngine\n", - "from ophyd_async.core import DeviceCollector\n", - "from ophyd_async.epics.signal import epics_signal_r, epics_signal_rw\n", - "from ophyd_async.core.signal import observe_value, wait_for_value\n", - "from p99_bluesky.devices.p99.sample_stage import (\n", - " FilterMotor,\n", - " SampleAngleStage,\n", - " p99StageSelections,\n", - ")\n", - "from soft_motor import SoftThreeAxisStage\n", - "from bluesky.run_engine import RunEngine\n", - "from bluesky.callbacks.best_effort import BestEffortCallback\n", - "from bluesky.plans import count, scan \n", - "from ophyd.sim import det\n", - "bec = BestEffortCallback()\n", - "RE = RunEngine({})\n", - "from collections import defaultdict\n", - "from ophyd.sim import det # type: ignore" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "b87bbf7d-f112-40c9-b248-b7539fd037c6", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.147046064\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.147052474\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Y.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.147054489\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.147056251\n", - "..................................................................\n", - "errlog: lost 16 messages\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.147106173\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.147108443\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Y.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.147110931\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.147113468\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.147116727\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.147122277\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.147125234\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:YSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.157585376\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:MP:SELECT\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.157603427\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Z.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.157865569\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.157978503\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.158018227\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.158021825\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.158024839\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:Z.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.158027736\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.158046231\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.158079386\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.158109000\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZHLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.158128316\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZSTOP\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.158131723\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA:RBV\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.158273321\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITETHETA\", Connecting to: 172.23.241.223:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.159114183\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.159497501\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEROLL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.159999123\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH:RBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.160428137\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-TABLE-01:WRITEPITCH\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.160969112\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:X.EGU\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.161449821\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.161960912\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XRBV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.162965772\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVAL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.163414664\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XVMAX\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.163918888\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XACCL\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.164447141\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:X.PREC\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.164927179\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XRDBD\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.165425179\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XDMOV\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.165912405\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:XLLM\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.166466427\n", - "..................................................................\n", - "CA.Client.Exception...............................................\n", - " Warning: \"Identical process variable names on multiple servers\"\n", - " Context: \"Channel: \"p99-MO-STAGE-02:ZVELO\", Connecting to: host.containers.internal:5064, Ignored: 192.168.122.1:5064\"\n", - " Source File: modules/ca/src/client/cac.cpp line 1320\n", - " Current Time: Mon Jun 24 2024 10:16:23.166882123\n", - "..................................................................\n" - ] - } - ], - "source": [ - " with DeviceCollector(mock=False):\n", - " mock_sampleAngleStage = SampleAngleStage(\n", - " \"p99-MO-TABLE-01:\", name=\"mock_sampleAngleStage\"\n", - " )\n", - " mock_filter_wheel = FilterMotor(\n", - " \"p99-MO-STAGE-02:MP:SELECT\", name=\"mock_filter_wheel\"\n", - " )\n", - " xyz_motor = SoftThreeAxisStage(\"p99-MO-STAGE-02:\", name=\"xyz_motor\")\n", - "docs = defaultdict(list)\n", - "\n", - "def capture_emitted(name, doc):\n", - " docs[name].append(doc)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "48066c83-c274-4ee5-8b62-0d03388a3b91", - "metadata": {}, - "outputs": [], - "source": [ - "from collections import defaultdict\n", - "from pathlib import Path\n", - "from unittest.mock import Mock\n", - "\n", - "import pytest\n", - "from bluesky.plans import scan\n", - "from bluesky.run_engine import RunEngine\n", - "from bluesky.utils import new_uid\n", - "from ophyd.sim import SynAxis\n", - "from ophyd_async.core import (\n", - " DeviceCollector,\n", - " StaticDirectoryProvider,\n", - " assert_emitted,\n", - " callback_on_mock_put,\n", - " set_mock_value,\n", - ")\n", - "from ophyd_async.epics.areadetector.drivers.ad_base import DetectorState\n", - "\n", - "from p99_bluesky.devices.andor2Ad import Andor2Ad, Andor3Ad, StaticDirectoryProviderPlus\n", - "from p99_bluesky.plans.ad_plans import takeImg, tiggerImg\n", - "\n", - "CURRENT_DIRECTORY = Path(\".\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "6d777f38-ddfa-4be9-8ea0-f7a8a43e2426", - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "dp = StaticDirectoryProviderPlus(CURRENT_DIRECTORY, \"test-\")\n", - "\n", - "async with DeviceCollector(mock=True):\n", - " andor2 = Andor2Ad(\"TEST\", dp, \"andor2\")\n", - "\n", - "set_mock_value(andor2._controller.driver.array_size_x, 10)\n", - "set_mock_value(andor2._controller.driver.array_size_y, 20)\n", - "set_mock_value(andor2.hdf.file_path_exists, True)\n", - "set_mock_value(andor2.hdf.num_captured, 0)\n", - "set_mock_value(andor2.hdf.file_path, str(CURRENT_DIRECTORY))\n", - "\n", - "set_mock_value(\n", - " andor2.hdf.full_file_name, str(CURRENT_DIRECTORY) + \"/test-andor2-hdf0\"\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "179d1959-bbb8-43dd-9e90-031fbcfb2b2b", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "aaa6675c-5c9c-4d14-a892-ad79a104d8c3", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "Transient Scan ID: 1 Time: 2024-06-24 10:16:33\n", - "Persistent Unique Scan ID: 'ed6fdf1c-4323-4519-9d98-de620e129906'\n", - "New stream: 'primary'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/venv/lib/python3.11/site-packages/bluesky/callbacks/best_effort.py:248: UserWarning: Omitting andor2 from plot because dtype is array\n", - " warn(\"Omitting {} from plot because dtype is {}\"\n", - "/venv/lib/python3.11/site-packages/bluesky/callbacks/core.py:332: UserWarning: The key andor2 will be skipped because LiveTable does not know how to display the dtype array\n", - " warnings.warn(\"The key {} will be skipped because LiveTable \"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "+-----------+------------+-------------+\n", - "| seq_num | time | xyz_motor-x |\n", - "+-----------+------------+-------------+\n", - "| 1 | 10:16:34.9 | -3 |\n", - "| 2 | 10:16:35.1 | -2 |\n", - "| 3 | 10:16:35.4 | -2 |\n", - "| 4 | 10:16:35.6 | -1 |\n", - "| 5 | 10:16:35.8 | -0 |\n", - "| 6 | 10:16:36.0 | 0 |\n", - "| 7 | 10:16:36.3 | 1 |\n", - "| 8 | 10:16:36.5 | 2 |\n", - "| 9 | 10:16:36.7 | 2 |\n", - "| 10 | 10:16:36.9 | 3 |\n", - "+-----------+------------+-------------+\n", - "generator scan ['ed6fdf1c'] (scan num: 1)\n", - "\n", - "\n", - "\n" - ] - }, - { - "data": { - "text/plain": [ - "('ed6fdf1c-4323-4519-9d98-de620e129906',)" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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cP7evXuLc845p2hubi5efvnl4pvf/GZRUVFRbN26tazrvi/iP3fu3GLp0qUD/+7r6yumTZtWtLa2Djn/85//fHH99dcPGquvry/+/u//fkT3OZaVe8Z/6OjRo8W5555bfOc73xmpLX4gDOecjx49Wlx55ZXFt7/97WLx4sXifxLKPedvfetbxQUXXFD09vaO1hY/EMo956VLlxaf+cxnBo01NzcXV1111Yju84PiZOL/la98pfjkJz85aGzBggVFU1NTWdc64y/79/b2xo4dO6KxsXFgbPz48dHY2Bjt7e1Drmlvbx80PyKiqanpuPOzG84Z/6G333473nnnndP6V6U+aIZ7zl/72tdi8uTJcdNNN43GNse84ZzzD37wg2hoaIilS5dGbW1tXHLJJbF69ero6+sbrW2POcM55yuvvDJ27Ngx8KOBvXv3xpYtW+K6664blT1ncLr6d8b/pO/Bgwejr69v4NcDv6u2tjb27Nkz5JrOzs4h53d2do7YPsey4ZzxH7rzzjtj2rRpx3zR8Z7hnPMLL7wQjz32WHR0dIzCDj8YhnPOe/fujf/4j/+IL3zhC7Fly5Z47bXX4ktf+lK888470dLSMhrbHnOGc8433nhjHDx4MD796U9HURRx9OjRuO222+Kuu+4ajS2ncLz+9fT0xG9/+9s4++yzT+p+zvgzf97/1qxZExs3boxnnnkmqqqqzvR2PjAOHToUCxcujA0bNsSkSZPO9HY+0Pr7+2Py5Mnx6KOPxuzZs2PBggWxcuXKWL9+/Zne2gfKtm3bYvXq1fHII4/Ezp074+mnn47NmzfHfffdd6a3xh8448/8J02aFBUVFdHV1TVovKurK6ZMmTLkmilTppQ1P7vhnPG7HnjggVizZk386Ec/issuu2wktznmlXvOv/jFL+KNN96IefPmDYz19/dHRMSECRPilVdeiQsvvHBkNz0GDefreerUqXHWWWdFRUXFwNjHP/7x6OzsjN7e3qisrBzRPY9Fwznne+65JxYuXBg333xzRERceumlcfjw4bj11ltj5cqVp/Xv0Wd1vP5VV1ef9LP+iPfBM//KysqYPXt2tLW1DYz19/dHW1tbNDQ0DLmmoaFh0PyIiOeff/6487MbzhlHRNx///1x3333xdatW2POnDmjsdUxrdxzvvjii+Oll16Kjo6OgdvnPve5uPbaa6OjoyPq6upGc/tjxnC+nq+66qp47bXXBr65ioh49dVXY+rUqcJ/HMM557fffvuYwL/7DVfhb8idFqetf+W9F3FkbNy4sSiVSsUTTzxRvPzyy8Wtt95anHfeeUVnZ2dRFEWxcOHCYvny5QPzf/rTnxYTJkwoHnjggWL37t1FS0uLj/r9EeWe8Zo1a4rKysriqaeeKn79618P3A4dOnSmHsKYUO45/yHv9j855Z7zvn37inPPPbf4h3/4h+KVV14pfvjDHxaTJ08uvv71r5+phzAmlHvOLS0txbnnnlv827/9W7F3797i3//934sLL7yw+PznP3+mHsL73qFDh4pdu3YVu3btKiKieOihh4pdu3YVv/zlL4uiKIrly5cXCxcuHJj/7kf9/umf/qnYvXt3sW7durH7Ub+iKIpvfvObxfnnn19UVlYWc+fOLf7zP/9z4H+75pprisWLFw+a/73vfa+46KKLisrKyuKTn/xksXnz5lHe8dhTzhl/5CMfKSLimFtLS8vob3yMKfdr+f8n/iev3HN+8cUXi/r6+qJUKhUXXHBB8Y1vfKM4evToKO967CnnnN95553iq1/9anHhhRcWVVVVRV1dXfGlL32p+N///d/R3/gY8eMf/3jI/9a+e66LFy8urrnmmmPWzJo1q6isrCwuuOCC4l//9V/Lvu64ovBaDABkcsZ/5g8AjC7xB4BkxB8AkhF/AEhG/AEgGfEHgGTEHwCSEX8ASEb8ASAZ8QeAZMQfAJL5f5bbyHmAwfvlAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "rbv_mocks = Mock()\n", - "rbv_mocks.get.side_effect = range(0, 100)\n", - "callback_on_mock_put(\n", - " andor2._writer.hdf.capture,\n", - " lambda *_, **__: set_mock_value(andor2._writer.hdf.capture, value=True),\n", - ")\n", - "\n", - "callback_on_mock_put(\n", - " andor2.drv.acquire,\n", - " lambda *_, **__: set_mock_value(andor2._writer.hdf.num_captured, rbv_mocks.get()),\n", - ")\n", - "\n", - "set_mock_value(andor2.drv.detector_state, DetectorState.Idle)\n", - "RE(scan([andor2], xyz_motor.x, -3, 3, 10), [bec,capture_emitted])\n", - "# RE(count([andor2], 3))" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "f44421cd-6ba3-4b20-813d-dc18ed29f7e7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(list,\n", - " {'start': [{'uid': 'ed6fdf1c-4323-4519-9d98-de620e129906',\n", - " 'time': 1719224193.9524353,\n", - " 'versions': {'ophyd': '1.9.0', 'bluesky': '1.13.0a3'},\n", - " 'scan_id': 1,\n", - " 'plan_type': 'generator',\n", - " 'plan_name': 'scan',\n", - " 'detectors': ['andor2'],\n", - " 'motors': ('xyz_motor-x',),\n", - " 'num_points': 10,\n", - " 'num_intervals': 9,\n", - " 'plan_args': {'detectors': [''],\n", - " 'num': 10,\n", - " 'args': ['',\n", - " -3,\n", - " 3],\n", - " 'per_step': 'None'},\n", - " 'hints': {'dimensions': [(['xyz_motor-x'], 'primary')]},\n", - " 'plan_pattern': 'inner_product',\n", - " 'plan_pattern_module': 'bluesky.plan_patterns',\n", - " 'plan_pattern_args': {'num': 10,\n", - " 'args': ['',\n", - " -3,\n", - " 3]}}],\n", - " 'descriptor': [{'configuration': {'xyz_motor-x': {'data': {'xyz_motor-x-motor_egu': 'mm',\n", - " 'xyz_motor-x-velocity': 1.5},\n", - " 'timestamps': {'xyz_motor-x-motor_egu': 1719224150.287807,\n", - " 'xyz_motor-x-velocity': 1719224150.287989},\n", - " 'data_keys': {'xyz_motor-x-motor_egu': {'source': 'ca://p99-MO-STAGE-02:X.EGU',\n", - " 'dtype': 'string',\n", - " 'shape': [],\n", - " 'limits': {'alarm': {'low': None, 'high': None},\n", - " 'control': {'low': None, 'high': None},\n", - " 'display': {'low': None, 'high': None},\n", - " 'warning': {'low': None, 'high': None}}},\n", - " 'xyz_motor-x-velocity': {'source': 'ca://p99-MO-STAGE-02:XVELO',\n", - " 'dtype': 'number',\n", - " 'shape': [],\n", - " 'units': '',\n", - " 'precision': 0,\n", - " 'limits': {'alarm': {'low': None, 'high': None},\n", - " 'control': {'low': 0.0, 'high': 0.0},\n", - " 'display': {'low': 0.0, 'high': 0.0},\n", - " 'warning': {'low': None, 'high': None}}}}},\n", - " 'andor2': {'data': {}, 'timestamps': {}, 'data_keys': {}}},\n", - " 'data_keys': {'xyz_motor-x': {'source': 'ca://p99-MO-STAGE-02:XRBV',\n", - " 'dtype': 'number',\n", - " 'shape': [],\n", - " 'units': '',\n", - " 'precision': 0,\n", - " 'limits': {'alarm': {'low': None, 'high': None},\n", - " 'control': {'low': 0.0, 'high': 0.0},\n", - " 'display': {'low': 0.0, 'high': 0.0},\n", - " 'warning': {'low': None, 'high': None}},\n", - " 'object_name': 'xyz_motor-x'},\n", - " 'andor2': {'source': 'mock+ca://TESTHDF5:FullFileName_RBV',\n", - " 'shape': (20, 10),\n", - " 'dtype': 'array',\n", - " 'external': 'STREAM:',\n", - " 'object_name': 'andor2'},\n", - " 'andor2-sum': {'source': 'mock+ca://TESTHDF5:FullFileName_RBV',\n", - " 'shape': (),\n", - " 'dtype': 'number',\n", - " 'external': 'STREAM:',\n", - " 'object_name': 'andor2'}},\n", - " 'name': 'primary',\n", - " 'object_keys': {'xyz_motor-x': ['xyz_motor-x'],\n", - " 'andor2': ['andor2', 'andor2-sum']},\n", - " 'run_start': 'ed6fdf1c-4323-4519-9d98-de620e129906',\n", - " 'time': 1719224194.9653256,\n", - " 'uid': '2876d726-0ad5-4328-bb77-25cf94566c21',\n", - " 'hints': {'xyz_motor-x': {'fields': ['xyz_motor-x']},\n", - " 'andor2': {'fields': ['andor2']}}}],\n", - " 'stream_resource': [{'uid': '93062121-3d8a-45d6-a83d-1909535aaa9e',\n", - " 'data_key': 'andor2',\n", - " 'spec': 'AD_HDF5_SWMR_SLICE',\n", - " 'root': '.',\n", - " 'resource_path': 'test-andor2-hdf0',\n", - " 'resource_kwargs': {'path': '/entry/data/data',\n", - " 'multiplier': 1,\n", - " 'timestamps': '/entry/instrument/NDAttributes/NDArrayTimeStamp'},\n", - " 'path_semantics': 'posix',\n", - " 'run_start': 'ed6fdf1c-4323-4519-9d98-de620e129906'},\n", - " {'uid': 'dc66019d-faf0-42c6-b084-b02cc543bfb4',\n", - " 'data_key': 'andor2-sum',\n", - " 'spec': 'AD_HDF5_SWMR_SLICE',\n", - " 'root': '.',\n", - " 'resource_path': 'test-andor2-hdf0',\n", - " 'resource_kwargs': {'path': '/entry/instrument/NDAttributes/StatsTotal',\n", - " 'multiplier': 1,\n", - " 'timestamps': '/entry/instrument/NDAttributes/NDArrayTimeStamp'},\n", - " 'path_semantics': 'posix',\n", - " 'run_start': 'ed6fdf1c-4323-4519-9d98-de620e129906'}],\n", - " 'stream_datum': [{'stream_resource': '93062121-3d8a-45d6-a83d-1909535aaa9e',\n", - " 'uid': '93062121-3d8a-45d6-a83d-1909535aaa9e/0',\n", - " 'seq_nums': {'start': 1, 'stop': 2},\n", - " 'indices': {'start': 0, 'stop': 1},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': 'dc66019d-faf0-42c6-b084-b02cc543bfb4',\n", - " 'uid': 'dc66019d-faf0-42c6-b084-b02cc543bfb4/0',\n", - " 'seq_nums': {'start': 1, 'stop': 2},\n", - " 'indices': {'start': 0, 'stop': 1},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': '93062121-3d8a-45d6-a83d-1909535aaa9e',\n", - " 'uid': '93062121-3d8a-45d6-a83d-1909535aaa9e/1',\n", - " 'seq_nums': {'start': 2, 'stop': 3},\n", - " 'indices': {'start': 1, 'stop': 2},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': 'dc66019d-faf0-42c6-b084-b02cc543bfb4',\n", - " 'uid': 'dc66019d-faf0-42c6-b084-b02cc543bfb4/1',\n", - " 'seq_nums': {'start': 2, 'stop': 3},\n", - " 'indices': {'start': 1, 'stop': 2},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': '93062121-3d8a-45d6-a83d-1909535aaa9e',\n", - " 'uid': '93062121-3d8a-45d6-a83d-1909535aaa9e/2',\n", - " 'seq_nums': {'start': 3, 'stop': 4},\n", - " 'indices': {'start': 2, 'stop': 3},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': 'dc66019d-faf0-42c6-b084-b02cc543bfb4',\n", - " 'uid': 'dc66019d-faf0-42c6-b084-b02cc543bfb4/2',\n", - " 'seq_nums': {'start': 3, 'stop': 4},\n", - " 'indices': {'start': 2, 'stop': 3},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': '93062121-3d8a-45d6-a83d-1909535aaa9e',\n", - " 'uid': '93062121-3d8a-45d6-a83d-1909535aaa9e/3',\n", - " 'seq_nums': {'start': 4, 'stop': 5},\n", - " 'indices': {'start': 3, 'stop': 4},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': 'dc66019d-faf0-42c6-b084-b02cc543bfb4',\n", - " 'uid': 'dc66019d-faf0-42c6-b084-b02cc543bfb4/3',\n", - " 'seq_nums': {'start': 4, 'stop': 5},\n", - " 'indices': {'start': 3, 'stop': 4},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': '93062121-3d8a-45d6-a83d-1909535aaa9e',\n", - " 'uid': '93062121-3d8a-45d6-a83d-1909535aaa9e/4',\n", - " 'seq_nums': {'start': 5, 'stop': 6},\n", - " 'indices': {'start': 4, 'stop': 5},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': 'dc66019d-faf0-42c6-b084-b02cc543bfb4',\n", - " 'uid': 'dc66019d-faf0-42c6-b084-b02cc543bfb4/4',\n", - " 'seq_nums': {'start': 5, 'stop': 6},\n", - " 'indices': {'start': 4, 'stop': 5},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': '93062121-3d8a-45d6-a83d-1909535aaa9e',\n", - " 'uid': '93062121-3d8a-45d6-a83d-1909535aaa9e/5',\n", - " 'seq_nums': {'start': 6, 'stop': 7},\n", - " 'indices': {'start': 5, 'stop': 6},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': 'dc66019d-faf0-42c6-b084-b02cc543bfb4',\n", - " 'uid': 'dc66019d-faf0-42c6-b084-b02cc543bfb4/5',\n", - " 'seq_nums': {'start': 6, 'stop': 7},\n", - " 'indices': {'start': 5, 'stop': 6},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': '93062121-3d8a-45d6-a83d-1909535aaa9e',\n", - " 'uid': '93062121-3d8a-45d6-a83d-1909535aaa9e/6',\n", - " 'seq_nums': {'start': 7, 'stop': 8},\n", - " 'indices': {'start': 6, 'stop': 7},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': 'dc66019d-faf0-42c6-b084-b02cc543bfb4',\n", - " 'uid': 'dc66019d-faf0-42c6-b084-b02cc543bfb4/6',\n", - " 'seq_nums': {'start': 7, 'stop': 8},\n", - " 'indices': {'start': 6, 'stop': 7},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': '93062121-3d8a-45d6-a83d-1909535aaa9e',\n", - " 'uid': '93062121-3d8a-45d6-a83d-1909535aaa9e/7',\n", - " 'seq_nums': {'start': 8, 'stop': 9},\n", - " 'indices': {'start': 7, 'stop': 8},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': 'dc66019d-faf0-42c6-b084-b02cc543bfb4',\n", - " 'uid': 'dc66019d-faf0-42c6-b084-b02cc543bfb4/7',\n", - " 'seq_nums': {'start': 8, 'stop': 9},\n", - " 'indices': {'start': 7, 'stop': 8},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': '93062121-3d8a-45d6-a83d-1909535aaa9e',\n", - " 'uid': '93062121-3d8a-45d6-a83d-1909535aaa9e/8',\n", - " 'seq_nums': {'start': 9, 'stop': 10},\n", - " 'indices': {'start': 8, 'stop': 9},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': 'dc66019d-faf0-42c6-b084-b02cc543bfb4',\n", - " 'uid': 'dc66019d-faf0-42c6-b084-b02cc543bfb4/8',\n", - " 'seq_nums': {'start': 9, 'stop': 10},\n", - " 'indices': {'start': 8, 'stop': 9},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': '93062121-3d8a-45d6-a83d-1909535aaa9e',\n", - " 'uid': '93062121-3d8a-45d6-a83d-1909535aaa9e/9',\n", - " 'seq_nums': {'start': 10, 'stop': 11},\n", - " 'indices': {'start': 9, 'stop': 10},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'stream_resource': 'dc66019d-faf0-42c6-b084-b02cc543bfb4',\n", - " 'uid': 'dc66019d-faf0-42c6-b084-b02cc543bfb4/9',\n", - " 'seq_nums': {'start': 10, 'stop': 11},\n", - " 'indices': {'start': 9, 'stop': 10},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'}],\n", - " 'event': [{'uid': '6dec40aa-b143-40dd-b17d-7c75614998d8',\n", - " 'time': 1719224194.9760604,\n", - " 'data': {'xyz_motor-x': -3.0},\n", - " 'timestamps': {'xyz_motor-x': 1719224194.962846},\n", - " 'seq_num': 1,\n", - " 'filled': {},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'uid': '0c0742c8-ab9e-4dbc-b0fc-93f81a5d9173',\n", - " 'time': 1719224195.1965663,\n", - " 'data': {'xyz_motor-x': -2.3333333333333335},\n", - " 'timestamps': {'xyz_motor-x': 1719224195.195141},\n", - " 'seq_num': 2,\n", - " 'filled': {},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'uid': '488c0550-c082-402d-892c-f1bf4a2cf95b',\n", - " 'time': 1719224195.4182923,\n", - " 'data': {'xyz_motor-x': -1.6666666666666667},\n", - " 'timestamps': {'xyz_motor-x': 1719224195.417123},\n", - " 'seq_num': 3,\n", - " 'filled': {},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'uid': 'f9466f30-79e7-44ce-9562-54082bf4b036',\n", - " 'time': 1719224195.640466,\n", - " 'data': {'xyz_motor-x': -1.0},\n", - " 'timestamps': {'xyz_motor-x': 1719224195.639153},\n", - " 'seq_num': 4,\n", - " 'filled': {},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'uid': '4109c728-d161-4013-a4cc-4d7b9a5bee7a',\n", - " 'time': 1719224195.8622851,\n", - " 'data': {'xyz_motor-x': -0.3333333333333335},\n", - " 'timestamps': {'xyz_motor-x': 1719224195.861155},\n", - " 'seq_num': 5,\n", - " 'filled': {},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'uid': 'c2b09806-6540-47cc-81fe-4d9e808c3e2e',\n", - " 'time': 1719224196.0844402,\n", - " 'data': {'xyz_motor-x': 0.33333333333333304},\n", - " 'timestamps': {'xyz_motor-x': 1719224196.083254},\n", - " 'seq_num': 6,\n", - " 'filled': {},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'uid': '516cdd4b-4910-489e-b827-4e826cd1d9b1',\n", - " 'time': 1719224196.3063452,\n", - " 'data': {'xyz_motor-x': 1.0},\n", - " 'timestamps': {'xyz_motor-x': 1719224196.305164},\n", - " 'seq_num': 7,\n", - " 'filled': {},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'uid': '2c2aee81-b35a-4c04-a5aa-a1c1ab6dcc68',\n", - " 'time': 1719224196.5285583,\n", - " 'data': {'xyz_motor-x': 1.666666666666666},\n", - " 'timestamps': {'xyz_motor-x': 1719224196.527388},\n", - " 'seq_num': 8,\n", - " 'filled': {},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'uid': '5a68d33a-fdb6-4f4f-a03b-8f24fea29276',\n", - " 'time': 1719224196.7506127,\n", - " 'data': {'xyz_motor-x': 2.333333333333333},\n", - " 'timestamps': {'xyz_motor-x': 1719224196.749417},\n", - " 'seq_num': 9,\n", - " 'filled': {},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'},\n", - " {'uid': 'e56ca4c8-bfdb-465a-9e8e-cf92adee6df5',\n", - " 'time': 1719224196.972765,\n", - " 'data': {'xyz_motor-x': 3.0},\n", - " 'timestamps': {'xyz_motor-x': 1719224196.971527},\n", - " 'seq_num': 10,\n", - " 'filled': {},\n", - " 'descriptor': '2876d726-0ad5-4328-bb77-25cf94566c21'}],\n", - " 'stop': [{'uid': '3fbe6681-4484-41df-8421-dad4181e7e5d',\n", - " 'time': 1719224196.973412,\n", - " 'run_start': 'ed6fdf1c-4323-4519-9d98-de620e129906',\n", - " 'exit_status': 'success',\n", - " 'reason': '',\n", - " 'num_events': {'primary': 10}}]})" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "docs" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "aa437322-7167-4c4a-b0d7-c42a65f3cafd", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tests/test_fast_scan.py b/tests/test_fast_scan.py index b3b18cb..846f7f1 100644 --- a/tests/test_fast_scan.py +++ b/tests/test_fast_scan.py @@ -61,6 +61,7 @@ def capture_emitted(name, doc): RE(fast_scan_1d([det], sim_motor.x, -208, 0, 10), capture_emitted) assert 0 == get_mock_put(sim_motor.x.user_setpoint).call_count + assert 0 == get_mock_put(sim_motor.x.velocity).call_count assert_emitted(docs, start=2, stop=2) @@ -75,6 +76,12 @@ def capture_emitted(name, doc): assert 2.78 == await sim_motor.x.velocity.get_value() assert 2 == get_mock_put(sim_motor.x.user_setpoint).call_count assert 2 == get_mock_put(sim_motor.x.velocity).call_count + # check speed is set and reset + assert [ + mock.call(10, wait=True, timeout=mock.ANY), + mock.call(2.78, wait=True, timeout=mock.ANY), + ] == get_mock_put(sim_motor.x.velocity).call_args_list + """Only 1 event as sim motor motor_done_move is set to true, so only 1 loop is ran""" assert_emitted(docs, start=1, descriptor=1, event=1, stop=1) @@ -112,6 +119,7 @@ def capture_emitted(name, doc): assert 2.78 == await sim_motor.x.velocity.get_value() assert num_step == get_mock_put(sim_motor.x.user_setpoint).call_count assert 0 == get_mock_put(sim_motor.x.velocity).call_count + # check step set points steps = linspace(x_start, x_end, num_step, endpoint=True) for cnt, motor_x in enumerate(get_mock_put(sim_motor.x.user_setpoint).call_args_list): assert motor_x == mock.call(steps[cnt], wait=True, timeout=mock.ANY) @@ -119,6 +127,7 @@ def capture_emitted(name, doc): assert 2.88 == await sim_motor.y.velocity.get_value() assert num_step * 2 == get_mock_put(sim_motor.y.velocity).call_count assert num_step * 2 == get_mock_put(sim_motor.y.user_setpoint).call_count + # check scan axis set and end point for cnt, motor_y in enumerate(get_mock_put(sim_motor.y.user_setpoint).call_args_list): if cnt % 2 == 0: assert motor_y == mock.call(y_start, wait=True, timeout=mock.ANY) @@ -168,7 +177,7 @@ def capture_emitted(name, doc): assert 2.88 == await sim_motor.y.velocity.get_value() assert num_step * 2 == get_mock_put(sim_motor.y.velocity).call_count assert num_step * 2 == get_mock_put(sim_motor.y.user_setpoint).call_count - """ build a list of expected y_position""" + """ build a list of expected scan motor position""" y_position = [y_start] for cnt in range(0, num_step): if cnt % 2 == 0: diff --git a/tests/test_stxm.py b/tests/test_stxm.py index 80118eb..53b24c1 100644 --- a/tests/test_stxm.py +++ b/tests/test_stxm.py @@ -4,6 +4,7 @@ from unittest.mock import Mock import pytest +from bluesky.run_engine import RunEngine from ophyd_async.core import ( DeviceCollector, assert_emitted, @@ -41,34 +42,30 @@ async def sim_motor(): yield sim_motor -CURRENT_DIRECTORY = Path(__file__).parent - - -async def make_andor2(prefix: str = "") -> Andor2Ad: - dp = StaticDirectoryProviderPlus(CURRENT_DIRECTORY, "test-") - +async def make_andor2(tmp_p: Path, prefix: str = "") -> Andor2Ad: + dp = StaticDirectoryProviderPlus(tmp_p, "test-") async with DeviceCollector(mock=True): detector = Andor2Ad(prefix, dp, "andor2") return detector @pytest.fixture -async def andor2() -> Andor2Ad: - andor2 = await make_andor2(prefix="TEST") +async def andor2(tmp_path) -> Andor2Ad: + andor2 = await make_andor2(tmp_path, prefix="TEST") set_mock_value(andor2._controller.driver.array_size_x, 10) set_mock_value(andor2._controller.driver.array_size_y, 20) set_mock_value(andor2.hdf.file_path_exists, True) set_mock_value(andor2.hdf.num_captured, 0) - set_mock_value(andor2.hdf.file_path, str(CURRENT_DIRECTORY)) - set_mock_value( - andor2.hdf.full_file_name, str(CURRENT_DIRECTORY) + "/test-andor2-hdf0" - ) + set_mock_value(andor2.hdf.file_path, str(tmp_path)) + set_mock_value(andor2.hdf.full_file_name, str(tmp_path) + "/test-andor2-hdf0") set_mock_value(andor2.drv.detector_state, DetectorState.Idle) return andor2 -async def test_stxm_fast_zero_velocity_fail(andor2, sim_motor, RE): +async def test_stxm_fast_zero_velocity_fail( + andor2: Andor2Ad, sim_motor: ThreeAxisStage, RE: RunEngine +): plan_time = 30 count_time = 0.2 step_size = 0.0 @@ -99,7 +96,8 @@ def capture_emitted(name, doc): assert_emitted(docs) -async def test_stxm_fast(andor2, sim_motor, RE): +async def test_stxm_fast(andor2: Andor2Ad, sim_motor: ThreeAxisStage, RE: RunEngine): + plan_time = 30 rbv_mocks = Mock() rbv_mocks.get.side_effect = range(0, 100) callback_on_mock_put( @@ -176,7 +174,7 @@ def capture_emitted(name, doc): scan_start = 0 scan_end = 2 - # make the scan motor slow so it can only do 2 steps + # make the scan motor slow so it can only do 5 steps # ideal step-size is 0.2 with speed =2 for 10x10 set_mock_value(sim_motor.y.max_velocity, 1) From b270ed573f4ce63715ae2f385a893e7517237e10 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Fri, 12 Jul 2024 08:08:58 +0000 Subject: [PATCH 09/11] added _fly_scan_1d to make use of prepare amd complete from ophyd-async in motor --- src/p99_bluesky/plans/fast_scan.py | 75 +++++++++++++++++++++++++++++ tests/epics/soft_ioc/p99_softioc.py | 4 +- tests/epics/soft_ioc/softsignal.py | 2 +- tests/soft_motor.py | 20 +++++++- 4 files changed, 96 insertions(+), 5 deletions(-) diff --git a/src/p99_bluesky/plans/fast_scan.py b/src/p99_bluesky/plans/fast_scan.py index da60bef..be313f9 100644 --- a/src/p99_bluesky/plans/fast_scan.py +++ b/src/p99_bluesky/plans/fast_scan.py @@ -6,13 +6,40 @@ from bluesky.preprocessors import ( finalize_wrapper, ) +from bluesky.utils import short_uid from numpy import linspace +from ophyd_async.core.utils import ( + CalculatableTimeout, + CalculateTimeout, +) from ophyd_async.epics.motion import Motor +from pydantic import BaseModel, Field from p99_bluesky.log import LOGGER from p99_bluesky.plan_stubs.motor_plan import check_within_limit +# Remove once ophyd release +class FlyMotorInfo(BaseModel): + """Minimal set of information required to fly a motor:""" + + #: Absolute position of the motor once it finishes accelerating to desired + #: velocity, in motor EGUs + start_position: float = Field(frozen=True) + + #: Absolute position of the motor once it begins decelerating from desired + #: velocity, in EGUs + end_position: float = Field(frozen=True) + + #: Time taken for the motor to get from start_position to end_position, excluding + #: run-up and run-down, in seconds. + time_for_move: float = Field(frozen=True, gt=0) + + #: Maximum time for the complete motor move, including run up and run down. + #: Defaults to `time_for_move` + run up and run down times + 10s. + timeout: CalculatableTimeout = Field(frozen=True, default=CalculateTimeout) + + def fast_scan_1d( dets: list[Any], motor: Motor, @@ -219,3 +246,51 @@ def clean_up(): LOGGER.info("Clean up") # possibly use to move back to starting position. yield from bps.null() + + +def _fly_scan_1d( + dets: list[Any], + motor: Motor, + start: float, + end: float, + motor_speed: float | None = None, +) -> MsgGenerator: + # read the current speed and store it + old_speed = yield from bps.rd(motor.velocity) + + def inner_fast_scan_1d( + dets: list[Any], + motor: Motor, + start: float, + end: float, + motor_speed: float | None = None, + ): + LOGGER.info(f"Moving {motor.name} to start position = {start}.") + yield from bps.mv(motor, start) # move to start + + if motor_speed: + LOGGER.info(f"Set {motor.name} speed = {motor_speed}.") + yield from bps.abs_set(motor.velocity, motor_speed) + else: + motor_speed = yield from bps.rd(motor.velocity) + + LOGGER.info(f"Set {motor.name} to end position({end}) and begin scan.") + grp = short_uid("prepare") + fly_info = FlyMotorInfo( + start_position=start, + end_position=end, + time_for_move=abs(start - end) / motor_speed, + ) + yield from bps.prepare(motor, fly_info, group=grp, wait=True) + yield from bps.kickoff(motor, group=grp, wait=True) + + done = yield from bps.complete(motor) + LOGGER.info(f"flying motor = {motor.name} at speed =({motor_speed})") + while not done.done: + yield from bps.trigger_and_read(dets + [motor]) + yield from bps.checkpoint() + + yield from finalize_wrapper( + plan=inner_fast_scan_1d(dets, motor, start, end, motor_speed), + final_plan=reset_speed(old_speed, motor), + ) diff --git a/tests/epics/soft_ioc/p99_softioc.py b/tests/epics/soft_ioc/p99_softioc.py index 3bb9321..39e8cd5 100644 --- a/tests/epics/soft_ioc/p99_softioc.py +++ b/tests/epics/soft_ioc/p99_softioc.py @@ -13,10 +13,10 @@ async def _delay_move(signal, v, vel, dmov): elif diff < 0: dmov.set(False) - signal.set(signal.get() + vel.get() * 0.02) + signal.set(signal.get() + vel.get() * 0.01) elif diff > 0: dmov.set(False) - signal.set(signal.get() - vel.get() * 0.02) + signal.set(signal.get() - vel.get() * 0.01) # Sample AngleStage softioc dispatcher = asyncio_dispatcher.AsyncioDispatcher() diff --git a/tests/epics/soft_ioc/softsignal.py b/tests/epics/soft_ioc/softsignal.py index f00ce06..0e2163c 100644 --- a/tests/epics/soft_ioc/softsignal.py +++ b/tests/epics/soft_ioc/softsignal.py @@ -72,7 +72,7 @@ async def soft_motor(prefix: str, name: str, unit: str = "mm"): ) builder.aOut( name + "ACCL", - initial_value=1, + initial_value=0.01, ) builder.aOut( name + "RDBD", diff --git a/tests/soft_motor.py b/tests/soft_motor.py index aaee76e..dcb94b3 100644 --- a/tests/soft_motor.py +++ b/tests/soft_motor.py @@ -1,4 +1,5 @@ import asyncio +from collections.abc import Callable from bluesky.protocols import Movable, Stoppable from ophyd_async.core import ( @@ -8,7 +9,7 @@ StandardReadable, WatchableAsyncStatus, ) -from ophyd_async.core.signal import AsyncStatus, observe_value +from ophyd_async.core.signal import AsyncStatus, SignalR, T, observe_value, wait_for_value from ophyd_async.core.utils import ( DEFAULT_TIMEOUT, CalculatableTimeout, @@ -129,6 +130,16 @@ def set_name(self, name: str): # Readback should be named the same as its parent in read() self.user_readback.set_name(name) + @AsyncStatus.wrap + async def wait_for_value_with_status( + self, + signal: SignalR[T], + match: T | Callable[[T], bool], + timeout: float | None, + ): + """wrap wait for value so it return an asyncStatus""" + await wait_for_value(signal, match, timeout) + @AsyncStatus.wrap async def prepare(self, value: FlyMotorInfo): """Calculate required velocity and run-up distance, then if motor limits aren't @@ -190,7 +201,12 @@ async def set(self, value: float, timeout: CalculatableTimeout = CalculateTimeou + 2 * acceleration_time + DEFAULT_TIMEOUT ) - move_status = self.user_setpoint.set(value, wait=True, timeout=timeout) + # modified to actually wait for set point to be set + await self.user_setpoint.set(value, wait=True, timeout=timeout) + # changed this so that the watcher keep going until the motor is stopped + move_status = self.wait_for_value_with_status( + self.motor_done_move, True, timeout=None + ) async for current_position in observe_value( self.user_readback, done_status=move_status ): From 9f534a5f71033c802859c762c076f19073df92aa Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Fri, 12 Jul 2024 09:02:54 +0000 Subject: [PATCH 10/11] take out _fly_scan_1d --- src/p99_bluesky/plans/fast_scan.py | 100 +++++++++++++++-------------- 1 file changed, 53 insertions(+), 47 deletions(-) diff --git a/src/p99_bluesky/plans/fast_scan.py b/src/p99_bluesky/plans/fast_scan.py index be313f9..4c69796 100644 --- a/src/p99_bluesky/plans/fast_scan.py +++ b/src/p99_bluesky/plans/fast_scan.py @@ -6,7 +6,6 @@ from bluesky.preprocessors import ( finalize_wrapper, ) -from bluesky.utils import short_uid from numpy import linspace from ophyd_async.core.utils import ( CalculatableTimeout, @@ -248,49 +247,56 @@ def clean_up(): yield from bps.null() -def _fly_scan_1d( - dets: list[Any], - motor: Motor, - start: float, - end: float, - motor_speed: float | None = None, -) -> MsgGenerator: - # read the current speed and store it - old_speed = yield from bps.rd(motor.velocity) - - def inner_fast_scan_1d( - dets: list[Any], - motor: Motor, - start: float, - end: float, - motor_speed: float | None = None, - ): - LOGGER.info(f"Moving {motor.name} to start position = {start}.") - yield from bps.mv(motor, start) # move to start - - if motor_speed: - LOGGER.info(f"Set {motor.name} speed = {motor_speed}.") - yield from bps.abs_set(motor.velocity, motor_speed) - else: - motor_speed = yield from bps.rd(motor.velocity) - - LOGGER.info(f"Set {motor.name} to end position({end}) and begin scan.") - grp = short_uid("prepare") - fly_info = FlyMotorInfo( - start_position=start, - end_position=end, - time_for_move=abs(start - end) / motor_speed, - ) - yield from bps.prepare(motor, fly_info, group=grp, wait=True) - yield from bps.kickoff(motor, group=grp, wait=True) - - done = yield from bps.complete(motor) - LOGGER.info(f"flying motor = {motor.name} at speed =({motor_speed})") - while not done.done: - yield from bps.trigger_and_read(dets + [motor]) - yield from bps.checkpoint() - - yield from finalize_wrapper( - plan=inner_fast_scan_1d(dets, motor, start, end, motor_speed), - final_plan=reset_speed(old_speed, motor), - ) +""" + Future: replace _fast_scan_1d with below to take advantage of ophyd aysnc motor, + I am not 100% sure but I think there is a bug with the motor's set,it never entre + the watch loop as move_status goes true almost immediately:move_status = + self.user_setpoint.set( new_position, wait=True, timeout=timeout)async + for current_position in observe_value(self.user_readback, done_status=move_status) +""" +# def _fly_scan_1d( +# dets: list[Any], +# motor: Motor, +# start: float, +# end: float, +# motor_speed: float | None = None, +# ) -> MsgGenerator: +# # read the current speed and store it +# old_speed = yield from bps.rd(motor.velocity) + +# def inner_fast_scan_1d( +# dets: list[Any], +# motor: Motor, +# start: float, +# end: float, +# motor_speed: float | None = None, +# ): +# LOGGER.info(f"Moving {motor.name} to start position = {start}.") +# yield from bps.mv(motor, start) # move to start + +# if motor_speed: +# LOGGER.info(f"Set {motor.name} speed = {motor_speed}.") +# yield from bps.abs_set(motor.velocity, motor_speed) +# else: +# motor_speed = yield from bps.rd(motor.velocity) + +# LOGGER.info(f"Set {motor.name} to end position({end}) and begin scan.") +# grp = short_uid("prepare") +# fly_info = FlyMotorInfo( +# start_position=start, +# end_position=end, +# time_for_move=abs(start - end) / motor_speed, +# ) +# yield from bps.prepare(motor, fly_info, group=grp, wait=True) +# yield from bps.kickoff(motor, group=grp, wait=True) + +# done = yield from bps.complete(motor) +# LOGGER.info(f"flying motor = {motor.name} at speed =({motor_speed})") +# while not done.done: +# yield from bps.trigger_and_read(dets + [motor]) +# yield from bps.checkpoint() + +# yield from finalize_wrapper( +# plan=inner_fast_scan_1d(dets, motor, start, end, motor_speed), +# final_plan=reset_speed(old_speed, motor), +# ) From 05e8d007d62dc2766b6780f459cb417259e95098 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Fri, 12 Jul 2024 10:33:09 +0000 Subject: [PATCH 11/11] changes the comment as the issue is local to softioc --- src/p99_bluesky/plans/fast_scan.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/p99_bluesky/plans/fast_scan.py b/src/p99_bluesky/plans/fast_scan.py index 4c69796..1391557 100644 --- a/src/p99_bluesky/plans/fast_scan.py +++ b/src/p99_bluesky/plans/fast_scan.py @@ -248,11 +248,7 @@ def clean_up(): """ - Future: replace _fast_scan_1d with below to take advantage of ophyd aysnc motor, - I am not 100% sure but I think there is a bug with the motor's set,it never entre - the watch loop as move_status goes true almost immediately:move_status = - self.user_setpoint.set( new_position, wait=True, timeout=timeout)async - for current_position in observe_value(self.user_readback, done_status=move_status) + Future: replace _fast_scan_1d with below to take advantage of ophyd aysnc motor. """ # def _fly_scan_1d( # dets: list[Any],