From cb3fb18f40b59fead64df9732a9e6a7b19cfafd2 Mon Sep 17 00:00:00 2001 From: Rold Keitel Date: Thu, 26 Mar 2020 17:41:12 -0500 Subject: [PATCH] POD docs: add aai & aai, update others --- src/std/rec/aaiRecord.dbd.pod | 362 ++++++++++++++++++++++++++++ src/std/rec/aaoRecord.dbd.pod | 360 +++++++++++++++++++++++++++ src/std/rec/stringinRecord.dbd.pod | 55 +++-- src/std/rec/stringoutRecord.dbd.pod | 54 ++++- src/std/rec/waveformRecord.dbd.pod | 45 +--- 5 files changed, 817 insertions(+), 59 deletions(-) diff --git a/src/std/rec/aaiRecord.dbd.pod b/src/std/rec/aaiRecord.dbd.pod index 06ab7f7b8..deb846c75 100644 --- a/src/std/rec/aaiRecord.dbd.pod +++ b/src/std/rec/aaiRecord.dbd.pod @@ -6,11 +6,287 @@ # EPICS BASE is distributed subject to a Software License Agreement found # in file LICENSE that is included with this distribution. #************************************************************************* + +=title Array Analog Input (aai) + +The array analog input record type is used to read array data. The array data can +contain any of the supported data types. The record is in many ways similar to the +waveform record. It allows, however, the device support to allocate the array +storage. + +=recordtype aai + +=cut + +include "menuFtype.dbd" + menu(aaiPOST) { choice(aaiPOST_Always,"Always") choice(aaiPOST_OnChange,"On Change") } + recordtype(aai) { + +=head2 Parameter Fields + +The record-specific fields are described below, grouped by functionality. + +=head3 Scan Parameters + +The array analog input record has the standard fields for specifying under what +circumstances the record will be processed. These fields are listed in L. In addition, L explains how these fields are +used. Note that I/O event scanning is only supported for those card types that +interrupt. + +=head3 Read Parameters + +These fields are configurable by the user to specify how and from where the record +reads its data. The INP field determines from where the array analog input gets +its input. It can be a hardware address, a channel access or database link, or a +constant. Only in records that use soft device support can the INP field be a +channel access link, a database link, or a constant. Otherwise, the INP field must +be a hardware address. See L
for information on the format +of hardware addresses and database links. + +=head4 Fields related to waveform reading + +The DTYP field must contain the name of the appropriate device support module. +The values retrieved from the input link are placed in an array referenced by +VAL. (If the INP link is a constant, elements can be placed in the array via +dbPuts.) NELM specifies the number of elements that the array will hold, while +FTVL specifies the data type of the elements. + +=fields DTYP, INP, NELM, FTVL + +=head4 Possible data types for FTVL + +=menu menuFtype + +=head3 Operator Display Parameters + +These parameters are used to present meaningful data to the operator. They +display the value and other parameters of the waveform either textually or +graphically. + +=head4 Fields related to I + +EGU is a string of up to 16 characters describing the units that the array data +measures. It is retrieved by the C<<< get_units() >>> record support routine. + +The HOPR and LOPR fields set the upper and lower display limits for array +elements referenced by the VAL field. Both the C<<< get_graphic_double() >>> and +C<<< get_control_double() >>> record support routines retrieve these fields. + +The PREC field determines the floating point precision with which to display the +array values. It is used whenever the C<<< get_precision() >>> record support +routine is called. + +See L for more on the record name (NAME) and +description (DESC) fields. + +=fields EGU, HOPR, LOPR, PREC, NAME, DESC + + +=head3 Alarm Parameters + +The array analog input record has the alarm parameters common to all record types. + +=head3 Monitor Parameters + +These parameters are used to determine when to send monitors placed on the VAL +field. The APST and MPST fields are a menu with choices "Always" and "On +Change". The default is "Always", thus monitors will normally be sent every time +the record processes. Selecting "On Change" causes a 32-bit hash of the VAL +field buffer to be calculated and compared with the previous hash value every +time the record processes; the monitor will only be sent if the hash is +different, indicating that the buffer has changed. Note that there is a small +chance that two different value buffers might result in the same hash value, so +for critical systems "Always" may be a better choice, even though it re-sends +duplicate data. + +=head4 Record fields related to I + +=fields APST, MPST, HASH + +=head4 Menu choices for C and C fields + +=menu aaiPOST + +=head3 Run-time Parameters + +These parameters are used by the run-time code for processing the array analog +input record. They are not configured using a configuration tool. Only the VAL +field is modifiable at run-time. + +VAL references the array where the array analog input record stores its data. The +BPTR field holds the address of the array. + +The NORD field holds a counter of the number of elements that have been read +into the array. + +=fields VAL, BPTR, NORD + +The following fields are used to operate the array analog input record in the +simulation mode. See L for more information on the simulation +mode fields. + +=fields SIOL, SIML, SIMM, SIMS + +=begin html + +
+
+
+ +=end html + +=head2 Record Support + +=head3 Record Support Routines + +=head4 init_record + + static long init_record(aaiRecord *prec, int pass) + +If device support includes C, it is called. + +Checks if device support allocated array space. If not, space for the array is +allocated using NELM and FTVL. The array address is stored in the record. + +This routine initializes SIMM with the value of SIML if SIML type is CONSTANT +link or creates a channel access link if SIML type is PV_LINK. VAL is likewise +initialized if SIOL is CONSTANT or PV_LINK. + +This routine next checks to see that device support is available and a device +support read routine is defined. If either does not exist, an error message is +issued and processing is terminated + +=head4 process + + static long process(aaiRecord *prec) + +See L section below. + +=head4 cvt_dbaddr + + static long cvt_dbaddr(DBADDR *paddr) + +This is called by dbNameToAddr. It makes the dbAddr structure refer to the +actual buffer holding the result. + +=head4 get_array_info + + static long get_array_info(DBADDR *paddr, long *no_elements, long *offset) + +Obtains values from the array referenced by VAL. + +=head4 put_array_info + + static long put_array_info(DBADDR *paddr, long nNew) + +Writes values into the array referenced by VAL. + +=head4 get_units + + static long get_units(DBADDR *paddr, char *units) + +Retrieves EGU. + +=head4 get_prec + + static long get_precision(DBADDR *paddr, long *precision) + +Retrieves PREC if field is VAL field. Otherwise, calls C<<< recGblGetPrec() >>>. + +=head4 get_graphic_double + + static long get_graphic_double(DBADDR *paddr, struct dbr_grDouble *pgd) + +Sets the upper display and lower display limits for a field. If the field is VAL +the limits are set to HOPR and LOPR, else if the field has upper and lower +limits defined they will be used, else the upper and lower maximum values for +the field type will be used. + +Sets the following values: + + upper_disp_limit = HOPR + lower_disp_limit = LOPR + +=head4 get_control_double + + static long get_control_double(DBADDR *paddr, struct dbr_ctrlDouble *pcd) + +Sets the upper control and the lower control limits for a field. If the field is +VAL the limits are set to HOPR and LOPR, else if the field has upper and lower +limits defined they will be used, else the upper and lower maximum values for +the field type will be used. + +Sets the following values + + upper_ctrl_limit = HOPR + lower_ctrl_limit = LOPR + +=head3 Record Processing + +Routine process implements the following algorithm: + +=over + +=item 1. + +Check to see that the appropriate device support module exists. If it doesn't, +an error message is issued and processing is terminated with the PACT field +still set to TRUE. This ensures that processes will no longer be called for this +record. Thus error storms will not occur. + +=item 2. + +Call device support read routine C. + +=item 3. + +If PACT has been changed to TRUE, the device support read routine has started +but has not completed writing the new value. In this case, the processing +routine merely returns, leaving PACT TRUE. + +=item 4. + +Check to see if monitors should be invoked. + +=over + +=item * + +Alarm monitors are invoked if the alarm status or severity has changed. + +=item * + +Archive and value change monitors are invoked if APST or MPST are Always or if +the result of the hash calculation is different. + +=item * + +NSEV and NSTA are reset to 0. + +=back + +=item 5. + +Scan forward link if necessary, set PACT FALSE, and return. + +=back + +=begin html + +
+
+
+ +=end html + +=cut + include "dbCommon.dbd" field(VAL,DBF_NOACCESS) { prompt("Value") @@ -114,3 +390,89 @@ recordtype(aai) { interest(3) } } + +=head2 Device Support + +=head3 Fields Of Interest To Device Support + +Each array analog input record record must have an associated set of device +support routines. The primary responsibility of the device support routines is to +obtain a new array value whenever C is called. The device support +routines are primarily interested in the following fields: + +=fields PACT, DPVT, NSEV, NSTA, INP, NELM, FTVL, BPTR, NORD + +=head3 Device Support Routines + +Device support consists of the following routines: + +=head4 report + + long report(int level) + +This optional routine is called by the IOC command C and is passed the +report level that was requested by the user. +It should print a report on the state of the device support to stdout. +The C parameter may be used to output increasingly more detailed +information at higher levels, or to select different types of information with +different levels. +Level zero should print no more than a small summary. + +=head4 init + + long init(int after) + +This optional routine is called twice at IOC initialization time. +The first call happens before any of the C calls are made, with +the integer parameter C set to 0. +The second call happens after all of the C calls have been made, +with C set to 1. + +=head4 init_record + + long init_record(dbCommon *precord) + +This routine is optional. If provided, it is called by the record support +C routine. + +=head4 get_ioint_info + + long get_ioint_info(int cmd, dbCommon *precord, IOSCANPVT *ppvt) + +This routine is called by the ioEventScan system each time the record is added +or deleted from an I/O event scan list. cmd has the value (0,1) if the +record is being (added to, deleted from) an I/O event list. It must be +provided for any device type that can use the ioEvent scanner. + +=head4 read_aai + + long read_aai(dbCommon *precord) + +This routine must provide a new input value. It returns the following values: + +=over + +=item * + +0: Success. + +=item * + +Other: Error. + +=back + +=head3 Device Support For Soft Records + +The C<<< Soft Channel >>> device support module is provided to read values from +other records and store them in arrays. If INP is a constant link, then read_aai +does nothing. In this case, the record can be used to hold arrays written via +dbPuts. If INP is a database or channel access link, the new array value is read +from the link. NORD is set. + +This module places a value directly in VAL and NORD is set to the number of items +in the array. + +If the INP link type is constant, then NORD is set to zero. + +=cut diff --git a/src/std/rec/aaoRecord.dbd.pod b/src/std/rec/aaoRecord.dbd.pod index 57d842f4f..ed2477c98 100644 --- a/src/std/rec/aaoRecord.dbd.pod +++ b/src/std/rec/aaoRecord.dbd.pod @@ -6,11 +6,287 @@ # EPICS BASE is distributed subject to a Software License Agreement found # in file LICENSE that is included with this distribution. #************************************************************************* + +=title Array Analog Output (aao) + +The array analog output record type is used to write array data. The array data +can contain any of the supported data types. The record is in many ways similar to +the waveform record but outputs arrays instead of reading them. It also allows the +device support to allocate the array storage. + +=recordtype aao + +=cut + +include "menuFtype.dbd" + menu(aaoPOST) { choice(aaoPOST_Always,"Always") choice(aaoPOST_OnChange,"On Change") } + recordtype(aao) { + +=head2 Parameter Fields + +The record-specific fields are described below, grouped by functionality. + +=head3 Scan Parameters + +The array analog output record has the standard fields for specifying under what +circumstances the record will be processed. These fields are listed in L. In addition, L explains how these fields are +used. I/O event scanning is only available when supported by device support. + +=head3 Write Parameters + +These fields are configurable by the user to specify how and where to the record +writes its data. The OUT field determines where the array analog output writes its +output. It can be a hardware address, a channel access or database link, or a +constant. Only in records that use soft device support can the OUT field be a +channel access link, a database link, or a constant. Otherwise, the OUT field must +be a hardware address. See L
for information on the format +of hardware addresses and database links. + +=head4 Fields related to array writing + +The DTYP field must contain the name of the appropriate device support module. The +values in the array referenced by are written to the location specified in the OUT +field. (If the OUT link is a constant, no data are written.) NELM specifies the +maximum number of elements that the array can hold, while FTVL specifies the data +type of the elements. + +=fields DTYP, OUT, NELM, FTVL + +=head4 Possible data types for FTVL + +=menu menuFtype + +=head3 Operator Display Parameters + +These parameters are used to present meaningful data to the operator. They +display the value and other parameters of the waveform either textually or +graphically. + +=head4 Fields related to I + +EGU is a string of up to 16 characters describing the units that the array data +measures. It is retrieved by the C<<< get_units >>> record support routine. + +The HOPR and LOPR fields set the upper and lower display limits for array +elements referenced by the VAL field. Both the C<<< get_graphic_double >>> and +C<<< get_control_double >>> record support routines retrieve these fields. + +The PREC field determines the floating point precision with which to display the +array values. It is used whenever the C<<< get_precision >>> record support +routine is called. + +See L for more on the record name (NAME) and +description (DESC) fields. + +=fields EGU, HOPR, LOPR, PREC, NAME, DESC + + +=head3 Alarm Parameters + +The array analog output record has the alarm parameters common to all record +types. + +=head3 Monitor Parameters + +These parameters are used to determine when to send monitors placed on the VAL +field. The APST and MPST fields are a menu with choices "Always" and "On +Change". The default is "Always", thus monitors will normally be sent every time +the record processes. Selecting "On Change" causes a 32-bit hash of the VAL +field buffer to be calculated and compared with the previous hash value every +time the record processes; the monitor will only be sent if the hash is +different, indicating that the buffer has changed. Note that there is a small +chance that two different value buffers might result in the same hash value, so +for critical systems "Always" may be a better choice, even though it re-sends +duplicate data. + +=head4 Record fields related to I + +=fields APST, MPST, HASH + +=head4 Menu choices for C and C fields + +=menu aaoPOST + +=head3 Run-time Parameters + +These parameters are used by the run-time code for processing the array analog +output record. They are not configured using a configuration tool. Only the VAL +field is modifiable at run-time. + +VAL references the array where the array analog output record stores its data. The +BPTR field holds the address of the array. + +The NORD field holds a counter of the number of elements that have been written to +the output, + +=fields VAL, BPTR, NORD + +The following fields are used to operate the array analog output record in the +simulation mode. See L for more information on the simulation +mode fields. + +=fields SIOL, SIML, SIMM, SIMS + +=begin html + +
+
+
+ +=end html + +=head2 Record Support + +=head3 Record Support Routines + +=head4 init_record + + static long init_record(aaoRecord *prec, int pass) + +If device support includes C, it is called. + +Checks if device support allocated array space. If not, space for the array is +allocated using NELM and FTVL. The array address is stored in the record. + +This routine initializes SIMM with the value of SIML if SIML type is CONSTANT +link or creates a channel access link if SIML type is PV_LINK. VAL is likewise +initialized if SIOL is CONSTANT or PV_LINK. + +This routine next checks to see that device support is available and a device +support write routine is defined. If either does not exist, an error message is +issued and processing is terminated + +=head4 process + + static long process(aaoRecord *prec) + +See L section below. + +=head4 cvt_dbaddr + + static long cvt_dbaddr(DBADDR *paddr) + +This is called by dbNameToAddr. It makes the dbAddr structure refer to the +actual buffer holding the result. + +=head4 get_array_info + + static long get_array_info(DBADDR *paddr, long *no_elements, long *offset) + +Obtains values from the array referenced by VAL. + +=head4 put_array_info + + static long put_array_info(DBADDR *paddr, long nNew) + +Writes values into the array referenced by VAL. + +=head4 get_units + + static long get_units(DBADDR *paddr, char *units) + +Retrieves EGU. + +=head4 get_prec + + static long get_precision(DBADDR *paddr, long *precision) + +Retrieves PREC if field is VAL field. Otherwise, calls C<<< recGblGetPrec() >>>. + +=head4 get_graphic_double + + static long get_graphic_double(DBADDR *paddr, struct dbr_grDouble *pgd) + +Sets the upper display and lower display limits for a field. If the field is VAL +the limits are set to HOPR and LOPR, else if the field has upper and lower +limits defined they will be used, else the upper and lower maximum values for +the field type will be used. + +Sets the following values: + + upper_disp_limit = HOPR + lower_disp_limit = LOPR + +=head4 get_control_double + + static long get_control_double(DBADDR *paddr, struct dbr_ctrlDouble *pcd) + +Sets the upper control and the lower control limits for a field. If the field is +VAL the limits are set to HOPR and LOPR, else if the field has upper and lower +limits defined they will be used, else the upper and lower maximum values for +the field type will be used. + +Sets the following values + + upper_ctrl_limit = HOPR + lower_ctrl_limit = LOPR + +=head3 Record Processing + +Routine process implements the following algorithm: + +=over + +=item 1. + +Check to see that the appropriate device support module exists. If it doesn't, +an error message is issued and processing is terminated with the PACT field +still set to TRUE. This ensures that processes will no longer be called for this +record. Thus error storms will not occur. + +=item 2. + +Call device support write routine C. + +=item 3. + +If PACT has been changed to TRUE, the device support read routine has started +but has not completed writing the new value. In this case, the processing +routine merely returns, leaving PACT TRUE. + +=item 4. + +Check to see if monitors should be invoked. + +=over + +=item * + +Alarm monitors are invoked if the alarm status or severity has changed. + +=item * + +Archive and value change monitors are invoked if APST or MPST are Always or if +the result of the hash calculation is different. + +=item * + +NSEV and NSTA are reset to 0. + +=back + +=item 5. + +Scan forward link if necessary, set PACT FALSE, and return. + +=back + +=begin html + +
+
+
+ +=end html + +=cut + include "dbCommon.dbd" field(VAL,DBF_NOACCESS) { prompt("Value") @@ -114,3 +390,87 @@ recordtype(aao) { interest(3) } } + +=head2 Device Support + +=head3 Fields Of Interest To Device Support + +Each array analog output record record must have an associated set of device +support routines. The primary responsibility of the device support routines is to +write the array data value whenever C is called. The device support +routines are primarily interested in the following fields: + +=fields PACT, DPVT, NSEV, NSTA, OUT, NELM, FTVL, BPTR, NORD + +=head3 Device Support Routines + +Device support consists of the following routines: + +=head4 report + + long report(int level) + +This optional routine is called by the IOC command C and is passed the +report level that was requested by the user. +It should print a report on the state of the device support to stdout. +The C parameter may be used to output increasingly more detailed +information at higher levels, or to select different types of information with +different levels. +Level zero should print no more than a small summary. + +=head4 init + + long init(int after) + +This optional routine is called twice at IOC initialization time. +The first call happens before any of the C calls are made, with +the integer parameter C set to 0. +The second call happens after all of the C calls have been made, +with C set to 1. + +=head4 init_record + + init_record(dbCommon *precord) + +This routine is optional. If provided, it is called by the record support +C routine. + +=head4 get_ioint_info + + long get_ioint_info(int cmd, dbCommon *precord, IOSCANPVT *ppvt) + +This routine is called by the ioEventScan system each time the record is added +or deleted from an I/O event scan list. cmd has the value (0,1) if the +record is being (added to, deleted from) an I/O event list. It must be +provided for any device type that can use the ioEvent scanner. + +=head4 write_aao + + long write_aao(dbCommon *precord) + +This routine must write the array data to output. It returns the following values: + +=over + +=item * + +0: Success. + +=item * + +Other: Error. + +=back + +=head3 Device Support For Soft Records + +The C<<< Soft Channel >>> device support module is provided to write values to +other records and store them in arrays. If OUT is a constant link, then +C does nothing. In this case, the record can be used to hold arrays +written via dbPuts. If OUT is a database or channel access link, the array value +is written to the link. NORD is set to the number of items in the array. + + +If the OUT link type is constant, then NORD is set to zero. + +=cut diff --git a/src/std/rec/stringinRecord.dbd.pod b/src/std/rec/stringinRecord.dbd.pod index ef1d93fa7..ecb17fe83 100644 --- a/src/std/rec/stringinRecord.dbd.pod +++ b/src/std/rec/stringinRecord.dbd.pod @@ -42,7 +42,7 @@ The string input record has the standard fields for specifying under what circumstances it will be processed. These fields are listed in L. In addition, L explains how these fields are used. -=head3 Read Parameters +=head3 Input Specification The INP field determines where the string input record gets its string. It can be a database or channel access link, or a constant. If constant, the VAL field @@ -112,8 +112,6 @@ monitors for VAL. If VAL is not equal to OVAL, then monitors are triggered. =fields OVAL - - The following fields are used to operate the string input in the simulation mode. See L for more information on simulation mode fields. @@ -251,15 +249,48 @@ routines are primarily interested in the following fields: =fields PACT, DPVT, UDF, VAL, INP -=head3 Device Support Routines (devSiSoft.c) +=head3 Device Support Routines + +Device support consists of the following routines: + +=head4 report + + long report(int level) + +This optional routine is called by the IOC command C and is passed the +report level that was requested by the user. +It should print a report on the state of the device support to stdout. +The C parameter may be used to output increasingly more detailed +information at higher levels, or to select different types of information with +different levels. +Level zero should print no more than a small summary. + +=head4 init + + long init(int after) + +This optional routine is called twice at IOC initialization time. +The first call happens before any of the C calls are made, with +the integer parameter C set to 0. +The second call happens after all of the C calls have been made, +with C set to 1. =head4 init_record - long init_record(stringinRecord *prec) + long init_record(dbCommon *prec) This routine is optional. If provided, it is called by the record support C routine. +=head4 get_ioint_info + + long get_ioint_info(int cmd, dbCommon *precord, IOSCANPVT *ppvt) + +This routine is called by the ioEventScan system each time the record is added +or deleted from an I/O event scan list. C has the value (0,1) if the +record is being (added to, deleted from) an I/O event list. It must be +provided for any device type that can use the ioEvent scanner. + =head4 read_stringin long read_stringin(stringinRecord *prec) @@ -276,17 +307,11 @@ This routine must provide a new input value. It returns the following values: =head3 Device Support for Soft Records -The C<<< Soft Channel >>> module places a value directly in VAL. +The C<<< Soft Channel >>> module reads a value directly into VAL. -If the INP link type is constant, the double constant, if non-zero, is converted -to a string and stored into VAL by C, and UDF is set to FALSE. If -the INP link type is PV_LINK, then dbCaAddInlink is called by C. - -read_stringin calls recGblGetLinkValue to read the current value of VAL. See -L. - -If the return status of recGblGetLinkValue is zero, then read_stringin sets UDF -to FALSE. The status of recGblGetLinkValue is returned. +Device support for DTYP C is provided for retrieving strings from environment variables. +C addressing C!!@ !!is used on the C link field to select the +desired environment variable. =cut diff --git a/src/std/rec/stringoutRecord.dbd.pod b/src/std/rec/stringoutRecord.dbd.pod index 773f0a7bf..123632ce8 100644 --- a/src/std/rec/stringoutRecord.dbd.pod +++ b/src/std/rec/stringoutRecord.dbd.pod @@ -334,7 +334,47 @@ primarily interested in the following fields: =fields PACT, DPVT, NSEV, NSTA, VAL, OUT -=head3 Device Support Routines (devSoSoft.c) +=head3 Device Support Routines + +Device support consists of the following routines: + +=head4 report + + long report(int level) + +This optional routine is called by the IOC command C and is passed the +report level that was requested by the user. +It should print a report on the state of the device support to stdout. +The C parameter may be used to output increasingly more detailed +information at higher levels, or to select different types of information with +different levels. +Level zero should print no more than a small summary. + +=head4 init + + long init(int after) + +This optional routine is called twice at IOC initialization time. +The first call happens before any of the C calls are made, with +the integer parameter C set to 0. +The second call happens after all of the C calls have been made, +with C set to 1. + +=head4 init_record + + long init_record(dbCommon *prec) + +This routine is optional. If provided, it is called by the record support +C routine. + +=head4 get_ioint_info + + long get_ioint_info(int cmd, dbCommon *precord, IOSCANPVT *ppvt) + +This routine is called by the ioEventScan system each time the record is added +or deleted from an I/O event scan list. C has the value (0,1) if the +record is being (added to, deleted from) an I/O event list. It must be +provided for any device type that can use the ioEvent scanner. =head4 write_stringout @@ -354,15 +394,9 @@ This routine must output a new value. It returns the following values: The C<<< Soft Channel >>> device support module writes the current value of VAL. -If the OUT link type is PV_LINK, then dbCaAddInlink is called by -C. - -write_so calls recGblPutLinkValue to write the current value of VAL. See -L. - -Device support for DTYP C is provided for writing values to the stdout, stderr, or errlog streams. -C addressing C<@stdout>, C<@stderr> or C<@errlog> is used on the OUT link field to select the desired -stream. +Device support for DTYP C is provided for writing values to the stdout, +stderr, or errlog streams. C addressing C<@stdout>, C<@stderr> or +C<@errlog> is used on the OUT link field to select the desired stream. =cut diff --git a/src/std/rec/waveformRecord.dbd.pod b/src/std/rec/waveformRecord.dbd.pod index dfc944647..fa41b89bd 100644 --- a/src/std/rec/waveformRecord.dbd.pod +++ b/src/std/rec/waveformRecord.dbd.pod @@ -303,7 +303,9 @@ interested in the following fields: Device support consists of the following routines: -=head4 long report(int level) +=head4 report + + long report(int level) This optional routine is called by the IOC command C and is passed the report level that was requested by the user. @@ -313,7 +315,9 @@ information at higher levels, or to select different types of information with different levels. Level zero should print no more than a small summary. -=head4 long init(int after) +=head4 init + + long init(int after) This optional routine is called twice at IOC initialization time. The first call happens before any of the C calls are made, with @@ -323,14 +327,14 @@ with C set to 1. =head4 init_record - init_record(precord) + long init_record(dbCommon *precord) This routine is optional. If provided, it is called by the record support C routine. =head4 get_ioint_info - get_ioint_info(int cmd,struct dbCommon *precord,IOSCANPVT *ppvt) + long get_ioint_info(int cmd, dbCommon *precord, IOSCANPVT *ppvt) This routine is called by the ioEventScan system each time the record is added or deleted from an I/O event scan list. cmd has the value (0,1) if the @@ -339,7 +343,7 @@ provided for any device type that can use the ioEvent scanner. =head4 read_wf - read_wf(precord) + long read_wf(waveformRecord *prec) This routine must provide a new input value. It returns the following values: @@ -361,38 +365,11 @@ The C<<< Soft Channel >>> device support module is provided to read values from other records and store them in arrays. If INP is a constant link, then read_wf does nothing. In this case, the record can be used to hold arrays written via dbPuts. If INP is a database or channel access link, the new array value is read -from the link. NORD is set. +from the link. NORD is set to the number of items in the array. This module places a value directly in VAL. -If the INP link type is constant, then NORD is set to zero. If the INP link type -is PV_LINK, then dbCaAddInlink is called by C. - -read_wf calls recGblGetLinkValue which performs the following steps: - -=over - -=item * - -If the INP link type is CONSTANT recGblGetLinkValue does nothing. - -=item * - -If the INP link type is DB_LINK, then dbGetLink is called to obtain a new input -value. If dbGetLink returns an error, a LINK_ALARM with a severity of -INVALID_ALARM is raised. - -=item * - -If the INP link type is CA_LINK, then dbCaGetLink is called to obtain a new -input value. If dbCaGetLink returns an error, a LINK_ALARM with a severity of -INVALID_ALARM is raised. - -=item * - -NORD is set to the number of values returned and read_wf returns. - -=back +If the INP link type is constant, then NORD is set to zero. =cut