diff --git a/modules/database/src/std/rec/aSubRecord.dbd.pod b/modules/database/src/std/rec/aSubRecord.dbd.pod index 8c97117d7..5131af881 100644 --- a/modules/database/src/std/rec/aSubRecord.dbd.pod +++ b/modules/database/src/std/rec/aSubRecord.dbd.pod @@ -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 field from C code must use the field name in upper case, e.g. C<< prec->NOT >> since the lower-case C 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. -=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. 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 diff --git a/modules/database/src/std/rec/calcRecord.dbd.pod b/modules/database/src/std/rec/calcRecord.dbd.pod index 3def5741f..31e3163a4 100644 --- a/modules/database/src/std/rec/calcRecord.dbd.pod +++ b/modules/database/src/std/rec/calcRecord.dbd.pod @@ -45,7 +45,7 @@ See L
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 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 diff --git a/modules/database/src/std/rec/calcoutRecord.dbd.pod b/modules/database/src/std/rec/calcoutRecord.dbd.pod index 55ac8a4b3..3e1dbd4a9 100644 --- a/modules/database/src/std/rec/calcoutRecord.dbd.pod +++ b/modules/database/src/std/rec/calcoutRecord.dbd.pod @@ -68,7 +68,7 @@ example, whether or not the specified PV was found and a link to it established. See L 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 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 diff --git a/modules/database/src/std/rec/dfanoutRecord.dbd.pod b/modules/database/src/std/rec/dfanoutRecord.dbd.pod index 82a3ecf7d..4993accaa 100644 --- a/modules/database/src/std/rec/dfanoutRecord.dbd.pod +++ b/modules/database/src/std/rec/dfanoutRecord.dbd.pod @@ -88,7 +88,7 @@ If SELM is C, 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 diff --git a/modules/database/src/std/rec/fanoutRecord.dbd.pod b/modules/database/src/std/rec/fanoutRecord.dbd.pod index 9e186b4d7..7363f8162 100644 --- a/modules/database/src/std/rec/fanoutRecord.dbd.pod +++ b/modules/database/src/std/rec/fanoutRecord.dbd.pod @@ -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. -=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 diff --git a/modules/database/src/std/rec/mbbiDirectRecord.dbd.pod b/modules/database/src/std/rec/mbbiDirectRecord.dbd.pod index ce27f0f8c..40e1fd103 100644 --- a/modules/database/src/std/rec/mbbiDirectRecord.dbd.pod +++ b/modules/database/src/std/rec/mbbiDirectRecord.dbd.pod @@ -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 diff --git a/modules/database/src/std/rec/mbboDirectRecord.dbd.pod b/modules/database/src/std/rec/mbboDirectRecord.dbd.pod index b038a2e5f..d40cb48c7 100644 --- a/modules/database/src/std/rec/mbboDirectRecord.dbd.pod +++ b/modules/database/src/std/rec/mbboDirectRecord.dbd.pod @@ -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 diff --git a/modules/database/src/std/rec/selRecord.dbd.pod b/modules/database/src/std/rec/selRecord.dbd.pod index 42dcccd77..56d650366 100644 --- a/modules/database/src/std/rec/selRecord.dbd.pod +++ b/modules/database/src/std/rec/selRecord.dbd.pod @@ -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 diff --git a/modules/database/src/std/rec/seqRecord.dbd.pod b/modules/database/src/std/rec/seqRecord.dbd.pod index ae923c95d..0dc5a1c55 100644 --- a/modules/database/src/std/rec/seqRecord.dbd.pod +++ b/modules/database/src/std/rec/seqRecord.dbd.pod @@ -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 diff --git a/modules/database/src/std/rec/subRecord.dbd.pod b/modules/database/src/std/rec/subRecord.dbd.pod index 0a63d1d0b..6e6edd4bb 100644 --- a/modules/database/src/std/rec/subRecord.dbd.pod +++ b/modules/database/src/std/rec/subRecord.dbd.pod @@ -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 diff --git a/modules/database/src/tools/dbdToHtml.pl b/modules/database/src/tools/dbdToHtml.pl index 37a6f8966..aecb9b481 100644 --- a/modules/database/src/tools/dbdToHtml.pl +++ b/modules/database/src/tools/dbdToHtml.pl @@ -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 '⋮'."\n"; + } my $html = ''; $html .= $fld->name; $html .= ''; diff --git a/modules/database/src/tools/dbdToMD.pl b/modules/database/src/tools/dbdToMD.pl index 9e9a7188c..4709f01cd 100644 --- a/modules/database/src/tools/dbdToMD.pl +++ b/modules/database/src/tools/dbdToMD.pl @@ -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'));