Long String Output Record (lso)

The long string output record is used to write an arbitrary ASCII string with a maximum length of 65535 characters.

Parameter Fields

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

Scan Parameters

The long string output record has the standard fields for specifying under what circumstances it will be processed. These fields are listed in Scan Fields.

Desired Output Parameters

The long string output record must specify from where it gets its desired output string. The first field that determines where the desired output originates is the output mode select (OMSL) field, which can have two possible values: closed_loop or supervisory. If closed_loop is specified, the VAL field’s value is fetched from the address specified in the Desired Output Link field (DOL) which can be either a database link or a channel access link. If supervisory is specified, DOL is ignored, the current value of VAL is written, and VAL can be changed externally via dbPuts at run-time.

The maximum number of characters in VAL is given by SIZV, and cannot be larger than 65535.

DOL can also be a constant instead of a link, in which case VAL is initialized to the constant value. Most simple string constants are likely to be interpreted as a CA link name though. To initialize a string output record it is simplest to set the VAL field directly; alternatively use a JSON constant link type in the DOL field.

Field

Summary

Type

DCT

Default

Read

Write

CA PP

VAL

Current Value

STRING or CHAR[SIZV]

No

Yes

Yes

Yes

SIZV

Size of buffers

USHORT

Yes

41

Yes

No

No

DOL

Desired Output Link

INLINK

Yes

Yes

Yes

No

OMSL

Output Mode Select

MENU menuOmsl

Yes

Yes

Yes

No

Output Specification

The output link specified in the OUT field specifies where the long string output record is to write its string. The link can be a database or channel access link. If the OUT field is a constant, no output will be written.

In addition, the appropriate device support module must be entered into the DTYP field.

Field

Summary

Type

DCT

Default

Read

Write

CA PP

OUT

Output Specification

OUTLINK

Yes

Yes

Yes

No

DTYP

Device Type

DEVICE

Yes

Yes

Yes

No

Monitor Parameters

These parameters are used to specify when the monitor post should be sent by the monitor() routine. There are two possible choices:

APST is used for archiver monitors and MPST for all other type of monitors.

Field

Summary

Type

DCT

Default

Read

Write

CA PP

MPST

Post Value Monitors

MENU menuPost

Yes

Yes

Yes

No

APST

Post Archive Monitors

MENU menuPost

Yes

Yes

Yes

No

Operator Display Parameters

See Fields Common to All Record Types for more on the record name (NAME) and description (DESC) fields.

Field

Summary

Type

DCT

Default

Read

Write

CA PP

NAME

Record Name

STRING [61]

No

Yes

No

No

DESC

Descriptor

STRING [41]

Yes

Yes

Yes

No

Alarm Parameters

The long string input record has the same alarm parameters common to all record types. Alarm Fields lists the fields related to alarms that are common to all record types.

The IVOA field specifies an action to take when the INVALID alarm is triggered. When Set output to IVOV, the value contained in the IVOV field is written to the output link during an alarm condition. See Invalid Output Action Fields for more information on the IVOA and IVOV fields.

Field

Summary

Type

DCT

Default

Read

Write

CA PP

IVOA

INVALID Output Action

MENU menuIvoa

Yes

Yes

Yes

No

IVOV

INVALID Output Value

STRING [40]

Yes

Yes

Yes

No

Run-time Parameters

The old value field (OVAL) of the long string input record is used to implement value change monitors for VAL. If VAL is not equal to OVAL, then monitors are triggered. LEN contains the length of the string in VAL, OLEN contains the length of the string in OVAL.

Field

Summary

Type

DCT

Default

Read

Write

CA PP

OVAL

Previous Value

STRING or [SIZV]

No

Yes

No

No

LEN

Length of VAL

ULONG

No

Yes

No

No

OLEN

Length of OVAL

ULONG

No

Yes

No

No

Simulation Mode Parameters

The following fields are used to operate the record in simulation mode.

If SIMM (fetched through SIML) is YES, the record is put in SIMS severity and the value is written through SIOL. SSCN sets a different SCAN mechanism to use in simulation mode. SDLY sets a delay (in sec) that is used for asynchronous simulation processing.

See Output Simulation Fields for more information on simulation mode and its fields.

Field

Summary

Type

DCT

Default

Read

Write

CA PP

SIML

Simulation Mode link

INLINK

Yes

Yes

Yes

No

SIMM

Simulation Mode

MENU menuYesNo

No

Yes

Yes

No

SIOL

Simulation Output Link

OUTLINK

Yes

Yes

Yes

No

SIMS

Simulation Mode Severity

MENU menuAlarmSevr

Yes

Yes

Yes

No

SDLY

Sim. Mode Async Delay

DOUBLE

Yes

-1.0

Yes

Yes

No

SSCN

Sim. Mode Scan

MENU menuScan

Yes

65535

Yes

Yes

No

Device Support Interface

The record defines a device support entry table type lsodset in the generated lsoRecord.h file as follows:

typedef struct lsodset {
    dset common;
    long (*write_string)(struct lsoRecord *prec);
} lsodset;
#define HAS_lsodset

The support module must set common.number to at least 5, and provide a pointer to its write_string() routine; the other function pointers may be NULL if their associated functionality is not required for this support layer. Most device supports also provide a common.init_record() routine to configure the record instance and connect it to the hardware or driver support layer.

Device Support for Soft Records

Device support for DTYP Soft Channel is provided for writing values to other records or other software components.

Device support for DTYP stdio is provided for writing values to the stdout, stderr, or errlog streams. INST_IO addressing @stdout, @stderr or @errlog is used on the OUT link field to select the desired stream.