Skip to content

radiens_core.models.signals

Signal selection, signal data array models, and signal enums.

Attributes

FlexSignalSpec module-attribute

FlexSignalSpec = (
    SignalSpec
    | str
    | Sequence[int]
    | Mapping[str, Sequence[int] | str]
)

SignalSpec that also accepts "all", list[int], or dict shorthand.

Use in Pydantic models::

class MyRequest(BaseModel):
    signals: FlexSignalSpec

Classes

KeyIndex

Bases: IntEnum

Channel key index type.

NTV: native position in DAQ stream per signal type (starts at 0). DATA: position in backing dataset per signal type. SYS: global position across all signal types.

SigSelect

Bases: BaseModel

Signal selection specifying channels per signal type.

Attributes:

Name Type Description
amp NDArray[int64]

Array of native channel indices for amplifier signals.

gpio_ain NDArray[int64]

Array of native channel indices for analog input signals.

gpio_din NDArray[int64]

Array of native channel indices for digital input signals.

gpio_dout NDArray[int64]

Array of native channel indices for digital output signals.

key_idx KeyIndex

Channel key index type. References KeyIndex.

SignalArrays

Bases: BaseModel

Container for signal data arrays, one per signal type.

Attributes:

Name Type Description
amp NDArray[float64] | None

2D array (channels, samples) for amplifier data. Defaults to None.

gpio_ain NDArray[float64] | None

2D array (channels, samples) for analog input data. Defaults to None.

gpio_din NDArray[float64] | None

2D array (channels, samples) for digital input data. Defaults to None.

gpio_dout NDArray[float64] | None

2D array (channels, samples) for digital output data. Defaults to None.

SignalSpec

Bases: BaseModel

Semantic signal selection specification.

Use factory methods for clean channel selection:

spec = SignalSpec.amp([0, 1, 2, 3]) spec = SignalSpec.ain("all") spec = SignalSpec.multi(amp=[0, 1], din="all")

Attributes:

Name Type Description
sig_type SignalType | None

Primary signal type. References SignalType.

channels tuple[int, ...] | str

Tuple of channel indices or selection string ("all", "selected").

multi_select dict[SignalType, tuple[int, ...] | str] | None

Map of signal types to channel selections. Defaults to None.

Functions

ain classmethod
ain(channels='all')

Select analog input channels.

all_amp classmethod
all_amp()

Convenience: all amplifier channels.

amp classmethod
amp(channels='all')

Select amplifier channels.

din classmethod
din(channels='all')

Select digital input channels.

dout classmethod
dout(channels='all')

Select digital output channels.

is_multi
is_multi()

Check if this is a multi-type specification.

multi classmethod
multi(amp=None, ain=None, din=None, dout=None)

Select channels from multiple signal types.

to_sig_select
to_sig_select(channel_metadata)

Convert to SigSelect for API calls.

SignalType

Bases: IntEnum

Signal type. Values match proto common.SignalType.