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


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




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


AsynRecord(*args, **kwargs)

EPICS asyn record support in ophyd

BusyRecord(*args, **kwargs)

EPICS synApps busy record

CalcoutRecord(*args, **kwargs)

EPICS base calcout record support in ophyd

EpidRecord(*args, **kwargs)

EPICS synApps epid record support in ophyd

LuascriptRecord(*args, **kwargs)

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

ScalcoutRecord(*args, **kwargs)

EPICS SynApps calc scalcout record support in ophyd

SscanRecord(*args, **kwargs)

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

SseqRecord(*args, **kwargs)

EPICS synApps sseq record support in ophyd

SubRecord(*args, **kwargs)

EPICS base sub record support in ophyd

SwaitRecord(*args, **kwargs)

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

TransformRecord(*args, **kwargs)

EPICS transform record support in ophyd

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

EpicsRecordDeviceCommonAll(*args, **kwargs)

Many of the fields common to all EPICS records.

EpicsRecordInputFields(*args, **kwargs)

Some fields common to EPICS input records.

EpicsRecordOutputFields(*args, **kwargs)

Some fields common to EPICS output records.

EpicsRecordFloatFields(*args, **kwargs)

Some fields common to EPICS records supporting floating point values.


EditStringSequence(*args, **kwargs)

EPICS synApps sseq support to quickly re-arrange steps.

Optics2Slit1D(*args, **kwargs)

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

Optics2Slit2D_HV(*args, **kwargs)

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

Optics2Slit2D_InbOutBotTop(*args, **kwargs)

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

SaveData(*args, **kwargs)

EPICS synApps saveData support.

SscanDevice(*args, **kwargs)

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

UserCalcN(*args, **kwargs)

Single instance of the userCalcN database.

UserCalcsDevice(*args, **kwargs)

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

UserCalcoutDevice(*args, **kwargs)

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

UserCalcoutN(*args, **kwargs)

Single instance of the userCalcoutN database.

UserScalcoutDevice(*args, **kwargs)

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

UserScalcoutN(*args, **kwargs)

Single instance of the userStringCalcN database.

UserScriptsDevice(*args, **kwargs)

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

UserStringSequenceDevice(*args, **kwargs)

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

UserStringSequenceN(*args, **kwargs)

Single instance of the userStringSeqN database.

UserAverageN(*args, **kwargs)

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

UserAverageDevice(*args, **kwargs)

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

UserTransformN(*args, **kwargs)

Single instance of the userTranN database.

UserTransformsDevice(*args, **kwargs)

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

EpicsSynAppsRecordEnableMixin(*args, **kwargs)

Supports {PV}Enable feature from user databases.

CalcoutRecordChannel(*args, **kwargs)

channel of a calcout record: A-L

IocStatsDevice(*args, **kwargs)

synApps IOC stats

LuascriptRecordNumberInput(*args, **kwargs)

number input of a synApps luascript record: A-J

LuascriptRecordStringInput(*args, **kwargs)

string input of a synApps luascript record: AA-JJ

ScalcoutRecordNumberChannel(*args, **kwargs)

Number channel of an scalcout record: A-L

ScalcoutRecordStringChannel(*args, **kwargs)

String channel of an scalcout record: AA-LL

SubRecordChannel(*args, **kwargs)

Number channel of a sub record: A-L

SwaitRecordChannel(*args, **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#