allow =fields ranges in *.dbd.pod
This commit is contained in:
@@ -226,7 +226,7 @@ This flag controls value, log (archive) and alarm change events.
|
||||
The input links from where the values of A,...,U are fetched
|
||||
during record processing.
|
||||
|
||||
=fields INPA, INPB, INPC, INPD, INPE, INPF, INPG, INPH, INPI, INPJ, INPK, INPL, INPM, INPN, INPO, INPP, INPQ, INPR, INPS, INPT, INPU
|
||||
=fields INPA - INPU
|
||||
|
||||
=cut
|
||||
|
||||
@@ -341,7 +341,7 @@ during record processing.
|
||||
Thse fields hold the scalar or array values fetched through the input links
|
||||
INPA,...,INPU.
|
||||
|
||||
=fields A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U
|
||||
=fields A - U
|
||||
|
||||
=cut
|
||||
|
||||
@@ -561,7 +561,7 @@ INPA,...,INPU.
|
||||
Field types of the input value fields.
|
||||
The choices can be found by following the link to the menuFtype definition.
|
||||
|
||||
=fields FTA, FTB, FTC, FTD, FTE, FTF, FTG, FTH, FTI, FTJ, FTK, FTL, FTM, FTN, FTO, FTP, FTQ, FTR, FTS, FTT, FTU
|
||||
=fields FTA - FTU
|
||||
|
||||
=cut
|
||||
|
||||
@@ -742,7 +742,7 @@ Note that access to the C<NOT> field from C code must use the field name in
|
||||
upper case, e.g. C<< prec->NOT >> since the lower-case C<not> is a reserved
|
||||
word in C++ and cannot be used as an identifier.
|
||||
|
||||
=fields NOA, NOB, NOC, NOD, NOE, NOF, NOG, NOH, NOI, NOJ, NOK, NOL, NOM, NON, NOO, NOP, NOQ, NOR, NOS, NOT, NOU
|
||||
=fields NOA - NOU
|
||||
|
||||
=cut
|
||||
|
||||
@@ -899,7 +899,7 @@ word in C++ and cannot be used as an identifier.
|
||||
These fields specify how many array elements the input value fields currently
|
||||
contain.
|
||||
|
||||
=fields NEA, NEB, NEC, NED, NEE, NEF, NEG, NEH, NEI, NEJ, NEK, NEL, NEM, NEN, NEO, NEP, NEQ, NER, NES, NET, NEU
|
||||
=fields NEA - NEU
|
||||
|
||||
=cut
|
||||
|
||||
@@ -1035,7 +1035,7 @@ contain.
|
||||
The output links through which the VALA ... VALU field values are sent
|
||||
during record processing, provided the subroutine returned 0.
|
||||
|
||||
=fields OUTA, OUTB, OUTC, OUTD, OUTE, OUTF, OUTG, OUTH, OUTI, OUTJ, OUTK, OUTL, OUTM, OUTN, OUTO, OUTP, OUTQ, OUTR, OUTS, OUTT, OUTU
|
||||
=fields OUTA - OUTU
|
||||
|
||||
=cut
|
||||
field(OUTA,DBF_OUTLINK) {
|
||||
@@ -1149,7 +1149,7 @@ during record processing, provided the subroutine returned 0.
|
||||
These fields hold scalar or array data generated by the subroutine which will
|
||||
be sent through the OUTA ... OUTU links during record processing.
|
||||
|
||||
=fields VALA, VALB, VALC, VALD, VALE, VALF, VALG, VALH, VALI, VALJ, VALK, VALL, VALM, VALN, VALO, VALP, VALQ, VALR, VALS, VALT, VALU
|
||||
=fields VALA - VALU
|
||||
|
||||
=cut
|
||||
|
||||
@@ -1369,7 +1369,7 @@ be sent through the OUTA ... OUTU links during record processing.
|
||||
The previous values of the output fields.
|
||||
These are used to determine when to post events if EFLG is set to C<ON CHANGE>.
|
||||
|
||||
=fields OVLA, OVLB, OVLC, OVLD, OVLE, OVLF, OVLG, OVLH, OVLI, OVLJ, OVLK, OVLL, OVLM, OVLN, OVLO, OVLP, OVLQ, OVLR, OVLS, OVLT, OVLU
|
||||
=fields OVLA - OVLU
|
||||
|
||||
=cut
|
||||
|
||||
@@ -1526,7 +1526,7 @@ These are used to determine when to post events if EFLG is set to C<ON CHANGE>.
|
||||
Field types of the output value fields.
|
||||
The choices can be found by following a link to the menuFtype definition.
|
||||
|
||||
=fields FTVA, FTVB, FTVC, FTVD, FTVE, FTVF, FTVG, FTVH, FTVI, FTVJ, FTVK, FTVL, FTVM, FTVN, FTVO, FTVP, FTVQ, FTVR, FTVS, FTVT, FTVU
|
||||
=fields FTVA - FTVU
|
||||
|
||||
=cut
|
||||
|
||||
@@ -1703,7 +1703,7 @@ The choices can be found by following a link to the menuFtype definition.
|
||||
|
||||
These fields specify how many array elements the output value fields may hold.
|
||||
|
||||
=fields NOVA, NOVB, NOVC, NOVD, NOVE, NOVF, NOVG, NOVH, NOVI, NOVJ, NOVK, NOVL, NOVM, NOVN, NOVO, NOVP, NOVQ, NOVR, NOVS, NOVT, NOVU
|
||||
=fields NOVA - NOVU
|
||||
|
||||
=cut
|
||||
|
||||
@@ -1860,7 +1860,7 @@ These fields specify how many array elements the output value fields may hold.
|
||||
These fields specify how many array elements the output value fields currently
|
||||
contain.
|
||||
|
||||
=fields NEVA, NEVB, NEVC, NEVD, NEVE, NEVF, NEVG, NEVH, NEVI, NEVJ, NEVK, NEVL, NEVM, NEVN, NEVO, NEVP, NEVQ, NEVR, NEVS, NEVT, NEVU
|
||||
=fields NEVA - NEVU
|
||||
|
||||
=cut
|
||||
|
||||
@@ -1996,7 +1996,7 @@ contain.
|
||||
These fields specify how many array elements the old value fields currently
|
||||
contain.
|
||||
|
||||
=fields ONVA, ONVB, ONVC, ONVD, ONVE, ONVF, ONVG, ONVH, ONVI, ONVJ, ONVK, ONVL, ONVM, ONVN, ONVO, ONVP, ONVQ, ONVR, ONVS, ONVT, ONVU
|
||||
=fields ONVA - ONVU
|
||||
|
||||
=cut
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ See L<Address
|
||||
Specification|https://docs.epics-controls.org/en/latest/guides/EPICS_Process_Database_Concepts.html#address-specification>
|
||||
for information on how to specify database links.
|
||||
|
||||
=fields INPA, INPB, INPC, INPD, INPE, INPF, INPG, INPH, INPI, INPJ, INPK, INPL
|
||||
=fields INPA -INPL
|
||||
|
||||
=head3 Expression
|
||||
|
||||
@@ -121,7 +121,7 @@ the expression which will operate on their respective values, as in A+B.
|
||||
Also, the RNDM nullary function can be included as an operand in the
|
||||
expression in order to generate a random number between 0 and 1.
|
||||
|
||||
=fields A, B, C, D, E, F, G, H, I, J, K, L
|
||||
=fields A - L
|
||||
|
||||
The keyword VAL returns the current contents of the VAL field (which can be
|
||||
written to by a CA put, so it might I<not> be the result from the last time
|
||||
@@ -497,7 +497,7 @@ corresponding fields. For instance, if LA does not equal the value A,
|
||||
monitors for A are triggered. The MLST and ALST fields are used in the same
|
||||
manner for the VAL field.
|
||||
|
||||
=fields LALM, ALST, MLST, LA, LB, LC, LD, LE, LF, LG, LH, LI, LJ, LK, LL
|
||||
=fields LALM, ALST, MLST, LA - LL
|
||||
|
||||
=cut
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ example, whether or not the specified PV was found and a link to it
|
||||
established. See L<Operator Display Parameters> for an explanation of these
|
||||
fields.
|
||||
|
||||
=fields INPA, INPB, INPC, INPD, INPE, INPF, INPG, INPH, INPI, INPJ, INPK, INPL
|
||||
=fields INPA - INPL
|
||||
|
||||
=head3 Expression
|
||||
|
||||
@@ -146,7 +146,7 @@ the values obtained from the INPB link is stored in the field B. The names
|
||||
can be included in the expression will operate on their respective values,
|
||||
as in A+B.
|
||||
|
||||
=fields A, B, C, D, E, F, G, H, I, J, K, L
|
||||
=fields A - L
|
||||
|
||||
The keyword VAL returns the current contents of the expression's result
|
||||
field, i.e. the VAL field for the CALC expression and the OVAL field for
|
||||
@@ -579,7 +579,7 @@ The DLYA field is set to one during the delay specified in ODLY.
|
||||
See L<Fields Common to All Record Types|dbCommonRecord/Operator Display
|
||||
Parameters> for more on the record name (NAME) and description (DESC) fields.
|
||||
|
||||
=fields EGU, PREC, HOPR, LOPR, INAV, INBV, INCV, INDV, INEV, INFV, INGV, INHV, INIV, INJV, INKV, INLV, OUTV, CLCV, OCLV, DLYA, NAME, DESC
|
||||
=fields EGU, PREC, HOPR, LOPR, INAV - INLV, OUTV, CLCV, OCLV, DLYA, NAME, DESC
|
||||
|
||||
=head3 Alarm Parameters
|
||||
|
||||
@@ -628,7 +628,7 @@ corresponding fields. For instance, if LA does not equal the value for A,
|
||||
monitors for A are triggered. The MLST and ALST fields are used in the same
|
||||
manner for the VAL field.
|
||||
|
||||
=fields LALM, ALST, MLST, LA, LB, LC, LD, LE, LF, LG, LH, LI, LJ, LK, LL
|
||||
=fields LALM, ALST, MLST, LA - LL
|
||||
|
||||
=cut
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ If SELM is C<Mask>, then SELN will be treated as a bit mask. If bit zero
|
||||
OUTB will be written to, and so on. Thus when SELN==5, both OUTC and OUTA
|
||||
will be written to.
|
||||
|
||||
=fields SELL, SELM, SELN, OUTA, OUTB, OUTC, OUTD, OUTE, OUTF, OUTG, OUTH
|
||||
=fields SELL, SELM, SELN, OUTA - OUTH
|
||||
|
||||
=head3 Operator Display Parameters
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ via dbPuts.
|
||||
The Fanout record also has the standard scanning fields common to all records.
|
||||
These fields are listed in L<Scan Fields|dbCommonRecord/Scan Fields>.
|
||||
|
||||
=fields SELM, SELN, SELL, OFFS, SHFT, LNK0, LNK1, LNK2, LNK3, LNK4, LNK5, LNK6, LNK7, LNK8, LNK9, LNKA, LNKB, LNKC, LNKD, LNKE, LNKF
|
||||
=fields SELM, SELN, SELL, OFFS, SHFT, LNK0 - LNK9, LNKA - LNKF
|
||||
|
||||
=cut
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ determine VAL as follows:
|
||||
|
||||
Each of the fields, B0-BF and B10-B1F, represents one bit of the word.
|
||||
|
||||
=fields VAL, INP, RVAL, SHFT, B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, BA, BB, BC, BD, BE, BF, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, B1A, B1B, B1C, B1D, B1E, B1F
|
||||
=fields VAL, INP, RVAL, SHFT, B0 - B9, BA - BF, B10 - B1F
|
||||
|
||||
=head3 Operator Display Parameters
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ initialization if the record is still undefined (UDF) after DOL has been read
|
||||
and the device support initialized but at least one of the B0-B1F fields is
|
||||
non-zero, the VAL field will be set from those fields and UDF will be cleared.
|
||||
|
||||
=fields B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, BA, BB, BC, BD, BE, BF, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, B1A, B1B, B1C, B1D, B1E, B1F
|
||||
=fields B0 - B9, BA - BF, B10 - B1F
|
||||
|
||||
=head3 Convert and Write Parameters
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ NaN to another value in order to define the link and its field. Note that all
|
||||
undefined links must be recognized as such if the selection algorithm is to work
|
||||
as expected.
|
||||
|
||||
=fields INPA, INPB, INPC, INPD, INPE, INPF, INPG, INPH, INPI, INPJ, INPK, INPL, A, B, C, D, E, F, G, H, I, J, K, L
|
||||
=fields INPA - INPL, A - L
|
||||
|
||||
=head3 Select Parameters
|
||||
|
||||
@@ -156,7 +156,7 @@ The LA-LL fields are used to implement the monitors for each of the value
|
||||
fields, A-L. They represent previous input values. For example, unless LA is not
|
||||
equal to A, no monitor is invoked for A.
|
||||
|
||||
=fields VAL, LALM, ALST, MLST, LA, LB, LC, LD, LE, LF, LG, LH, LI, LJ, LK, LL
|
||||
=fields VAL, LALM, ALST, MLST, LA - LL
|
||||
|
||||
=head2 Record Support
|
||||
|
||||
|
||||
@@ -58,11 +58,11 @@ constant value, and may subsequently be changed via dbPuts.
|
||||
|
||||
=head4 Desired Output Link Fields
|
||||
|
||||
=fields DOL0, DOL1, DOL2, DOL3, DOL4, DOL5, DOL6, DOL7, DOL8, DOL9, DOLA, DOLB, DOLC, DOLD, DOLE, DOLF
|
||||
=fields DOL0 - DOL9, DOLA - DOLF
|
||||
|
||||
=head4 Desired Output Value Fields
|
||||
|
||||
=fields DO0, DO1, DO2, DO3, DO4, DO5, DO6, DO7, DO8, DO9, DOA, DOB, DOC, DOD, DOE, DOF
|
||||
=fields DO0 - DO9, DOA - DOF
|
||||
|
||||
=head3 Output Parameters
|
||||
|
||||
@@ -72,7 +72,7 @@ output link (LNK0-LNKF). These output links can be database links or channel
|
||||
access links; they cannot be device addresses. There are sixteen output links, one
|
||||
for each desired output link. Only those that are defined are used.
|
||||
|
||||
=fields LNK0, LNK1, LNK2, LNK3, LNK4, LNK5, LNK6, LNK7, LNK8, LNK9, LNKA, LNKB, LNKC, LNKD, LNKE, LNKF
|
||||
=fields LNK0 - LNK9, LNKA - LNKF
|
||||
|
||||
=head3 Selection Algorithm Parameters
|
||||
|
||||
@@ -178,7 +178,7 @@ DOL1, DOV1, and LNK1 fields for three seconds. That is, the desired output value
|
||||
will not be fetched and written to the output link until three seconds have
|
||||
lapsed.
|
||||
|
||||
=fields DLY0, DLY1, DLY2, DLY3, DLY4, DLY5, DLY6, DLY7, DLY8, DLY9, DLYA, DLYB, DLYC, DLYD, DLYE, DLYF
|
||||
=fields DLY0 - DLY9, DLYA - DLYF
|
||||
|
||||
=head3 Operator Display Parameters
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ the constant value and the field's value can be changed at run-time via dbPuts.
|
||||
Otherwise, the values for (A-F) are fetched from the input links when the record
|
||||
is processed.
|
||||
|
||||
=fields INPA, INPB, INPC, INPD, INPE, INPF, INPG, INPH, INPI, INPJ, INPK, INPL, A, B, C, D, E, F, G, H, I, J, K, L
|
||||
=fields INPA - INPL, A - L
|
||||
|
||||
=head3 Subroutine Connection
|
||||
|
||||
@@ -119,7 +119,7 @@ The rest of these fields--LALM, ALST, MLST, and the LA-LL fields--are used to
|
||||
implement the monitors. For example, when LA is not equal to A, the value-change
|
||||
monitors are called for that field.
|
||||
|
||||
=fields VAL, SADR, LALM, ALST, MLST, LA, LB, LC, LD, LE, LF, LG, LH, LI, LJ, LK, LL
|
||||
=fields VAL, SADR, LALM, ALST, MLST, LA - LL
|
||||
|
||||
=head2 Record Support
|
||||
|
||||
|
||||
@@ -222,11 +222,11 @@ sub rtypeToPod {
|
||||
my ($rtyp, $dbd) = @_;
|
||||
return map {
|
||||
# Handle a 'fields' Pod directive
|
||||
if (m/^ =fields \s+ (\w+ (?:\s* , \s* \w+ )* )/x) {
|
||||
my @names = split /\s*,\s*/, $1;
|
||||
if (m/^ =fields \s+ (\w+ (?:\s* [,-] \s* \w+ )* )/x) {
|
||||
my @names = split /\s*,\s*|\s*(?=-)|(?<=-)\s*/, $1;
|
||||
# Look up the named fields
|
||||
my @fields = map {
|
||||
my $field = $rtyp->field($_);
|
||||
my $field = $_ eq '-' ? $_ : $rtyp->field($_);
|
||||
die "Unknown field name '$_' in $infile POD\n"
|
||||
unless $field;
|
||||
$field;
|
||||
@@ -256,6 +256,9 @@ sub rtypeToPod {
|
||||
|
||||
sub fieldTableRow {
|
||||
my ($fld, $dbd) = @_;
|
||||
if ($fld eq '-') {
|
||||
return '<tr><td class="cell" colspan=8>⋮</td></tr>'."\n";
|
||||
}
|
||||
my $html = '<tr><td class="cell">';
|
||||
$html .= $fld->name;
|
||||
$html .= '</td><td class="cell">';
|
||||
|
||||
@@ -164,11 +164,11 @@ sub rtypeToMD {
|
||||
my ($rtyp, $dbd) = @_;
|
||||
return map {
|
||||
# Handle a 'fields' Pod directive
|
||||
if (m/^ =fields \s+ (\w+ (?:\s* , \s* \w+ )* )/x) {
|
||||
my @names = split /\s*,\s*/, $1;
|
||||
if (m/^ =fields \s+ (\w+ (?:\s* [,-] \s* \w+ )* )/x) {
|
||||
my @names = split /\s*,\s*|\s*(?=-)|(?<=-)\s*/, $1;
|
||||
# Look up the named fields
|
||||
my @fields = map {
|
||||
my $field = $rtyp->field($_);
|
||||
my $field = $_ eq '-' ? $_ : $rtyp->field($_);
|
||||
die "Unknown field name '$_' in $infile POD\n"
|
||||
unless $field;
|
||||
$field;
|
||||
@@ -195,6 +195,9 @@ sub rtypeToMD {
|
||||
|
||||
sub fieldTableRow {
|
||||
my ($fld, $dbd) = @_;
|
||||
if ($fld eq '-') {
|
||||
return "| \x{22EE}".(" " x 83)."||||||||";
|
||||
}
|
||||
my @md;
|
||||
push @md, sprintf("%-5s", $fld->name), sprintf("%-26s", $fld->attribute('prompt'));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user