preliminary docs for pva links

This commit is contained in:
Michael Davidsaver
2018-04-17 20:39:55 -07:00
parent afe5232653
commit 4357d9079e
2 changed files with 125 additions and 1 deletions

View File

@ -10,7 +10,8 @@ runs inside an EPICS IOC process and allows clients
to make requests to access the Process Variables (PVs)
within.
Documentation of @ref qsrv_config including @ref qsrv_group_def.
Documentation of @ref qsrv_config including @ref qsrv_group_def
and @ref qsrv_link configuration.
@subsection qsrv_build Building

View File

@ -141,4 +141,127 @@ record(ai, "...") {
}
@endcode
@subsection qsrv_link PVAccess Links
When built against Base >= 3.16.1, support is enabled for PVAccess links,
which are analogous to Channel Access (CA) links. However, the syntax
for PVA links is quite different.
@warning The PVA Link syntax shown below is provisional and subject to change.
A simple configuration using defaults is
@code
record(longin, "tgt") {}
record(longin, "src") {
field(INP, {pva:"tgt"})
}
@endcode
This is a shorthand for
@code
record(longin, "tgt") {}
record(longin, "src") {
field(INP, {pva:{pv:"tgt"}})
}
@endcode
Some additional keys (beyond "pv") may be used.
Defaults are shown below:
@code
record(longin, "tgt") {}
record(longin, "src") {
field(INP, {pva:{
pv:"tgt",
field:"", # may be a sub-field
Q:4, # monitor queue depth
proc:none, # Request record processing (side-effects).
sevr:false, # Maximize severity.
monorder:0, # Order of record processing as a result of CP and CPP
defer:false # Defer put
}})
}
@endcode
@subsubsection qsrv_link_pv pv: Target PV name
The PV name to search for.
This is the same name which could be used with 'pvget' or other client tools.
@subsubsection qsrv_link_field field: Structure field name
The name of a sub-field of the remotely provided Structure.
By default, an empty string "" uses the top-level Structure.
If the top level structure, or a sub-structure is selected, then
it is expeccted to conform to NTScalar, NTScalarArray, or NTEnum
to extract value and meta-data.
If the sub-field is an PVScalar or PVScalarArray, then a value
will be taken from it, but not meta-data will be available.
@todo Ability to traverse through unions and into structure arrays (as with group mappings).
@subsubsection qsrv_link_Q Q: Monitor queue depth
Requests a certain monitor queue depth.
The server may, or may not, take this into consideration when selecting
a queue depth.
@subsubsection qsrv_link_pipeline pipeline: Monitor flow control
Expect that the server supports PVA monitor flow control.
If not, then the subscription will stall (ick.)
@subsubsection qsrv_link_proc proc: Request record processing (side-effects)
The meaning of this option depends on the direction of the link.
For output links, this option allows a request for remote processing (side-effects).
@li none (default) - Make no special request. Uses a server specific default.
@li false, "NPP" - Request to skip processing.
@li true, "PP" - Request to force processing.
@li "CP", "CPP" - For output links, an alias for "PP".
For input links, this option controls whether the record containing
the PVA link will be processed when subscription events are received.
@li none (default), false, "NPP" - Do not process on subscription updates.
@li true, "CP" - Always process on subscription updates.
@li "PP", "CPP" - Process on subscription updates if SCAN=Passive
@subsubsection qsrv_link_sevr sevr: Alarm propagation
This option controls whether reading a value from an input PVA link
has the addition effect of propagating any alarm via the Maximize
Severity process.
@warning Not yet implemented
@li false - Do not maximize severity.
@li true - Maximize alarm severity
@li "MSI" - Maximize only if the remote severity is INVALID.
@subsubsection qsrv_link_monorder monorder: Monitor processing order
When multiple record target the same target PV, and request processing
on subscription updates. This option allows the order of processing
to be specified.
Record are processed in increasing order.
monorder=-1 is processed before monorder=0.
Both are processed before monorder=1.
@subsubsection qsrv_link_defer defer: Defer put
By default (defer=false) an output link will immediately
start a PVA Put operation. defer=true will store the
new value in an internal cache, but not start a PVA Put.
This option, in combination with field: allows a single
Put to contain updates to multiple sub-fields.
*/