synApps#

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

For complete API details see the Full API Reference.

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

EPICS asyn record support

BusyRecord

EPICS synApps busy record

CalcoutRecord

EPICS base calcout record support

EpidRecord

EPICS synApps epid record support

LuascriptRecord

EPICS synApps luascript record

ScalcoutRecord

EPICS synApps scalcout record support

SscanRecord

EPICS synApps sscan record

SseqRecord

EPICS synApps sseq record support

SubRecord

EPICS base sub record support

SwaitRecord

EPICS synApps swait record

TransformRecord

EPICS transform record support

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

EpicsRecordDeviceCommonAll

fields common to all EPICS records

EpicsRecordFloatFields

fields common to EPICS records supporting floating point values

EpicsRecordInputFields

fields common to EPICS input records

EpicsRecordOutputFields

fields common to EPICS output records

Databases#

EditStringSequence

quickly re-arrange steps in an sseq record

IocStatsDevice

synApps IOC stats

Optics2Slit1D

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

Optics2Slit2D_HV

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

Optics2Slit2D_InbOutBotTop

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

SaveData

synApps saveData support

SscanDevice

synApps XXX IOC setup of sscan records

UserAverageDevice

synApps XXX IOC setup of user averaging sub records

UserAverageN

single instance of the user average sub record

UserCalcN

single instance of the userCalcN database

UserCalcoutDevice

synApps XXX IOC setup of user calcouts

UserCalcoutN

single instance of the userCalcoutN database

UserCalcsDevice

synApps XXX IOC setup of userCalcs

UserScalcoutDevice

synApps XXX IOC setup of user scalcouts

UserScalcoutN

single instance of the userStringCalcN database

UserScriptsDevice

synApps XXX IOC setup of user lua scripts

UserStringSequenceDevice

synApps XXX IOC setup of userStringSeqs

UserStringSequenceN

single instance of the userStringSeqN database

UserTransformN

single instance of the userTranN database

UserTransformsDevice

synApps XXX IOC setup of userTransforms

Common support structures:

CalcoutRecordChannel

channel of a calcout record: A–L

EpicsSynAppsRecordEnableMixin

supports {PV}Enable feature from user databases

LuascriptRecordNumberInput

number input of a luascript record: A–J

LuascriptRecordStringInput

string input of a luascript record: AA–JJ

ScalcoutRecordNumberChannel

number channel of a scalcout record: A–L

ScalcoutRecordStringChannel

string channel of a scalcout record: AA–LL

SubRecordChannel

number channel of a sub record: A–L

SwaitRecordChannel

single channel of a swait record: A–L

Other Support#

These functions configure calcout or swait records for certain algorithms.

setup_gaussian_calcout()

set up calcout record for a noisy Gaussian

setup_gaussian_swait()

set up swait record for a noisy Gaussian

setup_incrementer_calcout()

set up calcout record as an incrementer

setup_incrementer_swait()

set up swait record as an incrementer

setup_lorentzian_calcout()

set up calcout record for a noisy Lorentzian

setup_lorentzian_swait()

set up swait record for a noisy Lorentzian

setup_random_number_swait()

set up swait record to generate random numbers

All Submodules#