preliminary docs for pva links
This commit is contained in:
@ -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
|
||||
|
||||
|
@ -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.
|
||||
|
||||
*/
|
||||
|
Reference in New Issue
Block a user