Difference between revisions of "V4 DBD dbCommon and iocRecord"
From EPICSWIKI
Line 1: | Line 1: | ||
= dbCommon = | = dbCommon = | ||
''dbCommon needs work. It should have more structure.'' | |||
<tt>dbCommon.dbd</tt> defines the following: | <tt>dbCommon.dbd</tt> defines the following: | ||
Line 12: | Line 12: | ||
} | } | ||
''This may change, moving | ''This may change, moving the period to its own field:'' | ||
menu(menuScan) { | menu(menuScan) { | ||
choice(menuScanPassive, "Passive") | choice(menuScanPassive, "Passive") | ||
Line 25: | Line 26: | ||
choice(menuScan_1second, ".1 second") | choice(menuScan_1second, ".1 second") | ||
} | } | ||
''Did we add Offline to this?'' | |||
menu(menuAlarmSevr) { | menu(menuAlarmSevr) { | ||
Line 81: | Line 84: | ||
field(nsec,uint32) | field(nsec,uint32) | ||
} | } | ||
= iocRecord = | = iocRecord = |
Revision as of 16:12, 17 May 2005
dbCommon
dbCommon needs work. It should have more structure.
dbCommon.dbd defines the following:
# menu definitions for dbRecordCommon fields menu(menuPriority) { choice(menuPriorityLow, "Low") choice(menuPriorityMedium, "Medium") choice(menuPriorityHigh, "High") }
This may change, moving the period to its own field:
menu(menuScan) { choice(menuScanPassive, "Passive") choice(menuScanEvent, "Event") choice(menuScanInterrupt, "Interrupt") choice(menuScan10second, "10 second") choice(menuScan5second, "5 second") choice(menuScan2second, "2 second") choice(menuScan1second, "1 second") choice(menuScan_5second, ".5 second") choice(menuScan_2second, ".2 second") choice(menuScan_1second, ".1 second") }
Did we add Offline to this?
menu(menuAlarmSevr) { choice(menuAlarmSevrNone, "None") choice(menuAlarmSevrMinor, "Minor") choice(menuAlarmSevrMajor, "Major") choice(menuAlarmSevrInvalid, "Invalid") }
menu(menuConvert) { choice(menuConvertRaw, "Raw") choice(menuConvertLinear, "Linear") choice(menuConvertTable, "Table") }
The following definitions may be wrong
#definition for constant links struct constantlink { field(value,string) } #definitions for ca, da, pv links #dblink must reference a pv in the same ioc. struct(dblink) { field(pvname,string) { link} field(pp,bool) field(ms,bool) } struct(dbfwdlink) {field(pvname,string){link}} #calink forces a link to be a channel access link struct(calink) { field(pvname,string) { link} field(pp,bool) field(ms,bool) } struct(cafwdlink) {field(pvname,string){link}} #pvlink becomes (dblink,calink) if pvname is (local,remote) struct(pvlink) { field(pvname,string) { link} field(pp,bool) field(ms,bool) } struct(pvfwdlink) {field(pvname,string){link}} link(inout,"constant",constantlink) link(inout,"dblink",dblink) link(inout,"calink",calink) link(inout,"pvlink",pvlink) link(fwd,"dblink",dbfwdlink) link(fwd,"calink",cafwdlink) link(fwd,"pvlink",pvfwdlink)
#definitions for common properties struct(timeStamp) { field(secPastEpoch,uint64) field(nsec,uint32) }
iocRecord
iocRecord.dbd must be part of every record, and defines the following:
This will be restructured.
record(iocRecord) { field(description,string) field(accessSecurityGroup,string) { special(yes) } field(scan,menu(menuScan)) { special(yes) } field(pini,bool) field(phase,int16) field(eventNumber,int16) { special(yes) } field(timeStampEvent,int16) field(timeStampLink,link(in)) field(disableValue,int16) { default("1") } field(disableInput,int16) field(disableLink,link(in)) field(disablePutField,bool) field(process,bool) { special(yes) } field(alarmStatus,string) { readonly(yes) dynamic(yes) default("UDF") } field(alarmSeverity,menu(menuAlarmSevr)) { readonly(yes) dynamic(yes) default("Invalid") } field(newAlarmStatus,string) { design(no) readonly(yes) } field(newAlarmSeverity,menu(menuAlarmSevr)) { design(no) readonly(yes) } field(alarmAckSeverity,menu(menuAlarmSevr)) { design(no) readonly(yes) } field(alarmAckTransient,bool) { readonly(yes) default("YES") } field(disableAlarmSeverity,menu(menuAlarmSevr)) field(lockCount,int16) { design(no) readonly(yes) } field(pact,bool) { design(no) readonly(yes) } field(putFieldProcess,bool) { design(no) readonly(yes) } field(reprocess,bool) { design(no) readonly(yes) } field(priority,menu(menuPriority)) { special(yes) } field(udf,bool) { dynamic(yes) default("1") } field(time,struct(timeStamp)) { design(no) dynamic(yes) readonly(yes) } field(flnk,link(fwd)) field(monitorLock,private("epicsMutexId")) field(monitorList,private("ELLLIST")) field(asp,private("void *")) field(ppn,private("struct putNotify *") field(ppnr,private("struct putNotifyRecord *")) field(spvt,private("struct scan_element *")) field(rset,private("struct rset *")) field(rdes,private(struct dbRecordType *")) field(lset,private("struct lockRecord *")) }