Table of Contents Previous Chapter Chapter 31: seq - Sequence

Chapter 31: seq - Sequence

1. Introduction

The seq record is used to trigger the processing of up to ten other records. It has no associated device support. It is similar to the fanout record except it will fetch an input value and write an output value instead of simply processing a collection of forward links.

2. Field Summary

--------------------------------------------------------------
Field  Type       DCT  Initial  Access  Modify  Rec Proc   PP   
                                                Monitor         
--------------------------------------------------------------
VAL    LONG       No   0        Yes     Yes     No         Yes  
SELM   RECCHOICE  Yes  0        Yes     Yes     No         No   
SELN   USHORT     No   1        Yes     Yes     No         No   
SELL   INLINK     Yes  0        No      No      N/A        No   
PREC   SHORT      Yes  0        Yes     Yes     No         No   
DLY1   DOUBLE     Yes  0        Yes     Yes     No         No   
DOL1   INLINK     Yes  0        No      No      N/A        No   
DO1    DOUBLE     No   0        Yes     Yes     No         No   
LNK1   OUTLINK    Yes  0        No      No      N/A        No   
DLY2   DOUBLE     Yes  0        Yes     Yes     No         No   
DOL2   INLINK     Yes  0        No      No      N/A        No   
DO2    DOUBLE     No   0        Yes     Yes     No         No   
LNK2   OUTLINK    Yes  0        No      No      N/A        No   
DLY3   DOUBLE     Yes  0        Yes     Yes     No         No   
DOL3   INLINK     Yes  0        No      No      N/A        No   
DO3    DOUBLE     No   0        Yes     Yes     No         No   
LNK3   OUTLINK    Yes  0        No      No      N/A        No   
DLY4   DOUBLE     Yes  0        Yes     Yes     No         No   
DOL4   INLINK     Yes  0        No      No      N/A        No   
DO4    DOUBLE     No   0        Yes     Yes     No         No   
LNK4   OUTLINK    Yes  0        No      No      N/A        No   
DLY5   DOUBLE     Yes  0        Yes     Yes     No         No   
DOL5   INLINK     Yes  0        No      No      N/A        No   
DO5    DOUBLE     No   0        Yes     Yes     No         No   
LNK5   OUTLINK    Yes  0        No      No      N/A        No   
DLY6   DOUBLE     Yes  0        Yes     Yes     No         No   
DOL6   INLINK     Yes  0        No      No      N/A        No   
DO6    DOUBLE     No   0        Yes     Yes     No         No   
LNK6   OUTLINK    Yes  0        No      No      N/A        No   
DLY7   DOUBLE     Yes  0        Yes     Yes     No         No   
DOL7   INLINK     Yes  0        No      No      N/A        No   
DO7    DOUBLE     No   0        Yes     Yes     No         No   
LNK7   OUTLINK    Yes  0        No      No      N/A        No   
DLY8   DOUBLE     Yes  0        Yes     Yes     No         No   
DOL8   INLINK     Yes  0        No      No      N/A        No   
DO8    DOUBLE     No   0        Yes     Yes     No         No   
LNK8   OUTLINK    Yes  0        No      No      N/A        No   
DLY9   DOUBLE     Yes  0        Yes     Yes     No         No   
DOL9   INLINK     Yes  0        No      No      N/A        No   
DO9    DOUBLE     No   0        Yes     Yes     No         No   
LNK9   OUTLINK    Yes  0        No      No      N/A        No   
DLYA   DOUBLE     Yes  0        Yes     Yes     No         No   
DOLA   INLINK     Yes  0        No      No      N/A        No   
DOA    DOUBLE     No   0        Yes     Yes     No         No   
LNKA   OUTLINK    Yes  0        No      No      N/A        No   
--------------------------------------------------------------

3. Field Descriptions

-----------------------------------------------------------------------------------------------
Name       Summary               Description                                                     
-----------------------------------------------------------------------------------------------
VAL        Value Field           Not used.                                                       
SELM       Select Mechanism:     SELECT_ALL:  Select all links                                   
                                 SELECTED:  Use SELN as index (1 to 6)                           
                                 MASK:  Use SELN as a mask to select an arbitrary                
                                 combination of links.                                           
                                                                                                 
                                                                                                 
SELN       Link Selection        If SELM=SELECT_ALL then this field is not used.                 
                                 If SELM=SELECTED then this is the index (1 to 6) of the         
                                 link to select.                                                 
                                 If SELM=MASK then this is the mask (in decimal) used to         
                                 determine the selected links.  For example, if SELN=1,          
                                 then LNK1 will be processed.  If SELN=3 then LNK1 and           
                                 LNK2 will be processed.  If SELN=63 then links LNK1,            
                                 LNK2, ... LNK6 will be processed.                               
SELL       Link Selection        SELN is read from SELL.  SELL can be a constant, a              
           Location              database link, or a channel access link.                        
PREC       Display Precision     Precision with which to display DLY1-DLYA and DO1-              
                                 DOA fields.  This field is used by record support to supply     
                                 a value when get_precision is called.                           
DLY1-DLYA  Delay time            This represents the delay time (in seconds) to wait before      
                                 processing the input and output link pair (ie. DOLn and         
                                 LNKn.)                                                          
DOL1-DOLA  Input link selection  DO is read from DOL.  DOL can be a constant, database           
                                 link or channel access link.  If it is a constant, it is only   
                                 copied to the DO field once at initialization time.             
                                 Otherwise, it is re-fetched each time the record is             
                                 processed.                                                      
DO1-DOA    Desired output        This field holds the desired output value that will be          
           value                 placed in the output location indicated by the LNK field.       
LNK1-LNKA  Output link field     DO is written to LNK.  LNK can be a database link or a          
                                 channel access link.                                            
-----------------------------------------------------------------------------------------------

4. Record Support Routines

The only record support routine is process.

First, PACT is set to TRUE, and the link selection is fetched. Depending on the selection mechanism, the link selection output links are processed in order from LNK1 to LNKA. When LNKn is processed, the corresponding DLYn value is used to generate a delay via watchdog timer.

After DLYn seconds have expired, the input value is fetched from DOn (if DOLn is constant) or DOLn (if DOLn is a database link or channel access link) and written to LNKn.

When all links are completed, an asynchronous completion call back to dbProcess is made (see the Application Developer's Guide for more information on asynchronous processing.)

Then UDF is set to FALSE.

Monitors are checked.

The forward link is scanned, PACT is set FALSE, and the process routine returns.

For the delay mechanism to operate properly, the record is processed asynchronously. The only time the record will not be processed asynchronously is when there are no non-NULL output links selected (ie. when it has nothing to do.) The processing of the links is done via callback tasks at the priority set in the PRIO field in dbCommon (see the Application Developer's Guide for more information on callback tasks.)

 
Table of Contents Next Chapter