Implements a multistep measurement that may involve up to four sets of the following operations:
When all measurement steps have completed, performs up to four calculations on cached scalar data.
The original purpose of this database was to allow the sscan record to perform a preprogrammed dichroism measurement, in which a measurement is made under two conditions (say, 'a' and 'b'), and the result (Ma-Mb)/(Ma+Mb) is recorded.
A front end for the APS insertion-device control system. This database allows an ID to be driven by a ca_put_callback() command.
Support for the Queensgate Nano2k piezo controller.
Deprecated collection of databases for fanning out a "stop" command to all motor records in an ioc, and for rolling up all motor-moving states into a single PV. The motor module has a better way of doing this (motorUtil.db, and the motorUtilInit() command invoked from the ioc startup file).
Implements a PID (proportional/integral/differential) feedback loop, reading values from a readback PV, comparing with a desired value, and writing corrections to a control PV. This record-based feedback loop is for low-speed applications, and is very general because it can use any EPICS PVs for readback and control.
pid_control.adl, pid_parameters.adl
A version of pid_control with two improvements:
Implements a PID (proportional/integral/differential) feedback loop, reading values from a readback PV, comparing with a desired value, and writing corrections to a control PV. This inerrupt-service-routine based loop can run very fast (up to around 10 kHz) but is restricted in readback and control PVs. The readback must be an appropriately supported analog input device, such as the IP330 ADC, and the control must be an appropriately supported analog output device, such as the DAV128V.
Support for Femto (brand name) low-noise current amplifier.
Adds tweak functionality to any floating point PV
Adds ramp and tweak functionality to any numeric PV. To use, type the name of the PV into the "targetPV:" text-entry field (or use Drag-And-Drop), and set the step period and size. If you don't want ramping, set the step size to zero.
This database supports ca_put_callback. When the desired-value or tweak fields are written to by a ca_put_callback, the callback will not be sent until the target has reached the new desired value. The database also supports autosave, and will correctly initialize itself after a reboot.
ramp_tweak.adl, ramp_tweakSetup.adl
I don't know what this is.
Miscellaneous PVs: burtResult, ISO8601 time-stamp string
Collects values of up to three PVs in arrays for plotting as functions of time.
Support for one particular sample holder.
Support for the scaler record.
Support for a soft motor record that can be attached at run time to a real motor or other motorlike collection of PVs.
A stringin record with "Soft Timestamp" device support
Cause a specified action to occur at a specified date and time.
Cause a specified action to occur after a specified time interval.
Cause a specified action to occur after a specified time interval
I don't know what this is.
Ten MBBO records.
A string-sequence record configured to zero a motor by putting it into "Set" mode, writing zero to its VAL field, and putting it into "Use" mode. zero2 does the same thing for two motors.
A general purpose selector, which allows the deployer to attach a menu to a list of actions. For example, to implement control of a motor for which discrete positions have special significance (mirror stripe, sample-wheel angle), one edits selector.substitutions (see iocBoot/iocStdTest) with the names and motor positions, and the target PV (or PVs) to which those positions should be written. The menu selection can be made by a client using ca_put_callback().
It's possible to configure the target PV at run time. If this is done, it's important to note that the links shown below in selector_more.adl must have the attribute "CA", because the record is configured to wait for completion, which can't be done with a PP link.
selector.adl, selector_choice.adl,selector_more.adl
Stores the string cmd and executes it with iocshCmd() after iocInit. This is useful to simplify maintenance of command files that specify databases which must be paired with code (such as State Notation Language programs) that must be invoked after iocInit. It's tedious and error prone to have the commands separated. doAfterIocInit() allows this:
to be replaced by this:# editSseq - edit any sseq or seq record dbLoadRecords("$(CALC)/calcApp/Db/editSseq.db", "P=xxxL:,Q=ES:") # Don't forget to run the sequence program, editSseq, below ... unrelated commands ... iocInit ... more unrelated commands ... seq &editSseq, 'P=xxxL:,Q=ES:'
# editSseq - edit any sseq or seq record dbLoadRecords("$(CALC)/calcApp/Db/editSseq.db", "P=xxxL:,Q=ES:") doAfterIocInit("seq &editSseq, 'P=xxxL:,Q=ES:'")
Searches the vxWorks symbol table for a function that matches the string funcName, then executes the function with the given arguments. vxCall will parse each argument to determine if it represents a number or a string and pass the correct values to the vxWorks function.