StreamDevice: mbbo Records

Normal Operation

Depending on the format type, different record fields are used for output and input. The variable x stands for the written or read value.

DOUBLE format (e.g. %f):
Not allowed.
LONG format (e.g. %i):
If any of ZRVL ... FFVL is set (is not 0):
Output: x=RVAL&MASK
Note that the record calculates RVAL by choosing one of ZRVL ... FFVL depending on VAL and by shifting it left by SHFT bits.
Input: RBV=x&MASK
MASK is initialized to NOBT 1-bits shifted left by SHFT. If MASK==0 (because NOBT was not set) it is ignored, i.e. x=RVAL and RBV=x.
If none of ZRVL ... FFVL is set (all are 0):
Output: x=VAL
Input: VAL=x
ENUM format (e.g. %{):
Output: x=VAL
Input: VAL=x
STRING format (e.g. %s):
Output: Depending on VAL, one of ZRST ... FFST is written. VAL must be in the range 0 ... 15.
Input: If input is equal one of ZRST ... FFST, VAL is set accordingly. Other input strings are not accepted.

Initialization

During initialization, the @init handler is executed, if present. In contrast to normal operation, LONG input is put to RVAL as well as to RBV and converted by the record.


aai aao ai ao bi bo mbbi mbbiDirect mbboDirect longin longout stringin stringout waveform calcout scalcout

Dirk Zimoch, 2005