synApps#

Ophyd-style support for EPICS synApps structures (records and databases).

EXAMPLES:

import apstools.synApps
calcs = apstools.synApps.userCalcsDevice("xxx:", name="calcs")
scans = apstools.synApps.SscanDevice("xxx:", name="scans")
scripts = apstools.synApps.userScriptsDevice("xxx:set1:", name="scripts")
xxxstats = apstools.synApps.IocStatsDevice("xxx:", name="xxxstats")

calc1 = calcs.calc1
apstools.synApps.swait_setup_random_number(calc1)

apstools.synApps.swait_setup_incrementer(calcs.calc2)

calc1.reset()

Categories#

Support the default structures as provided by the synApps template XXX [1] IOC. Also support, as needed, for structures from EPICS base.

Records#

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

EPICS asyn record support in ophyd

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

EPICS synApps busy record

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

EPICS base calcout record support in ophyd

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

EPICS synApps epid record support in ophyd

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

EPICS synApps luascript record: used as $(P):userScript$(N)

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

EPICS SynApps calc scalcout record support in ophyd

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

EPICS synApps sscan record: used as $(P):scan(N)

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

EPICS synApps sseq record support in ophyd

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

EPICS base sub record support in ophyd

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

EPICS synApps swait record: used as $(P):userCalc$(N)

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

EPICS transform record support in ophyd

The ophyd-style Devices for these records rely on common structures:

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

Many of the fields common to all EPICS records.

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

Some fields common to EPICS input records.

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

Some fields common to EPICS output records.

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

Some fields common to EPICS records supporting floating point values.

Databases#

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

EPICS synApps sseq support to quickly re-arrange steps.

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

EPICS synApps optics 2slit.db 1D support: xn, xp, size, center, sync

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

EPICS synApps optics 2slit.db 2D support: h.xn, h.xp, v.xn, v.xp

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

EPICS synApps optics 2slit.db 2D support: inb, out, bot, top

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

EPICS synApps saveData support.

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

EPICS synApps XXX IOC setup of sscan records: $(P):scan$(N)

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

Single instance of the userCalcN database.

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

EPICS synApps XXX IOC setup of userCalcs: $(P):userCalc$(N)

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.

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

EPICS synApps XXX IOC setup of user scalcouts: $(P):userStringCalc$(N)

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

Single instance of the userStringCalcN database.

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

EPICS synApps XXX IOC setup of user lua scripts: $(P):userScript$(N)

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

EPICS synApps XXX IOC setup of userStringSeqs: $(P):userStringSeq$(N)

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

Single instance of the userStringSeqN database.

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

EPICS synApps XXX IOC setup of user average: $(P):userAve$(N)

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

EPICS synApps XXX IOC setup of user averaging sub records: $(P):userAve$(N)

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

Single instance of the userTranN database.

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

EPICS synApps XXX IOC setup of userTransforms: $(P):userTran$(N)

EpicsSynAppsRecordEnableMixin([prefix, ...])

Supports {PV}Enable feature from user databases.

CalcoutRecordChannel(prefix, letter, **kwargs)

channel of a calcout record: A-L

IocStatsDevice(*args, **kwargs)

synApps IOC stats

LuascriptRecordNumberInput(prefix, letter, ...)

number input of a synApps luascript record: A-J

LuascriptRecordStringInput(prefix, letter, ...)

string input of a synApps luascript record: AA-JJ

ScalcoutRecordNumberChannel(prefix, letter, ...)

Number channel of an scalcout record: A-L

ScalcoutRecordStringChannel(prefix, letter, ...)

String channel of an scalcout record: AA-LL

SubRecordChannel(prefix, letter, **kwargs)

Number channel of a sub record: A-L

SwaitRecordChannel(prefix, letter, **kwargs)

EPICS synApps synApps swait record: single channel [A-L]

Other Support#

These functions configure calcout or swait records for certain algorithms.

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

setup_gaussian_swait(swait, ref_signal[, ...])

setup swait for noisy Gaussian

setup_incrementer_swait(swait[, scan, limit])

setup swait record as an incrementer

setup_lorentzian_swait(swait, ref_signal[, ...])

setup swait record for noisy Lorentzian

setup_random_number_swait(swait, **kw)

setup swait record to generate random numbers

All Submodules#