Files
pvxs/documentation/nt.rst
T
2023-11-21 12:20:34 -08:00

2.7 KiB

Common Type Definitions

Library of common type definitions. :

#include <pvxs/nt.h>
namespace pvxs { namespace nt { ... } }

ntscalar

Note

The nt::* factories are relatively expensive. Call them once, then use pvxs::Value::cloneEmpty on the result.

Forward Compatibility

The Value objects returned by the NT* type builders are considered part of the API for the purposes of the relpolicy. Addition of a field is considered a compatible change. An incompatible change being:

  • Removal of a structure field
  • A field type change which restricts allowed assignments. eg. changing int32_t -> string would be compatible, but string -> int32_t would not.

The status of change to a struct ID string are currently undefined with respect to compatibility as the consequences have not yet been explored in practice.

time_t

Commonly used sub-structure to represent a time

pvxs::nt::TimeStamp

"secondsPastEpoch"

Seconds since POSIX epoch of 1 Jan 1970 UTC. Note that the EPICS epoch is 631152000 seconds after the POSIX epoch. (cf. POSIX_TIME_AT_EPICS_EPOCH in epicsTime.h from EPICS Base)

"nanoseconds"

Number of nanoseconds since the start of the second.

"timeStamp.userTag"

Extra site-specific information which may provide context for the seconds/nanoseconds value.

alarm_t

pvxs::nt::Alarm

"severity"

Enumeration of 0 - No Alarm, 1 - Minor, 2 - Major, 3 - Invalid.

The meaning of Minor and Major are contextual and may be different for each PV. An Invalid alarm severity means that the value field should not be taken as a meaningful representation of eg. the quantity being measured. Typically, it reflects the most recent valid value.

A UI client may change the state of a widget displaying a value which is alarming by eg. changing border color.

"status"

Enumeration providing context to "severity" 0 - No Alarm, 1 - Device, 2 - Driver, 3 - Record, 4 - Database, 5 - Configuration, 6 - Undefined, 7 - Client

"message"

Arbitrary string describing the condition being alarmed.

NTEnum

Container for a scalar value selection from a list of strings.

pvxs::nt::NTEnum

NTNDArray

Container for image data used by areaDetector.

pvxs::nt::NTNDArray

NTTable

Container for tabular data.

pvxs::nt::NTTable

NTURI

pvxs::nt::NTURI