RRM 3-14 Fanout

From EPICSWIKI
Revision as of 19:33, 22 March 2016 by AndrewJohnson (talk | contribs) (Link fields are modifyable)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

EPICS Record Reference Manual


Fanout

The fanout record uses several forward processing links to force multiple passive records to scan. When more than one record needs to be scanned as the result of a record being processed, the forward link of that record can specify a fanout record. The fanout record can specify up to six other records to process. When more than six are needed, one of the links in the fanout record can point to another fanout record.

NOTE: Fanout records only propagate processing, not data. The dfanout or data fanout record can, on the other hand, send data to up to eight other records.

Parameter Fields

The fanout record's fields fall into the following categories:

  • scan parameters
  • operator display parameters
  • run-time parameters.


Scan Parameters

The forward link fields of the fanout record (LINK1-LINK6) specify records to be scanned. The records to be processed must specify Passive in their SCAN fields; otherwise the forward link to it will not cause it to process. Also when specifying database links for the fanout record, the user needs only to specify the record name. As no value is being sent or retrieved, the field name is optional.

The SELM, SELN, and SELL fields specify the order of processing for the forward links. The select mechanism field (SELM) has three choices--All, Specified, or Mask. How these affect which links to process and in which order is as follows:

All
Links are processed in numerical order--LNK1, LNK2, etc.
Specified
SELN is used as the specifier of which link to process. For instance, if SELN=1, then LNK1 will be processed.
Mask
The individual bits in SELN are used to select which links to process as follows:
  • If bit 0 of SELN is set, LNK1 is processed.
  • If bit 1 of SELN is set, LNK2 is processed.
  • If bit 2 of SELN is set, LNK3 is processed, etc.

SELN reads its value from SELL. SELL can be a constant, a database link, or a channel access link. If a constant, SELN is initialized with the constant value and can be changed via dbPuts. For database/channel access links, SELN is retrieved from SELL each time the record is processed and can also be changed via dbPuts.

The Fanout record also has the standard scanning fields common to all records. These fields are listed in Scan Fields. In addition, Scanning Specification explains in more detail how forward links and the scanning algorithms work.


FieldSummaryTypeDCTInitialAccessModifyRec Proc MonitorPP
LNK1 Forward LinksFWDLINKYes0YesYesNoNo
LNK2 Forward LinksFWDLINKYes0YesYesNoNo
LNK3 Forward LinksFWDLINKYes0YesYesNoNo
LNK4 Forward LinksFWDLINKYes0YesYesNoNo
LNK5 Forward LinksFWDLINKYes0YesYesNoNo
LNK6 Forward LinksFWDLINKYes0YesYesNoNo
SELMSelect Mechanism:RECCHOICEYes0YesYesNoNo
SELNLink Selection AlgorithmUSHORTNo1YesYesNoNo
SELLLink Selection LocationINLINKYes0YesYesNoNo


Operator Display Parameters

These parameters are used to present meaningful data to the operator. See Fields Common to All Record Types for more on these fields.


FieldSummaryTypeDCTInitialAccessModifyRec Proc MonitorPP
NAMERecord NameSTRING [29]Yes0YesNoNo 
DESCDescriptionSTRING [29]YesNullYesYesNoNo


Alarm Parameters

The Fanout record has the alarm parameters common to all record types. Alarm Fields lists other fields related to a alarms that are common to all record types.


Run-time Parameters

The VAL field is used only so that dbNameAddr succeeds when no field name is specified. Otherwise, it has no significance.


FieldSummaryTypeDCTInitialAccessModifyRec Proc MonitorPP
VALValue FieldLONGNo0YesYesNoYes


Record Support

Record Support Routines

init_record

This routine initializes SELN with the value of SELL, if SELL type is CONSTANT link, or creates a channel access link if SELL type is PV_LINK.

process

See next section.


Record Processing

Routine process implements the following algorithm:


  1. PACT is set to TRUE.
  2. The link selection SELN is fetched.
  3. Depending on the selection mechanism, the link selection forward links are processed. and UDF is set to FALSE.
  4. Check to see if monitors should be invoked:
    • Alarm monitors are invoked if the alarm status or severity has changed.
    • NSEV and NSTA are reset to 0.
  5. Scan forward link if necessary, set PACT FALSE, and return.




EPICS Record Reference Manual - 19 MAY 1998