Experimental Physics and Industrial Control System
Subject: |
[Merge] lp:~epics-core/epics-base/postdbrprop into lp:epics-base |
From: |
mdavidsaver <[email protected]> |
To: |
[email protected] |
Date: |
Sat, 30 Nov 2013 20:15:33 -0000 |
mdavidsaver has proposed merging lp:~epics-core/epics-base/postdbrprop into lp:epics-base.
Requested reviews:
EPICS Core Developers (epics-core)
For more details, see:
https://code.launchpad.net/~epics-core/epics-base/postdbrprop/+merge/197290
(This branch should have been named "postdbeprop", but I mis-typed and don't want the trouble of correcting this now)
The branch adds posting of DBE_PROPERTY events when CA metadata/property fields are written with dbPut(). These fields are marked in the recordtype's .dbd file with "prop(YES)".
Changes are made to recognise the prop() field attribute and store it. The attribute is added to all Base recordtypes except mbbi and mbbo where it is not added for the *ST fields as this is already handled by the recordtype's support code.
Also, dbPut() is modified to post a monitor whenever a "prop(YES)" field is written. No attempt to detect field value changes is made. The event is posted for all monitors on the record with DBE_PROPERTY, not just the VAL field. This is done to support recordtypes with more than one VAL type field.
Associated documentation in lp:~mdavidsaver/epics-appdev/postdbeprop
--
https://code.launchpad.net/~epics-core/epics-base/postdbrprop/+merge/197290
Your team EPICS Core Developers is requested to review the proposed merge of lp:~epics-core/epics-base/postdbrprop into lp:epics-base.
=== modified file 'documentation/RELEASE_NOTES.html'
--- documentation/RELEASE_NOTES.html 2013-06-28 17:35:43 +0000
+++ documentation/RELEASE_NOTES.html 2013-11-30 20:14:29 +0000
@@ -15,6 +15,13 @@
<h2 align="center">Changes between 3.15.0.1 and 3.15.0.2</h2>
<!-- Insert new items immediately below here ... -->
+<h3>Post DBE_PROPERTY events automatically</h3>
+
+<p>A new record field attribute "prop(YES)" is added to identify fields
+holding CA meta-data. Changes to fields so marked will cause a event
+to be sent to all subscriptions to that record for DBE_PROPERTY.
+Meta-data fields are marked for all Base recordtypes.</p>
+
<h3>errlogRemoveListener() routine changed</h3>
<p>Code that calls <tt>errlogRemoveListener(myfunc)</tt> must be modified to use
=== modified file 'src/ioc/db/dbAccess.c'
--- src/ioc/db/dbAccess.c 2013-10-03 21:04:03 +0000
+++ src/ioc/db/dbAccess.c 2013-11-30 20:14:29 +0000
@@ -1208,13 +1208,19 @@
}
/* Propagate monitor events for this field, */
- /* unless the field field is VAL and PP is true. */
+ /* unless the field is VAL and PP is true. */
pfldDes = paddr->pfldDes;
isValueField = dbIsValueField(pfldDes);
if (isValueField) precord->udf = FALSE;
if (precord->mlis.count &&
!(isValueField && pfldDes->process_passive))
db_post_events(precord, paddr->pfield, DBE_VALUE | DBE_LOG);
+ /* If this field is a property (metadata) field,
+ * then post a property change event (even if the field
+ * didn't change).
+ */
+ if (precord->mlis.count && pfldDes->prop)
+ db_post_events(precord, NULL, DBE_PROPERTY);
return status;
}
=== modified file 'src/ioc/dbStatic/dbBase.h'
--- src/ioc/dbStatic/dbBase.h 2012-04-27 17:21:39 +0000
+++ src/ioc/dbStatic/dbBase.h 2013-11-30 20:14:29 +0000
@@ -69,25 +69,26 @@
}brkTable;
typedef struct dbFldDes{ /* field description */
- char *prompt; /*Prompt string for DCT*/
- char *name; /*Field name*/
- char *extra; /*C def for DBF_NOACCESS*/
- struct dbRecordType *pdbRecordType;
- short indRecordType; /*within dbRecordType.papFldDes */
- short special; /*Special processing requirements */
- dbfType field_type; /*Field type as defined in dbFldTypes.h */
- short process_passive;/*should dbPutField process passive */
- ctType base; /*base for integer to string conversions*/
- short promptgroup; /*prompt, i.e. gui group */
- short interest; /*interest level */
- asLevel as_level; /*access security level */
- char *initial; /*initial value */
- /*If (DBF_MENU,DBF_DEVICE) ftPvt is (pdbMenu,pdbDeviceMenu) */
- void *ftPvt;
- /*On no runtime following only set for STRING */
- short size; /*length in bytes of a field element */
- /*The following are only available on run time system*/
- short offset; /*Offset in bytes from beginning of record*/
+ char *prompt; /*Prompt string for DCT*/
+ char *name; /*Field name*/
+ char *extra; /*C def for DBF_NOACCESS*/
+ struct dbRecordType *pdbRecordType;
+ short indRecordType; /*within dbRecordType.papFldDes */
+ short special; /*Special processing requirements */
+ dbfType field_type; /*Field type as defined in dbFldTypes.h */
+ unsigned int process_passive:1;/*should dbPutField process passive */
+ unsigned int prop:1;/*field is a metadata, post DBE_PROPERTY on change*/
+ ctType base; /*base for integer to string conversions*/
+ short promptgroup; /*prompt, i.e. gui group */
+ short interest; /*interest level */
+ asLevel as_level; /*access security level */
+ char *initial; /*initial value */
+ /*If (DBF_MENU,DBF_DEVICE) ftPvt is (pdbMenu,pdbDeviceMenu) */
+ void *ftPvt;
+ /*On no runtime following only set for STRING */
+ short size; /*length in bytes of a field element */
+ /*The following are only available on run time system*/
+ short offset; /*Offset in bytes from beginning of record*/
}dbFldDes;
typedef struct dbInfoNode { /*non-field per-record information*/
=== modified file 'src/ioc/dbStatic/dbLexRoutines.c'
--- src/ioc/dbStatic/dbLexRoutines.c 2012-07-31 19:04:38 +0000
+++ src/ioc/dbStatic/dbLexRoutines.c 2013-11-30 20:14:29 +0000
@@ -498,87 +498,94 @@
if(duplicate) return;
pdbFldDes = (dbFldDes *)getLastTemp();
if(strcmp(name,"asl")==0) {
- if(strcmp(value,"ASL0")==0) {
- pdbFldDes->as_level = ASL0;
- } else if(strcmp(value,"ASL1")==0) {
- pdbFldDes->as_level = ASL1;
- } else {
- yyerror("Illegal Access Security value: Must be ASL0 or ASL1");
- }
- return;
+ if(strcmp(value,"ASL0")==0) {
+ pdbFldDes->as_level = ASL0;
+ } else if(strcmp(value,"ASL1")==0) {
+ pdbFldDes->as_level = ASL1;
+ } else {
+ yyerror("Illegal Access Security value: Must be ASL0 or ASL1");
+ }
+ return;
}
if(strcmp(name,"initial")==0) {
- pdbFldDes->initial = epicsStrDup(value);
- return;
+ pdbFldDes->initial = epicsStrDup(value);
+ return;
}
if(strcmp(name,"promptgroup")==0) {
- int i;
- for(i=0; i<GUI_NTYPES; i++) {
- if(strcmp(value,pamapguiGroup[i].strvalue)==0) {
- pdbFldDes->promptgroup = pamapguiGroup[i].value;
- return;
- }
- }
- yyerror("Illegal promptgroup. See guigroup.h for legal values");
- return;
+ int i;
+ for(i=0; i<GUI_NTYPES; i++) {
+ if(strcmp(value,pamapguiGroup[i].strvalue)==0) {
+ pdbFldDes->promptgroup = pamapguiGroup[i].value;
+ return;
+ }
+ }
+ yyerror("Illegal promptgroup. See guigroup.h for legal values");
+ return;
}
if(strcmp(name,"prompt")==0) {
- pdbFldDes->prompt = epicsStrDup(value);
- return;
+ pdbFldDes->prompt = epicsStrDup(value);
+ return;
}
if(strcmp(name,"special")==0) {
- int i;
- for(i=0; i<SPC_NTYPES; i++) {
- if(strcmp(value,pamapspcType[i].strvalue)==0) {
- pdbFldDes->special = pamapspcType[i].value;
- return;
- }
- }
- if(sscanf(value,"%hd",&pdbFldDes->special)==1) {
- return;
- }
- yyerror("Illegal special value.");
- return;
+ int i;
+ for(i=0; i<SPC_NTYPES; i++) {
+ if(strcmp(value,pamapspcType[i].strvalue)==0) {
+ pdbFldDes->special = pamapspcType[i].value;
+ return;
+ }
+ }
+ if(sscanf(value,"%hd",&pdbFldDes->special)==1) {
+ return;
+ }
+ yyerror("Illegal special value.");
+ return;
}
if(strcmp(name,"pp")==0) {
- if((strcmp(value,"YES")==0) || (strcmp(value,"TRUE")==0)) {
- pdbFldDes->process_passive = TRUE;
- } else if((strcmp(value,"NO")==0) || (strcmp(value,"FALSE")==0)) {
- pdbFldDes->process_passive = FALSE;
- } else {
- yyerror("Illegal value. Must be NO or YES");
- }
- return;
+ if((strcmp(value,"YES")==0) || (strcmp(value,"TRUE")==0)) {
+ pdbFldDes->process_passive = TRUE;
+ } else if((strcmp(value,"NO")==0) || (strcmp(value,"FALSE")==0)) {
+ pdbFldDes->process_passive = FALSE;
+ } else {
+ yyerror("Illegal value. Must be NO or YES");
+ }
+ return;
}
if(strcmp(name,"interest")==0) {
- if(sscanf(value,"%hd",&pdbFldDes->interest)!=1)
- yyerror("Illegal value. Must be integer");
- return;
+ if(sscanf(value,"%hd",&pdbFldDes->interest)!=1)
+ yyerror("Illegal value. Must be integer");
+ return;
}
if(strcmp(name,"base")==0) {
- if(strcmp(value,"DECIMAL")==0) {
- pdbFldDes->base = CT_DECIMAL;
- } else if(strcmp(value,"HEX")==0) {
- pdbFldDes->base = CT_HEX;
- } else {
- yyerror("Illegal value. Must be CT_DECIMAL or CT_HEX");
- }
- return;
+ if(strcmp(value,"DECIMAL")==0) {
+ pdbFldDes->base = CT_DECIMAL;
+ } else if(strcmp(value,"HEX")==0) {
+ pdbFldDes->base = CT_HEX;
+ } else {
+ yyerror("Illegal value. Must be CT_DECIMAL or CT_HEX");
+ }
+ return;
}
if(strcmp(name,"size")==0) {
- if(sscanf(value,"%hd",&pdbFldDes->size)!=1)
- yyerror("Illegal value. Must be integer");
- return;
+ if(sscanf(value,"%hd",&pdbFldDes->size)!=1)
+ yyerror("Illegal value. Must be integer");
+ return;
}
if(strcmp(name,"extra")==0) {
- pdbFldDes->extra = epicsStrDup(value);
- return;
+ pdbFldDes->extra = epicsStrDup(value);
+ return;
}
if(strcmp(name,"menu")==0) {
- pdbFldDes->ftPvt = (dbMenu *)dbFindMenu(pdbbase,value);
- if(!pdbbase->ignoreMissingMenus && !pdbFldDes->ftPvt)
- yyerrorAbort("menu not found");
- return;
+ pdbFldDes->ftPvt = (dbMenu *)dbFindMenu(pdbbase,value);
+ if(!pdbbase->ignoreMissingMenus && !pdbFldDes->ftPvt)
+ yyerrorAbort("menu not found");
+ return;
+ }
+ if(strcmp(name,"prop")==0) {
+ if(strcmp(value, "YES")==0)
+ pdbFldDes->prop = 1;
+ else
+ pdbFldDes->prop = 0;
+ return;
}
}
=== modified file 'src/ioc/dbStatic/dbStaticLib.c'
--- src/ioc/dbStatic/dbStaticLib.c 2013-06-14 18:55:22 +0000
+++ src/ioc/dbStatic/dbStaticLib.c 2013-11-30 20:14:29 +0000
@@ -971,6 +971,7 @@
pdbFldDes->size);
}
if(pdbFldDes->process_passive) fprintf(fp,"\t\tpp(TRUE)\n");
+ if(pdbFldDes->prop) fprintf(fp,"\t\tprop(YES)\n");
if(pdbFldDes->base) fprintf(fp,"\t\tbase(HEX)\n");
if(pdbFldDes->interest)
fprintf(fp,"\t\tinterest(%d)\n",pdbFldDes->interest);
@@ -3140,6 +3141,7 @@
else
printf("\t field_type: %s\n", pamapdbfType[j].strvalue);
printf("\tprocess_passive: %hd\n",pdbFldDes->process_passive);
+ printf("\t property: %hd\n",pdbFldDes->prop);
printf("\t base: %d\n",pdbFldDes->base);
if(!pdbFldDes->promptgroup) {
printf("\t promptgroup: %d\n",pdbFldDes->promptgroup);
=== modified file 'src/std/rec/aSubRecord.dbd'
--- src/std/rec/aSubRecord.dbd 2012-10-18 05:10:12 +0000
+++ src/std/rec/aSubRecord.dbd 2013-11-30 20:14:29 +0000
@@ -77,6 +77,7 @@
prompt("Display Precision")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(EFLG,DBF_MENU) {
prompt("Output Event Flag")
=== modified file 'src/std/rec/aaiRecord.dbd'
--- src/std/rec/aaiRecord.dbd 2010-05-27 14:45:21 +0000
+++ src/std/rec/aaiRecord.dbd 2013-11-30 20:14:29 +0000
@@ -24,6 +24,7 @@
prompt("Display Precision")
promptgroup(GUI_ALARMS)
interest(1)
+ prop(YES)
}
field(INP,DBF_INLINK) {
prompt("Input Specification")
@@ -35,16 +36,19 @@
promptgroup(GUI_BITS2)
interest(1)
size(16)
+ prop(YES)
}
field(HOPR,DBF_DOUBLE) {
prompt("High Operating Range")
promptgroup(GUI_CALC)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_CLOCK)
interest(1)
+ prop(YES)
}
field(NELM,DBF_ULONG) {
prompt("Number of Elements")
=== modified file 'src/std/rec/aaoRecord.dbd'
--- src/std/rec/aaoRecord.dbd 2010-05-27 14:45:21 +0000
+++ src/std/rec/aaoRecord.dbd 2013-11-30 20:14:29 +0000
@@ -24,6 +24,7 @@
prompt("Display Precision")
promptgroup(GUI_ALARMS)
interest(1)
+ prop(YES)
}
field(OUT,DBF_OUTLINK) {
prompt("Output Specification")
@@ -35,16 +36,19 @@
promptgroup(GUI_BITS2)
interest(1)
size(16)
+ prop(YES)
}
field(HOPR,DBF_DOUBLE) {
prompt("High Operating Range")
promptgroup(GUI_CALC)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_CLOCK)
interest(1)
+ prop(YES)
}
field(NELM,DBF_ULONG) {
prompt("Number of Elements")
=== modified file 'src/std/rec/aiRecord.dbd'
--- src/std/rec/aiRecord.dbd 2010-01-06 22:05:49 +0000
+++ src/std/rec/aiRecord.dbd 2013-11-30 20:14:29 +0000
@@ -24,6 +24,7 @@
prompt("Display Precision")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LINR,DBF_MENU) {
prompt("Linearization")
@@ -52,16 +53,19 @@
promptgroup(GUI_DISPLAY)
interest(1)
size(16)
+ prop(YES)
}
field(HOPR,DBF_DOUBLE) {
prompt("High Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(AOFF,DBF_DOUBLE) {
prompt("Adjustment Offset")
@@ -86,30 +90,35 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOLO,DBF_DOUBLE) {
prompt("Lolo Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HIGH,DBF_DOUBLE) {
prompt("High Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOW,DBF_DOUBLE) {
prompt("Low Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HHSV,DBF_MENU) {
prompt("Hihi Severity")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LLSV,DBF_MENU) {
@@ -117,6 +126,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HSV,DBF_MENU) {
@@ -124,6 +134,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LSV,DBF_MENU) {
@@ -131,6 +142,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HYST,DBF_DOUBLE) {
=== modified file 'src/std/rec/aoRecord.dbd'
--- src/std/rec/aoRecord.dbd 2002-07-12 21:35:43 +0000
+++ src/std/rec/aoRecord.dbd 2013-11-30 20:14:29 +0000
@@ -53,6 +53,7 @@
prompt("Display Precision")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LINR,DBF_MENU) {
prompt("Linearization")
@@ -81,6 +82,7 @@
promptgroup(GUI_DISPLAY)
interest(1)
size(16)
+ prop(YES)
}
field(ROFF,DBF_LONG) {
prompt("Raw Offset, obsolete")
@@ -105,22 +107,26 @@
promptgroup(GUI_OUTPUT)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(DRVL,DBF_DOUBLE) {
prompt("Drive Low Limit")
promptgroup(GUI_OUTPUT)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HOPR,DBF_DOUBLE) {
prompt("High Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(AOFF,DBF_DOUBLE) {
prompt("Adjustment Offset")
@@ -139,30 +145,35 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOLO,DBF_DOUBLE) {
prompt("Lolo Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HIGH,DBF_DOUBLE) {
prompt("High Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOW,DBF_DOUBLE) {
prompt("Low Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HHSV,DBF_MENU) {
prompt("Hihi Severity")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LLSV,DBF_MENU) {
@@ -170,6 +181,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HSV,DBF_MENU) {
@@ -177,6 +189,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LSV,DBF_MENU) {
@@ -184,6 +197,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HYST,DBF_DOUBLE) {
=== modified file 'src/std/rec/biRecord.dbd'
--- src/std/rec/biRecord.dbd 2009-06-08 19:55:49 +0000
+++ src/std/rec/biRecord.dbd 2013-11-30 20:14:29 +0000
@@ -47,6 +47,7 @@
pp(TRUE)
interest(1)
size(26)
+ prop(YES)
}
field(ONAM,DBF_STRING) {
prompt("One Name")
@@ -54,6 +55,7 @@
pp(TRUE)
interest(1)
size(26)
+ prop(YES)
}
field(RVAL,DBF_ULONG) {
prompt("Raw Value")
=== modified file 'src/std/rec/boRecord.dbd'
--- src/std/rec/boRecord.dbd 2012-01-21 22:35:40 +0000
+++ src/std/rec/boRecord.dbd 2013-11-30 20:14:29 +0000
@@ -42,6 +42,7 @@
pp(TRUE)
interest(1)
size(26)
+ prop(YES)
}
field(ONAM,DBF_STRING) {
prompt("One Name")
@@ -49,6 +50,7 @@
pp(TRUE)
interest(1)
size(26)
+ prop(YES)
}
field(RVAL,DBF_ULONG) {
prompt("Raw Value")
=== modified file 'src/std/rec/calcRecord.dbd'
--- src/std/rec/calcRecord.dbd 2010-05-28 09:16:45 +0000
+++ src/std/rec/calcRecord.dbd 2013-11-30 20:14:29 +0000
@@ -85,51 +85,60 @@
promptgroup(GUI_DISPLAY)
interest(1)
size(16)
+ prop(YES)
}
field(PREC,DBF_SHORT) {
prompt("Display Precision")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(HOPR,DBF_DOUBLE) {
prompt("High Operating Rng")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(HIHI,DBF_DOUBLE) {
prompt("Hihi Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOLO,DBF_DOUBLE) {
prompt("Lolo Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HIGH,DBF_DOUBLE) {
prompt("High Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOW,DBF_DOUBLE) {
prompt("Low Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HHSV,DBF_MENU) {
prompt("Hihi Severity")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LLSV,DBF_MENU) {
@@ -137,6 +146,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HSV,DBF_MENU) {
@@ -144,6 +154,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LSV,DBF_MENU) {
@@ -151,6 +162,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(AFTC, DBF_DOUBLE) {
=== modified file 'src/std/rec/calcoutRecord.dbd'
--- src/std/rec/calcoutRecord.dbd 2012-06-22 22:58:12 +0000
+++ src/std/rec/calcoutRecord.dbd 2013-11-30 20:14:29 +0000
@@ -285,51 +285,60 @@
promptgroup(GUI_DISPLAY)
interest(1)
size(16)
+ prop(YES)
}
field(PREC,DBF_SHORT) {
prompt("Display Precision")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(HOPR,DBF_DOUBLE) {
prompt("High Operating Rng")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(HIHI,DBF_DOUBLE) {
prompt("Hihi Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOLO,DBF_DOUBLE) {
prompt("Lolo Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HIGH,DBF_DOUBLE) {
prompt("High Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOW,DBF_DOUBLE) {
prompt("Low Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HHSV,DBF_MENU) {
prompt("Hihi Severity")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LLSV,DBF_MENU) {
@@ -337,6 +346,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HSV,DBF_MENU) {
@@ -344,6 +354,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LSV,DBF_MENU) {
@@ -351,6 +362,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HYST,DBF_DOUBLE) {
=== modified file 'src/std/rec/compressRecord.dbd'
--- src/std/rec/compressRecord.dbd 2011-06-08 16:16:26 +0000
+++ src/std/rec/compressRecord.dbd 2013-11-30 20:14:29 +0000
@@ -70,22 +70,26 @@
prompt("High Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(PREC,DBF_SHORT) {
prompt("Display Precision")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(EGU,DBF_STRING) {
prompt("EngineeringUnits")
promptgroup(GUI_DISPLAY)
interest(1)
size(16)
+ prop(YES)
}
field(OFF,DBF_ULONG) {
prompt("Offset")
=== modified file 'src/std/rec/dfanoutRecord.dbd'
--- src/std/rec/dfanoutRecord.dbd 2002-07-12 21:35:43 +0000
+++ src/std/rec/dfanoutRecord.dbd 2013-11-30 20:14:29 +0000
@@ -91,51 +91,60 @@
promptgroup(GUI_DISPLAY)
interest(1)
size(16)
+ prop(YES)
}
field(PREC,DBF_SHORT) {
prompt("Display Precision")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(HOPR,DBF_DOUBLE) {
prompt("High Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(HIHI,DBF_DOUBLE) {
prompt("Hihi Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOLO,DBF_DOUBLE) {
prompt("Lolo Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HIGH,DBF_DOUBLE) {
prompt("High Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOW,DBF_DOUBLE) {
prompt("Low Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HHSV,DBF_MENU) {
prompt("Hihi Severity")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LLSV,DBF_MENU) {
@@ -143,6 +152,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HSV,DBF_MENU) {
@@ -150,6 +160,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LSV,DBF_MENU) {
@@ -157,6 +168,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HYST,DBF_DOUBLE) {
=== modified file 'src/std/rec/histogramRecord.dbd'
--- src/std/rec/histogramRecord.dbd 2012-01-21 22:35:40 +0000
+++ src/std/rec/histogramRecord.dbd 2013-11-30 20:14:29 +0000
@@ -46,12 +46,14 @@
promptgroup(GUI_HIST)
special(SPC_RESET)
interest(1)
+ prop(YES)
}
field(LLIM,DBF_DOUBLE) {
prompt("Lower Signal Limit ")
promptgroup(GUI_HIST)
special(SPC_RESET)
interest(1)
+ prop(YES)
}
field(WDTH,DBF_DOUBLE) {
prompt("Element Width")
@@ -66,6 +68,7 @@
prompt("Display Precision")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(SVL,DBF_INLINK) {
prompt("Signal Value Location")
@@ -128,11 +131,13 @@
prompt("High Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_ULONG) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
}
=== modified file 'src/std/rec/longinRecord.dbd'
--- src/std/rec/longinRecord.dbd 2010-05-28 09:16:45 +0000
+++ src/std/rec/longinRecord.dbd 2013-11-30 20:14:29 +0000
@@ -25,40 +25,47 @@
promptgroup(GUI_DISPLAY)
interest(1)
size(16)
+ prop(YES)
}
field(HOPR,DBF_LONG) {
prompt("High Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_LONG) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(HIHI,DBF_LONG) {
prompt("Hihi Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOLO,DBF_LONG) {
prompt("Lolo Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HIGH,DBF_LONG) {
prompt("High Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOW,DBF_LONG) {
prompt("Low Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HHSV,DBF_MENU) {
prompt("Hihi Severity")
=== modified file 'src/std/rec/longoutRecord.dbd'
--- src/std/rec/longoutRecord.dbd 2002-07-12 21:35:43 +0000
+++ src/std/rec/longoutRecord.dbd 2013-11-30 20:14:29 +0000
@@ -36,52 +36,61 @@
promptgroup(GUI_DISPLAY)
interest(1)
size(16)
+ prop(YES)
}
field(DRVH,DBF_LONG) {
prompt("Drive High Limit")
promptgroup(GUI_OUTPUT)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(DRVL,DBF_LONG) {
prompt("Drive Low Limit")
promptgroup(GUI_OUTPUT)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HOPR,DBF_LONG) {
prompt("High Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_LONG) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(HIHI,DBF_LONG) {
prompt("Hihi Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOLO,DBF_LONG) {
prompt("Lolo Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HIGH,DBF_LONG) {
prompt("High Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOW,DBF_LONG) {
prompt("Low Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HHSV,DBF_MENU) {
prompt("Hihi Severity")
=== modified file 'src/std/rec/selRecord.dbd'
--- src/std/rec/selRecord.dbd 2005-08-29 19:49:39 +0000
+++ src/std/rec/selRecord.dbd 2013-11-30 20:14:29 +0000
@@ -103,46 +103,54 @@
promptgroup(GUI_DISPLAY)
interest(1)
size(16)
+ prop(YES)
}
field(HOPR,DBF_DOUBLE) {
prompt("High Operating Rng")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(HIHI,DBF_DOUBLE) {
prompt("Hihi Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOLO,DBF_DOUBLE) {
prompt("Lolo Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HIGH,DBF_DOUBLE) {
prompt("High Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOW,DBF_DOUBLE) {
prompt("Low Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HHSV,DBF_MENU) {
prompt("Hihi Severity")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LLSV,DBF_MENU) {
@@ -150,6 +158,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HSV,DBF_MENU) {
@@ -157,6 +166,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LSV,DBF_MENU) {
@@ -164,6 +174,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HYST,DBF_DOUBLE) {
=== modified file 'src/std/rec/subArrayRecord.dbd'
--- src/std/rec/subArrayRecord.dbd 2002-07-12 21:35:43 +0000
+++ src/std/rec/subArrayRecord.dbd 2013-11-30 20:14:29 +0000
@@ -20,6 +20,7 @@
prompt("Display Precision")
promptgroup(GUI_COMMON)
interest(1)
+ prop(YES)
}
field(FTVL,DBF_MENU) {
prompt("Field Type of Value")
@@ -38,16 +39,19 @@
promptgroup(GUI_BITS2)
interest(1)
size(16)
+ prop(YES)
}
field(HOPR,DBF_DOUBLE) {
prompt("High Operating Range")
promptgroup(GUI_CALC)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_CLOCK)
interest(1)
+ prop(YES)
}
field(MALM,DBF_ULONG) {
prompt("Maximum Elements ")
=== modified file 'src/std/rec/subRecord.dbd'
--- src/std/rec/subRecord.dbd 2008-04-24 16:30:37 +0000
+++ src/std/rec/subRecord.dbd 2013-11-30 20:14:29 +0000
@@ -100,45 +100,53 @@
promptgroup(GUI_DISPLAY)
interest(1)
size(16)
+ prop(YES)
}
field(HOPR,DBF_DOUBLE) {
prompt("High Operating Rng")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(HIHI,DBF_DOUBLE) {
prompt("Hihi Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOLO,DBF_DOUBLE) {
prompt("Lolo Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(HIGH,DBF_DOUBLE) {
prompt("High Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(LOW,DBF_DOUBLE) {
prompt("Low Alarm Limit")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
}
field(PREC,DBF_SHORT) {
prompt("Display Precision")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(BRSV,DBF_MENU) {
prompt("Bad Return Severity")
@@ -152,6 +160,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LLSV,DBF_MENU) {
@@ -159,6 +168,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HSV,DBF_MENU) {
@@ -166,6 +176,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(LSV,DBF_MENU) {
@@ -173,6 +184,7 @@
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
+ prop(YES)
menu(menuAlarmSevr)
}
field(HYST,DBF_DOUBLE) {
=== modified file 'src/std/rec/waveformRecord.dbd'
--- src/std/rec/waveformRecord.dbd 2009-04-03 21:05:40 +0000
+++ src/std/rec/waveformRecord.dbd 2013-11-30 20:14:29 +0000
@@ -29,6 +29,7 @@
prompt("Display Precision")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(INP,DBF_INLINK) {
prompt("Input Specification")
@@ -40,16 +41,19 @@
promptgroup(GUI_DISPLAY)
interest(1)
size(16)
+ prop(YES)
}
field(HOPR,DBF_DOUBLE) {
prompt("High Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(LOPR,DBF_DOUBLE) {
prompt("Low Operating Range")
promptgroup(GUI_DISPLAY)
interest(1)
+ prop(YES)
}
field(NELM,DBF_ULONG) {
prompt("Number of Elements")
=== modified file 'src/tools/DBD/Recfield.pm'
--- src/tools/DBD/Recfield.pm 2012-08-22 21:54:54 +0000
+++ src/tools/DBD/Recfield.pm 2013-11-30 20:14:29 +0000
@@ -35,7 +35,8 @@
base => qr/^(?:DECIMAL|HEX)$/,
size => qr/^\d+$/,
extra => qr/^.*$/,
- menu => qr/^$RXident$/o
+ menu => qr/^$RXident$/o,
+ prop => qr/^(?:YES|NO)$/
);
sub new {
- Replies:
- Re: [Merge] lp:~epics-core/epics-base/postdbrprop into lp:epics-base Andrew Johnson
- [Merge] lp:~epics-core/epics-base/postdbrprop into lp:epics-base Andrew Johnson
- [Merge] lp:~epics-core/epics-base/postdbrprop into lp:epics-base noreply
- Navigate by Date:
- Prev:
Re: [Merge] lp:~epics-core/epics-base/thread-pool into lp:epics-base mdavidsaver
- Next:
Re: [Merge] lp:~epics-core/epics-base/devlib2mmio into lp:epics-base mdavidsaver
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
<2013>
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
[Merge] lp:~johill-lanl/epics-base/epicsThreadOnce-atomics-based into lp:epics-base Andrew Johnson
- Next:
Re: [Merge] lp:~epics-core/epics-base/postdbrprop into lp:epics-base Andrew Johnson
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
<2013>
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024