From 399f6b311e6c283a342e6d0f3632bbf1fff4376d Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Mon, 15 Jan 2018 13:09:40 -0800 Subject: [PATCH] more doc --- documentation/qsrvpage.h | 41 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/documentation/qsrvpage.h b/documentation/qsrvpage.h index 202c1d1..b2d65c8 100644 --- a/documentation/qsrvpage.h +++ b/documentation/qsrvpage.h @@ -4,10 +4,47 @@ @section qsrv_config QSRV Configuration By default QSRV exposes all Process Variables (fields of process database records). -In addition to these "single" PVs, special "group" PVs. +In addition to these "single" PVs are special "group" PVs. -@subsection qsrv_group_sym Group PV semantics +@subsection qsrv_single Single PVs + +"single" PVs are the same set of names server by the Channel Access server (RSRV). +This is all accessible record fields. +So all data which is accessible via Channel Access is also accessible via PVAccess. + +QSRV presents all "single" PVs as Structures conforming to the +Normative Types NTScalar, NTScalarArray, or NTEnum depending on the native DBF field type. @subsection qsrv_group_def Group PV definitions +A group is defined using a JSON syntax. +Groups are defined with respect to a Group Name, +which is also the PV name. +So unlike records, the "field" of a group have a different meaning. +Group field names are _not_ part of the PV name. + +A group definition is split among several records. +For example of a group including two records is: + +@code +record(ai, "rec:X") { + info(Q:group, { + "grp:name": { + "X": {+channel:"VAL"} + } + }) +} +record(ai, "rec:Y") { + info(Q:group, { + "grp:name": { + "Y": {+channel:"VAL"} + } + }) +} +@endcode + +This group, named "grp:name", has two fields "X" and "Y". + +@subsection qsrv_group_sym Group PV semantics + */