Difference between revisions of "V4 DBD Examples"
From EPICSWIKI
MartyKraimer (talk | contribs) |
MartyKraimer (talk | contribs) |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Example Record Types | Example Record Types November 02 2005 | ||
= Overview = | = Overview = | ||
This document present proposed V4 replacements for a few of the | This document present proposed V4 replacements for a few of the | ||
| Line 10: | Line 10: | ||
aoRecord.dbd might be defined as follows: | aoRecord.dbd might be defined as follows: | ||
include " | include "menuStructBase.dbd" | ||
record( | record(AoRecord) { | ||
field( | field(common,struct(RecordCommon)) | ||
field(desiredValue, float64) { | |||
asl(0) | asl(0) | ||
} | } | ||
field( | field(currentValue, float64) { | ||
readonly(yes) | readonly(yes) | ||
} | } | ||
field(out, | field(out,link) | ||
field(outputRateOfChange, float64) | field(outputRateOfChange, float64) | ||
field(desiredOutputLink, link | field(desiredOutputLink,link) | ||
field(closedLoop, bool) | field(closedLoop, bool) | ||
field(outputIncremental, bool) | field(outputIncremental, bool) | ||
| Line 26: | Line 27: | ||
special(yes) | special(yes) | ||
} | } | ||
field(linearConvert, struct( | field(linearConvert, struct(LinearConvert)) { | ||
special(yes) | special(yes) | ||
} | } | ||
field(convertTable,string); | |||
field(units, string) | field(units, string) | ||
field(displayLimit, struct( | field(displayLimit, struct(DisplayLimit)) | ||
field(controlLimit, struct( | field(controlLimit, struct(ControlLimit)) | ||
field(alarmLimit, struct( | field(alarmLimit, struct(AlarmLimit)) | ||
field(rawValue, int32) { | field(rawValue, int32) { | ||
design(no) | design(no) | ||
} | } | ||
field(readBackValue, int32) { | field(readBackValue, int32) { | ||
| Line 45: | Line 42: | ||
readonly(yes) | readonly(yes) | ||
} | } | ||
field( | field(simulation,struct(SimulationFloat64)) | ||
field(invalidAction, menu(menuIvoa)) | field(invalidAction, menu(menuIvoa)) | ||
field(invalidValue, float64) | field(invalidValue, float64) | ||
view(value) { | view(value) { | ||
property(value, value) { | property(value, value) { | ||
| Line 89: | Line 75: | ||
} | } | ||
} | } | ||
} | } | ||
<center> | <center> | ||
| Line 98: | Line 83: | ||
calcRecord.dbd defines the following: | calcRecord.dbd defines the following: | ||
include " | include "menuStructBase.dbd" | ||
struct( | struct(CalcInpLink) { | ||
field(link,link | field(block,boolean) | ||
field(link,link) | |||
field(value,float64) | field(value,float64) | ||
} | } | ||
record( | |||
field( | record(CalcRecord){ | ||
field(common,struct(RecordCommon)) | |||
field(value,float64) { | |||
asl(0) | asl(0) | ||
} | } | ||
| Line 110: | Line 98: | ||
special(yes) | special(yes) | ||
} | } | ||
field( | field(input,array(struct(CalcInpLink)[])) | ||
field(units,string) | field(units,string) | ||
field(displayLimit,struct( | field(displayLimit,struct(DisplayLimit)) | ||
field(alarmLimit,struct( | field(alarmLimit,struct(AlarmLimit)) | ||
view(result) { | view(result) { | ||
property(value, result) { | property(value, result) { | ||
| Line 142: | Line 124: | ||
mbbiRecord.dbd could be: | mbbiRecord.dbd could be: | ||
include " | include "menuStructBase.dbd" | ||
struct( | struct(MbbiState) { | ||
field(name, string) | field(name, string) | ||
field(value, array(octet[])) | field(value, array(octet[])) | ||
field(severity, menu(menuAlarmSevr)) | field(severity, menu(menuAlarmSevr)) | ||
} | } | ||
record( | record(MbbiRecord) { | ||
field( | field(common,struct(RecordCommon)) | ||
field(state, array(struct(MbbiState)[])) { | |||
special(yes) | special(yes) | ||
} | } | ||
field(value, enum( | #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) | asl(0) | ||
} | } | ||
field(unknownStateSeverity, menu(menuAlarmSevr)) | field(unknownStateSeverity, menu(menuAlarmSevr)) | ||
field(changeStateSeverity, menu(menuAlarmSevr)) | field(changeStateSeverity, menu(menuAlarmSevr)) | ||
field(inp, | field(inp, link) | ||
field(rawValue, array(octet[])) { | field(rawValue, array(octet[])) { | ||
design(no) | design(no) | ||
| Line 168: | Line 155: | ||
readonly(yes) | readonly(yes) | ||
} | } | ||
view(choice) { | view(choice) { | ||
property(value, value) { | property(value, value) { | ||
| Line 193: | Line 175: | ||
waveformRecord.dbd defines the following: | waveformRecord.dbd defines the following: | ||
include " | include "menuStructBase.dbd" | ||
record( | record(WaveformRecord) { | ||
field(common,struct(RecordCommon)) | |||
field(value, array([])) { | field(value, array([])) { | ||
asl(0) | asl(0) | ||
| Line 200: | Line 183: | ||
} | } | ||
field(reArm,bool) | field(reArm,bool) | ||
field( | field(io,link) | ||
field(units,string) | field(units,string) | ||
field(displayLimit,struct( | field(displayLimit,struct(DisplayLimit)) | ||
field(busy,bool) { | field(busy,bool) { | ||
design(no) | design(no) | ||
readonly(yes) | readonly(yes) | ||
} | } | ||
view(value) { | view(value) { | ||
property(value, value) { | property(value, value) { | ||
Latest revision as of 19:54, 2 November 2005
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)
}
}
}