V4 DBD Examples
From EPICSWIKI
Revision as of 19:54, 2 November 2005 by MartyKraimer (talk | contribs)
Example Record Types November 02 2005
Overview
This document present proposed V4 replacements for a few of the V3 record types.
aoRecord
aoRecord.dbd might be defined as follows:
include "menuStructBase.dbd" record(AoRecord) { field(common,struct(RecordCommon)) field(desiredValue, float64) { asl(0) } field(currentValue, float64) { readonly(yes) } field(out,link) field(outputRateOfChange, float64) field(desiredOutputLink,link) field(closedLoop, bool) field(outputIncremental, bool) field(convert, menu(menuConvert)) { special(yes) } field(linearConvert, struct(LinearConvert)) { special(yes) } field(convertTable,string); field(units, string) field(displayLimit, struct(DisplayLimit)) field(controlLimit, struct(ControlLimit)) field(alarmLimit, struct(AlarmLimit)) field(rawValue, int32) { design(no) } field(readBackValue, int32) { design(no) readonly(yes) } field(simulation,struct(SimulationFloat64)) field(invalidAction, menu(menuIvoa)) field(invalidValue, float64) view(value) { property(value, value) { property(units, units) property(timeStamp, time) property(alarmSeverity, alarmSeverity) property(alarmStatus, alarmStatus) property(displayLimit, displayLimit) property(controlLimit, controlLimit) property(alarmLimit, alarmLimit) } } view(output) { property(value, outValue) { property(units, units) property(timeStamp, time) property(alarmSeverity, alarmSeverity) property(alarmStatus, alarmStatus) property(displayLimit, displayLimit) } } view(raw) { property(value, rawValue) { property(timeStamp, time) } } view(readback) { property(value, readBackValue) { property(timeStamp, time) } } }
calcRecord
calcRecord.dbd defines the following:
include "menuStructBase.dbd" struct(CalcInpLink) { field(block,boolean) field(link,link) field(value,float64) }
record(CalcRecord){ field(common,struct(RecordCommon)) field(value,float64) { asl(0) } field(calc,string) { special(yes) } field(input,array(struct(CalcInpLink)[])) field(units,string) field(displayLimit,struct(DisplayLimit)) field(alarmLimit,struct(AlarmLimit)) view(result) { property(value, result) { property(units, units) property(timeStamp, time) property(alarmSeverity, alarmSeverity) property(alarmStatus, alarmStatus) property(displayLimit, displayLimit) property(alarmLimit, alarmLimit) } } view(expression) { property(value, calc) } }
mbbiRecord
mbbiRecord.dbd could be:
include "menuStructBase.dbd" struct(MbbiState) { field(name, string) field(value, array(octet[])) field(severity, menu(menuAlarmSevr)) } record(MbbiRecord) { field(common,struct(RecordCommon)) field(state, array(struct(MbbiState)[])) { special(yes) }
- NOTE: stateName needed because enum must refer to array of string
field(stateName,array(string[])) { design(no) readonly(yes) } field(value, enum(stateName)) { asl(0) } field(unknownStateSeverity, menu(menuAlarmSevr)) field(changeStateSeverity, menu(menuAlarmSevr)) field(inp, link) field(rawValue, array(octet[])) { design(no) readonly(yes) } field(hardwareShift, int16) { readonly(yes) } field(hardwareMask, array(octet[]) { readonly(yes) } view(choice) { property(value, value) { property(timeStamp, time) property(alarmSeverity, alarmSeverity) property(alarmStatus, alarmStatus) } } view(raw) { property(value, raw) { property(timeStamp, time) } } }
waveformRecord
waveformRecord.dbd defines the following:
include "menuStructBase.dbd" record(WaveformRecord) { field(common,struct(RecordCommon)) field(value, array([])) { asl(0) special(yes) } field(reArm,bool) field(io,link) field(units,string) field(displayLimit,struct(DisplayLimit)) field(busy,bool) { design(no) readonly(yes) } view(value) { property(value, value) { property(units, units) property(timeStamp, time) property(alarmSeverity, alarmSeverity) property(alarmStatus, alarmStatus) property(displayLimit, displayLimit) } } }