Fanout Record (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 sixteen other records to process. If more than sixteen are needed, one of the forward links in the fanout record (or its FLNK field) 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 other records.

Parameter Fields

The record-specific fields are described below, grouped by functionality.

Scan Parameters

The forward link fields of the fanout record (LNK0-LNK9, LNKA-LNKF) specify records to be scanned. The records to be processed must specify Passive in their SCAN fields; otherwise the forward link will not cause them 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, a field name is only required when the link will be over Channel Access, in which case the field PROC must be named.

The SELM, SELN, and SELL fields specify the order of processing for the forward links. The select mechanism menu field (SELM) has three choices:

IndexIdentifierChoice String
0 fanoutSELM_All All
1 fanoutSELM_Specified Specified
2 fanoutSELM_Mask Mask

How the SELM value affects which links to process and in which order is as follows:

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.

FieldSummaryTypeDCT DefaultReadWriteCA PP
SELMSelect MechanismMENU (fanoutSELM)Yes YesYesNo
SELNLink SelectionUSHORTNo1YesYesNo
SELLLink Selection LocINLINKYes YesYesNo
OFFSOffset for SpecifiedSHORTYes YesYesNo
SHFTShift for Mask modeSHORTYes-1YesYesNo
LNK0Forward Link 0FWDLINKYes YesYesNo
LNK1Forward Link 1FWDLINKYes YesYesNo
LNK2Forward Link 2FWDLINKYes YesYesNo
LNK3Forward Link 3FWDLINKYes YesYesNo
LNK4Forward Link 4FWDLINKYes YesYesNo
LNK5Forward Link 5FWDLINKYes YesYesNo
LNK6Forward Link 6FWDLINKYes YesYesNo
LNK7Forward Link 7FWDLINKYes YesYesNo
LNK8Forward Link 8FWDLINKYes YesYesNo
LNK9Forward Link 9FWDLINKYes YesYesNo
LNKAForward Link 10FWDLINKYes YesYesNo
LNKBForward Link 11FWDLINKYes YesYesNo
LNKCForward Link 12FWDLINKYes YesYesNo
LNKDForward Link 13FWDLINKYes YesYesNo
LNKEForward Link 14FWDLINKYes YesYesNo
LNKFForward Link 15FWDLINKYes YesYesNo

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.

FieldSummaryTypeDCT DefaultReadWriteCA PP
NAMERecord NameSTRING [61]No YesNoNo
DESCDescriptorSTRING [41]Yes YesYesNo

Alarm Parameters

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

Run-time Parameters

The VAL field performs no specific function, but a Channel Access put to it will cause the record to process.

FieldSummaryTypeDCT DefaultReadWriteCA PP
VALUsed to triggerLONGNo YesYesYes

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 field FLNK if used, set PACT FALSE, and return.