Files
epics-base/src/std/link/links.dbd.pod
Andrew Johnson f8d6cd98a0 Minor cleanups
2016-09-03 19:44:49 -05:00

147 lines
2.9 KiB
Plaintext

=head1 JSON Links
JSON Links are an extensible mechanism for adding new kinds of database link,
using JSON for the link address.
The following link types are available in this release:
=over
=item * L<Constant|/"Constant Link const">
=item * L<Database|/"Database Link db">
=item * L<Channel Access|/"Channel Access Link ca">
=item * L<Calc|/"Calculation Link calc">
=back
=head2 Using Links
...
must appear inside a pair of braces C< {} > expressed as a JSON
(L<JavaScript Object Notation|http://www.json.org/>) object, which allows link
parameters to be defined as needed.
=head2 Link Type Reference
=cut
link(const, lnkConstIf)
=head3 Constant Link C<"const">
Constant links provide one or more values at link initalization time, but do not return
any data when their C<getValue()> routine is called. Most record types support the use of
constant links by calling C<recGblInitConstantLink()> at initialization, which results in
the constant value being loaded into the target field at that time.
=head4 Parameters
A const link takes a parameter which may be an integer, double or string, or an array of
those types. If an array contains both integers and double values the integers will be
promoted to doubles. Mixing strings and numbers in an array will result in an error.
=head4 Examples
{const: 3.14159265358979}
{const: "Pi"}
{const: [1, 2.718281828459, 3.14159265358979]}
{const: ["One", "e", "Pi"]}
=cut
#link(db, lnkDbIf)
=head3 Database Link C<"db">
...
=head4 Parameters
...
=head4 Example
...
=cut
#link(ca, lnkCaIf)
=head3 Channel Access Link C<"ca">
...
=head4 Parameters
...
=over
=item ...
...
=back
...
=head4 Example
...
=cut
link(calc, lnkCalcIf)
=head3 Calculation Link C<"calc">
Calculation links can perform simple mathematical expressions on scalar
(double-precision floating-point) values obtained from other link types and
return a single double-precision floating-point result. The expressions are
evaluated by the EPICS Calc engine, and up to 12 input links can be used.
=head4 Parameters
The link value is a map with the following keys:
=over
=item expr
The expression to be evaluated, provided as a string.
=item major
An optional expression that returns non-zero to raise a major alarm.
=item minor
An optional expression that returns non-zero to raise a minor alarm.
=item args
A JSON list of up to 12 input arguments for the expression, which are assigned
to the inputs C<A>, C<B>, C<C>, ... C<L>. Each input argument may be either a
numeric literal or an embedded link inside C<{}> braces.
=item units
An optional string specifying the engineering units for the result of the
expression. Equivalent to the C<EGU> field of a record.
=item prec
An optional integer specifying the numeric precision with which the calculation
result should be displayed. Equivalent to the C<PREC> field of a record.
=back
=head4 Example
{calc: {expr:"A*B", args:[{db:"record.VAL"}, 1.5]}}
=cut