From f75e03982900f650dfda6328426a794119edd733 Mon Sep 17 00:00:00 2001 From: Gary Yendell Date: Wed, 12 Nov 2025 17:42:06 +0000 Subject: [PATCH] Fix alarm status on Command PVs Add ZNAM, ONAM and initial_value to underlying bool record --- src/fastcs/transport/epics/ca/ioc.py | 3 +++ tests/transport/epics/ca/test_softioc.py | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/fastcs/transport/epics/ca/ioc.py b/src/fastcs/transport/epics/ca/ioc.py index cad93fe48..7075b2915 100644 --- a/src/fastcs/transport/epics/ca/ioc.py +++ b/src/fastcs/transport/epics/ca/ioc.py @@ -269,6 +269,9 @@ async def wrapped_method(_: Any): f"{pv_prefix}:{pv_name}", on_update=wrapped_method, blocking=True, + initial_value=0, + ZNAM="Idle", + ONAM="Active", ) _add_attr_pvi_info(record, pv_prefix, attr_name, "x") diff --git a/tests/transport/epics/ca/test_softioc.py b/tests/transport/epics/ca/test_softioc.py index 109c902de..0b37b01e3 100644 --- a/tests/transport/epics/ca/test_softioc.py +++ b/tests/transport/epics/ca/test_softioc.py @@ -316,7 +316,12 @@ def test_ioc(mocker: MockerFixture, epics_controller_api: ControllerAPI): ), ) ioc_builder.Action.assert_any_call( - f"{DEVICE}:Go", on_update=mocker.ANY, blocking=True + f"{DEVICE}:Go", + on_update=mocker.ANY, + blocking=True, + initial_value=0, + ZNAM="Idle", + ONAM="Active", ) # Check info tags are added @@ -504,7 +509,12 @@ def test_long_pv_names_discarded(mocker: MockerFixture): short_command_pv_name = "command_short_name".title().replace("_", "") ioc_builder.Action.assert_called_once_with( - f"{DEVICE}:{short_command_pv_name}", on_update=mocker.ANY, blocking=True + f"{DEVICE}:{short_command_pv_name}", + on_update=mocker.ANY, + blocking=True, + initial_value=0, + ZNAM="Idle", + ONAM="Active", ) with pytest.raises(AssertionError): long_command_pv_name = long_command_name.title().replace("_", "")