Table of Contents Previous Chapter Chapter 23: mbboDirect - MultiBit Binary Output Direct

Chapter 23: mbboDirect - MultiBit Binary Output Direct

Continuous Electron Beam Accelerator Facility
Southeastern Universities Research Association

1. Introduction

The mbboDirect record performs the opposite function to that of the mbbiDirect record. It accumulates bits (in the fields B0 - BF) as unsigned characters, and converts them to a word which is then written out to hardware. If a bit field is non-zero, it is interpreted as a binary one. On the other hand, if it is zero, it is interpreted as a binary zero.

2. Field Summary

--------------------------------------------------------------
Field  Type       DCT  Initial  Access  Modify  Rec Proc   PP   
                                                Monitor         
--------------------------------------------------------------
VAL    USHORT     No   0        Yes     No      Yes        Yes  
DOL    INLINK     Yes  0        No      No      N/A        No   
OMSL   GBLCHOICE  Yes  0        Yes     Yes     No         Yes  
NOBT   SHORT      Yes  0        Yes     No                 No   
OUT    OUTLINK    Yes  0        No      No      N/A        No   
B0     UCHAR      No   0        Yes     Yes     No         Yes  
B1     UCHAR      No   0        Yes     Yes     No         Yes  
B2     UCHAR      No   0        Yes     Yes     No         Yes  
B3     UCHAR      No   0        Yes     Yes     No         Yes  
B4     UCHAR      No   0        Yes     Yes     No         Yes  
B5     UCHAR      No   0        Yes     Yes     No         Yes  
B6     UCHAR      No   0        Yes     Yes     No         Yes  
B7     UCHAR      No   0        Yes     Yes     No         Yes  
B8     UCHAR      No   0        Yes     Yes     No         Yes  
B9     UCHAR      No   0        Yes     Yes     No         Yes  
BA     UCHAR      No   0        Yes     Yes     No         Yes  
BB     UCHAR      No   0        Yes     Yes     No         Yes  
BC     UCHAR      No   0        Yes     Yes     No         Yes  
BD     UCHAR      No   0        Yes     Yes     No         Yes  
BE     UCHAR      No   0        Yes     Yes     No         Yes  
BF     UCHAR      No   0        Yes     Yes     No         Yes  
RVAL   ULONG      No   0        Yes     No      Yes        Yes  
ORAW   ULONG      No   0        Yes     No      No         No   
RBV    ULONG      No   0        Yes     No      Yes        No   
ORBV   ULONG      No   0        Yes     No      No         No   
MASK   ULONG      No   0        Yes     No      No         No   
MLST   ULONG      No   0        Yes     No      No         No   
LALM   ULONG      No   0        Yes     No      No         No   
SHFT   ULONG      No   0        Yes     No      No         No   
SIOL   OUTLINK    Yes  0        No      No      N/A        No   
SIML   INLINK     Yes  0        No      No      N/A        No   
SIMM   GBLCHOICE  No   0        Yes     Yes     No         No   
SIMS   GBLCHOICE  Yes  0        Yes     Yes     No         No   
IVOA   GBLCHOICE  Yes  0        Yes     Yes     No         No   
IVOV   USHORT     Yes  0        Yes     Yes     No         No   
--------------------------------------------------------------

3. Field Descriptions

-----------------------------------------------------------------------------------------------
Name        Summary              Description                                                     
-----------------------------------------------------------------------------------------------
VAL         Value Field          This is the value to be sent to OUT.                            
DOL         Desired Output       If DOL is a database or channel access link and OMSL is         
            Location (Input      CLOSED_LOOP, then VAL is read from DOL.                         
            Link)                                                                                
OMSL        Output Mode Select   This field has either the value SUPERVISORY or                  
                                 CLOSED_LOOP.  DOL is used to determine VAL only if              
                                 OMSL has the value CLOSED_LOOP.  By setting this field,         
                                 the record can be switched between supervisory and              
                                 closed loop mode of operation. While in closed loop             
                                 mode, the VAL field cannot be set via dbPuts.                   
NOBT        Number of Bits       Number of bits in hardware mask.                                
OUT         Output Link          This field is used by the device support routines to decide     
                                 where to send output. For soft records, it can be a             
                                 constant, a database link, or a channel access link.  If the    
                                 link is a constant, the result is no output.                    
B0,...,BF   Bit 0 Value, Bit 1   Each represents a bit of the word to be output.                 
            Value, ...                                                                           
RVAL        Raw Data Value       RVAL is the value to be written to the hardware device. It      
                                 is determined by the record support module using VAL as         
                                 the bit values stored in B0,...BF. The value is also shifted    
                                 left SHFT bits.                                                 
ORAW        Old Raw Data         ORAW is used to decide if monitors should be triggered for      
            Value                RVAL at the same time monitors are generated for changes        
                                 in VAL.                                                         
RBV         Read Back Value      This is the actual read back value obtained from the            
                                 hardware itself or from the associated device driver.  It is    
                                 the responsibility of the device support routine to give this   
                                 field a value                                                   
ORBV        Old Read Back        ORBV is used to decide if monitors should be triggered for      
            Value                RBV at the same time monitors are triggered for changes         
                                 in VAL.                                                         
MASK        Mask                 Mask used by device support routine to read hardware            
                                 register. Record support sets low order NOBT bits. Device       
                                 support can shift this value.                                   
MLST        Monitor Last         Value when last monitor for value changes was triggered.        
LALM        Last Alarmed         Value when last change of state alarm was issued.               
SHFT        Shift                Number of bits to shift values obtained from VAL.               
SIMM        Simulation Mode      Simulation mode process variables.  Refer to Chapter 3,         
                                 Section "Simulation Mode" on page 13 for more                   
                                 information.                                                    
SIML        Simulation Mode                                                                      
            Location                                                                             
SIOL        Simulation Value                                                                     
            Location                                                                             
SIMS        Simulation Mode                                                                      
            Alarm Severity                                                                       
IVOA        Invalid Alarm        Whenever the record is put into INVALID alarm severity          
            Output Action        IVOA specifies an action.  See Chapter 3, Section "Invalid      
                                 Alarm Output Action" on page 14 for more information            
IVOV        Invalid Alarm                                                                        
            Output Value                                                                         
-----------------------------------------------------------------------------------------------

4. Record Support Routines

init_record

This routine initializes SIMM if SIML is a constant or creates a channel access link if SIML is PV_LINK. If SIOL is PV_LINK a channel access link is created.

This routine next checks to see that device support is available.The routine next checks to see if the device support write routine is defined. If either device support or the device support write routine does not exist, an error message is issued and processing is terminated.

If DOL is a constant, then VAL is initialized to its value and UDF is set to FALSE.

MASK is cleared and then the NOBT low order bits are set.

If device support includes init_record, it is called.

init_common is then called to determine if any states are defined. If states are defined, SDEF is set to TRUE.

If device support returns success, VAL is then set from RVAL and UDF is set to FALSE.

process

See next section.

get_value

Fills in the values of struct valueDes so that they refer to VAL.

5. Record Processing

Routine process implements the following algorithm:

  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.
  2. If PACT is FALSE
  3. Convert
  4. If PACT has been changed to TRUE, the device support write output routine has started but has not completed writing the new value. In this case, the processing routine merely returns, leaving PACT TRUE.
  5. Check to see if monitors should be invoked.
  6. Scan forward link if necessary, set PACT FALSE, and return.

6. Device Support

Fields Of Interest To Device Support

Each mbboDirect record must have an associated set of device support routines. The primary responsibility of the device support routines is to obtain a new raw mbbo value whenever write_mbboDirect is called. The device support routines are primarily interested in the following fields:

--------------------------------------------------------------------------------------
Name  Summary             Description                                                   
--------------------------------------------------------------------------------------
PACT  Processing Active   See Chapter 2, Section "Database Common: Field                
                          Descriptions" on page 4 for descriptions.                     
DPVT  Device Private                                                                    
UDF   VAL Undefined                                                                     
NSEV  New Alarm Severity                                                                
NSTA  New Alarm Status                                                                  
NOBT  Number of Bits      Number of hardware bits accessed. They must be                
                          consecutive.                                                  
OUT   Output Link         This field is used by the device support routines to locate   
                          its output.                                                   
RVAL  Raw data value      This is the value to be written to OUT.                       
RBV   Read Back Value      It is the responsibility of the device support modules to    
                          set this field.                                               
MASK  Mask                This is a mask used to read the hardware. Record support      
                          sets the low order NOBT bits. The device support routine      
                          can shift the bits. The device support routine should         
                          perform the shift in in init_record.                          
SHFT  Shift               This can be set by the device support module at               
                          init_record time.                                             
--------------------------------------------------------------------------------------

Device Support Routines

Device support consists of the following routines:

report

  report(FILE fp, paddr)
Not currently used.

init

  init()
This routine is called once during IOC initialization.

init_record

  init_record(precord)
This routine is optional. If provided, it is called by the record support init_record routine. If MASK is used, it should be shifted if necessary and SHFT given a value.

get_ioint_info

  get_ioint_info(int cmd,struct 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.

write_mbboDirect

  write_mbboDirect(precord)
This routine must output a new value. It returns the following values:

7. Device Support For Soft Records

This module writes the current value of VAL.

If the OUT link type is PV_LINK, then dbCaAddInlink is called by init_record.

write_mbboDirect calls recGblPutLinkValue to write the current value of VAL. See Chapter 3, Section "Soft Output" on page 13 for details.

 
Table of Contents Next Chapter