EPICS base calcout record#

The calcout record is part of EPICS base: https://wiki-ext.aps.anl.gov/epics/index.php/RRM_3-14_Calcout

Ophyd support for the EPICS calcout record

https://wiki-ext.aps.anl.gov/epics/index.php/RRM_3-14_Calcout

Public Structures

UserCalcoutDevice([prefix, kind, ...])

EPICS synApps XXX IOC setup of user calcouts: $(P):userCalcOut$(N)

UserCalcoutN([prefix, kind, read_attrs, ...])

Single instance of the userCalcoutN database.

CalcoutRecord([prefix, kind, read_attrs, ...])

EPICS base calcout record support in ophyd

CalcoutRecordChannel(prefix, letter, **kwargs)

channel of a calcout record: A-L

setup_gaussian_calcout(calcout, ref_signal)

setup calcout for noisy Gaussian

setup_incrementer_calcout(calcout[, scan, limit])

setup calcout record as an incrementer

setup_lorentzian_calcout(calcout, ref_signal)

setup calcout record for noisy Lorentzian

class apstools.synApps.calcout.CalcoutRecord(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, child_name_separator='_', connection_timeout=<object object>, **kwargs)[source]#

EPICS base calcout record support in ophyd

reset()

set all fields to default values

See:

https://wiki-ext.aps.anl.gov/epics/index.php/RRM_3-14_Calcout

reset()[source]#

set all fields to default values

class apstools.synApps.calcout.CalcoutRecordChannel(prefix, letter, **kwargs)[source]#

channel of a calcout record: A-L

reset()

set all fields to default values

reset()[source]#

set all fields to default values

class apstools.synApps.calcout.UserCalcoutDevice(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, child_name_separator='_', connection_timeout=<object object>, **kwargs)[source]#

EPICS synApps XXX IOC setup of user calcouts: $(P):userCalcOut$(N)

reset()

set all fields to default values

reset()[source]#

set all fields to default values

class apstools.synApps.calcout.UserCalcoutN(prefix='', *, name, kind=None, read_attrs=None, configuration_attrs=None, parent=None, child_name_separator='_', connection_timeout=<object object>, **kwargs)[source]#

Single instance of the userCalcoutN database.

apstools.synApps.calcout.setup_gaussian_calcout(calcout, ref_signal, center=0, width=1, scale=1, noise=0.05)[source]#

setup calcout for noisy Gaussian

calculation:

D*(0.95+E*RNDM)/exp(((A-B)/C)^2)

PARAMETERS

calcout

object : instance of CalcoutRecord

ref_signal

object : instance of EpicsSignal used as A

center

float : EPICS record field B, default = 0

width

float : EPICS record field C, default = 1

scale

float : EPICS record field D, default = 1

noise

float : EPICS record field E, default = 0.05

apstools.synApps.calcout.setup_incrementer_calcout(calcout, scan=None, limit=100000)[source]#

setup calcout record as an incrementer

PARAMETERS

calcout

object : instance of CalcoutRecord

scan

text or int or None : any of the EPICS record .SCAN values, or the index number of the value, set to default if None, default: .1 second

limit

int or None : set the incrementer back to zero when this number is reached (or passed), default: 100000

apstools.synApps.calcout.setup_lorentzian_calcout(calcout, ref_signal, center=0, width=1, scale=1, noise=0.05)[source]#

setup calcout record for noisy Lorentzian

calculation:

D*(0.95+E*RNDM)/(1+((A-B)/C)^2)

PARAMETERS

calcout

object : instance of CalcoutRecord

ref_signal

object : instance of EpicsSignal used as A

center

float : EPICS record field B, default = 0

width

float : EPICS record field C, default = 1

scale

float : EPICS record field D, default = 1

noise

float : EPICS record field E, default = 0.05