From 9cef7113246110f2747b69a3e86c8fa005f8cc81 Mon Sep 17 00:00:00 2001 From: Gary Yendell Date: Fri, 30 Jan 2026 17:29:15 +0000 Subject: [PATCH] Skip 2D+ Waveforms in EPICS CA Transport --- src/fastcs/transports/epics/ca/ioc.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/fastcs/transports/epics/ca/ioc.py b/src/fastcs/transports/epics/ca/ioc.py index f6ca6c5af..7a7a48060 100644 --- a/src/fastcs/transports/epics/ca/ioc.py +++ b/src/fastcs/transports/epics/ca/ioc.py @@ -8,6 +8,7 @@ from fastcs.attributes import AttrR, AttrRW, AttrW from fastcs.datatypes import DataType, DType_T +from fastcs.datatypes.waveform import Waveform from fastcs.logging import bind_logger from fastcs.methods import Command from fastcs.tracer import Tracer @@ -131,8 +132,17 @@ def _create_and_link_attribute_pvs( pv_prefix = controller_pv_prefix(root_pv_prefix, controller_api) for attr_name, attribute in controller_api.attributes.items(): - pv_name = snake_to_pascal(attr_name) + if ( + isinstance(attribute.datatype, Waveform) + and len(attribute.datatype.shape) > 1 + ): + logger.warning( + "Only 1D Waveform attributes are supported in EPICS CA transport", + attribute=attribute, + ) + continue + pv_name = snake_to_pascal(attr_name) full_pv_name_length = len(f"{pv_prefix}:{pv_name}") if full_pv_name_length > EPICS_MAX_NAME_LENGTH: attribute.enabled = False