Controller devices

CompactERAS - CRIO + ERAS coupled devices

class sophys.common.devices.compacteras.CompactERAS(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, **kwargs)[source]

A CompactERAS Soft IOC Ophyd device.

The channels can be accessed via the CH{0..4} attributes.

Attributes

CH1

Channel --- Suffix = CH1 | Kind.normal

CH2

Channel --- Suffix = CH2 | Kind.normal

CH3

Channel --- Suffix = CH3 | Kind.normal

CH4

Channel --- Suffix = CH4 | Kind.normal

acquisition_bandwidth

EpicsSignalRO --- Suffix = AcquisitionBandwidth | Kind.normal

permanent_device_card

EpicsSignalRO --- Suffix = VoltageCard | Kind.normal

permanent_device_prefix

EpicsSignalRO --- Suffix = VoltageReaderPrefix | Kind.normal

sampling_rate

EpicsSignalRO --- Suffix = SamplingRate | Kind.normal

supported_devices

EpicsSignalRO --- Suffix = DevicesUsed | Kind.normal

variable_device_prefix

EpicsSignalRO --- Suffix = ScaleSwitcherPrefix | Kind.normal

version

EpicsSignalRO --- Suffix = Version | Kind.normal

Channels are accessible via self.CH{x}, for x in {1, 2, 3, 4}.

class sophys.common.devices.compacteras.Channel(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, **kwargs)[source]

A CompactERAS channel. It is directly tied to a corresponding ERAS channel.

Attributes

SC0

Scale --- Suffix = SC0 | Kind.omitted

SC1

Scale --- Suffix = SC1 | Kind.omitted

SC2

Scale --- Suffix = SC2 | Kind.omitted

SC3

Scale --- Suffix = SC3 | Kind.omitted

SC4

Scale --- Suffix = SC4 | Kind.omitted

SC5

Scale --- Suffix = SC5 | Kind.omitted

SC6

Scale --- Suffix = SC6 | Kind.omitted

SC7

Scale --- Suffix = SC7 | Kind.omitted

associated_voltage_channel

EpicsSignalRO --- Suffix = AssociatedVoltageChannel | Kind.omitted

current

EpicsSignalRO --- Suffix = Current | Kind.hinted

current_full_scale_label

EpicsSignalRO --- Suffix = GetCurrentFSLbl | Kind.config

current_sensitivity_label

EpicsSignalRO --- Suffix = GetCurrentSTLbl | Kind.config

measurement_type

EpicsSignal --- Suffix = MeasurementType | Kind.config

serial_number

EpicsSignal --- Suffix = SN | Kind.omitted

user_current_offset

EpicsSignal --- Suffix = UserCurrentOffset | Kind.omitted

user_voltage_offset

EpicsSignal --- Suffix = UserVoltageOffset | Kind.omitted

voltage

EpicsSignalRO --- Suffix = Voltage | Kind.hinted

voltage_full_scale

EpicsSignal --- Suffix = VoltFS | Kind.omitted

voltage_scale_factor

EpicsSignal --- Suffix = VoltageSF | Kind.omitted

Each channel has 8 scales, hardcoded at the time of writing. These are accessible via self.SC{x}, for x in {0..7}.

class sophys.common.devices.compacteras.Scale(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, **kwargs)[source]

Attributes

analog_bw

EpicsSignal --- Suffix = AnalogBW | Kind.config

calibration_offset

EpicsSignal --- Suffix = CalibrationOffset | Kind.config

gain_correction

EpicsSignal --- Suffix = GainCorrection | Kind.config

ERAS - Ethernet Range Selector

class sophys.common.devices.eras.ERAS(*args, connection_timeout=<object object>, **kwargs)[source]

Ophyd abstraction for the Ethernet Range Selector device.

Attributes

device_name

EpicsSignal --- Read = GetDev | Write = SetDev | Kind.normal

location

EpicsSignal --- Read = GetLoc | Write = SetLoc | Kind.normal

version

EpicsSignalRO --- Suffix = GetVer | Kind.normal

Channels are accessible via self.channel_{x}, for x in {1, 2, 3, 4}.

class sophys.common.devices.eras.Channel(*args, connection_timeout=<object object>, **kwargs)[source]

A channel from ERAS.

To control the currently selected scale, use current_scale. You can use scales[x] or scale_x to access any scale at any time.

Attributes

channel_name

EpicsSignal --- Read = GetCdv | Write = SetCdv | Kind.normal

num_scales

EpicsSignal --- Read = GetNumScl | Write = SetNumScl | Kind.normal

selected_scale

EpicsSignal --- Read = GetRng | Write = SetRng | Kind.normal

Each channel has n scales, with n given by the value of num_scales at the device initialization.

class sophys.common.devices.eras.Scale(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, **kwargs)[source]

Attributes

full_scale

EpicsSignalRO --- Suffix = GetFS | Kind.normal

full_scale_label

EpicsSignal --- Read = GetFSLbl | Write = SetFSLbl | Kind.normal

sensitivity

EpicsSignalRO --- Suffix = GetST | Kind.normal

sensitivity_label

EpicsSignal --- Read = GetSTLbl | Write = SetSTLbl | Kind.normal

TATU - Timing and Trigger Unit

class sophys.common.devices.tatu.Tatu9401(prefix, **kwargs)[source]

TATU device adapted to work with the C-Series module 9401.

This module consists of four high-speed TTL channels as an input and the other four high-speed TTL channels as an output.

Attributes

activate

EpicsSignal --- Read = TatuActive | Write = Activate | Kind.normal

input

Input --- Suffix = None | Kind.normal

master_mode

EpicsSignal --- Suffix = MasterMode | Kind.config

master_pulse

MasterPulse --- Suffix = None | Kind.normal

output

Output --- Suffix = None | Kind.normal

reset_pulses

EpicsSignal --- Suffix = Zeropulses | Kind.config

tatu_stop

EpicsSignal --- Suffix = Stop | Kind.config

class sophys.common.devices.tatu.Tatu9403(prefix, **kwargs)[source]

TATU device adapted to work with the C-Series module 9403.

This module consists of four high-speed TTL channels as an input and the other four high-speed TTL channels as an output,

This same sequence is repeated for the other channels in the sequence, four inputs, four outputs, for the first 24 IO ports.

Attributes

activate

EpicsSignal --- Read = TatuActive | Write = Activate | Kind.normal

bi0

EpicsSignalRO --- Suffix = bi0 | Kind.normal

bi1

EpicsSignalRO --- Suffix = bi1 | Kind.normal

bi10

EpicsSignalRO --- Suffix = bi10 | Kind.normal

bi11

EpicsSignalRO --- Suffix = bi11 | Kind.normal

bi16

EpicsSignalRO --- Suffix = bi16 | Kind.normal

bi17

EpicsSignalRO --- Suffix = bi17 | Kind.normal

bi18

EpicsSignalRO --- Suffix = bi18 | Kind.normal

bi19

EpicsSignalRO --- Suffix = bi19 | Kind.normal

bi2

EpicsSignalRO --- Suffix = bi2 | Kind.normal

bi3

EpicsSignalRO --- Suffix = bi3 | Kind.normal

bi8

EpicsSignalRO --- Suffix = bi8 | Kind.normal

bi9

EpicsSignalRO --- Suffix = bi9 | Kind.normal

bo12

EpicsSignalWithRBV --- Suffix = bo12 | Kind.normal

bo13

EpicsSignalWithRBV --- Suffix = bo13 | Kind.normal

bo14

EpicsSignalWithRBV --- Suffix = bo14 | Kind.normal

bo15

EpicsSignalWithRBV --- Suffix = bo15 | Kind.normal

bo20

EpicsSignalWithRBV --- Suffix = bo20 | Kind.normal

bo21

EpicsSignalWithRBV --- Suffix = bo21 | Kind.normal

bo22

EpicsSignalWithRBV --- Suffix = bo22 | Kind.normal

bo23

EpicsSignalWithRBV --- Suffix = bo23 | Kind.normal

bo4

EpicsSignalWithRBV --- Suffix = bo4 | Kind.normal

bo5

EpicsSignalWithRBV --- Suffix = bo5 | Kind.normal

bo6

EpicsSignalWithRBV --- Suffix = bo6 | Kind.normal

bo7

EpicsSignalWithRBV --- Suffix = bo7 | Kind.normal

disable_file_close

EpicsSignal --- Suffix = {global_prefix}DisableFileClose | Kind.omitted

file_averaging_time

EpicsSignal --- Suffix = {global_prefix}FileAvgTime | Kind.config

input

Input --- Suffix = None | Kind.normal

input2

Input2 --- Suffix = None | Kind.normal

input3

Input3 --- Suffix = None | Kind.normal

master_mode

EpicsSignal --- Suffix = MasterMode | Kind.config

master_pulse

MasterPulse --- Suffix = None | Kind.normal

output

Output --- Suffix = None | Kind.normal

output2

Output2 --- Suffix = None | Kind.normal

output3

Output3 --- Suffix = None | Kind.normal

pv_averaging_time

EpicsSignal --- Suffix = {global_prefix}PvAvgTime | Kind.config

reset_pulses

EpicsSignal --- Suffix = Zeropulses | Kind.config

saving_to_file

EpicsSignalRO --- Suffix = {global_prefix}AnalogSaving2File | Kind.omitted

tatu_stop

EpicsSignal --- Suffix = Stop | Kind.config

Each input and output are themselves Ophyd devices with some specific signals:

class sophys.common.devices.tatu.TatuInput(prefix, input_number, **kwargs)[source]

Base configuration and status PVs for a TATU Input port.

Attributes

analog_assoc

EpicsSignal --- Suffix = {prefix}AnalogAssocCh{input_number} | Kind.normal

analog_threshold

EpicsSignal --- Suffix = {prefix}AnalogThresholdCh{input_number} | Kind.normal

current_value

EpicsSignal --- Suffix = {prefix}P{input_number} | Kind.normal

edges_to_trigger

EpicsSignal --- Suffix = {prefix}EdgestoTrigIO{input_number} | Kind.normal

trigger_value

EpicsSignal --- Suffix = {prefix}InputTriggerIO{input_number} | Kind.normal

class sophys.common.devices.tatu.TatuOutput(prefix, output_number, **kwargs)[source]

All the conditions PVs for a TATU Output port.

Attributes

c1

TatuOutputCondition --- Suffix = {prefix}/{output_number} | Kind.normal

c2

TatuOutputCondition --- Suffix = {prefix}/{output_number} | Kind.normal

c3

TatuOutputCondition --- Suffix = {prefix}/{output_number} | Kind.normal

Each output condition, in turn, has its own signals:

class sophys.common.devices.tatu.TatuOutputCondition(prefix, condition_number, **kwargs)[source]

Base configuration and status PVs for a TATU Output port condition.

Attributes

changed

EpicsSignal --- Suffix = {prefix}IO{output_number}changed | Kind.normal

condition

EpicsSignal --- Suffix = {prefix}ConditionIO{output_number}c{condition_number} | Kind.normal

condition_combo

EpicsSignal --- Suffix = {prefix}ConditionComboIO{output_number}c{condition_number} | Kind.normal

delay

EpicsSignal --- Suffix = {prefix}DelayIO{output_number}c{condition_number} | Kind.normal

output

EpicsSignal --- Suffix = {prefix}OutputIO{output_number}c{condition_number} | Kind.normal

output_copy

EpicsSignal --- Suffix = {prefix}OutputCOPYIO{output_number}c{condition_number} | Kind.normal

pulse

EpicsSignal --- Suffix = {prefix}PulseIO{output_number}c{condition_number} | Kind.normal