V4 DBD dbCommon and iocRecord
From EPICSWIKI
Revision as of 22:37, 16 May 2005 by AndrewJohnson (talk | contribs)
dbCommon
NOTE: 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 periods to their 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") }
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) default("UDF") } field(alarmSeverity,menu(menuAlarmSevr)) { readonly(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) { default("1") } field(time,struct(timeStamp)) { design(no) 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 *")) }