Merge lp:~khkim/epics-base/fix-timestamp into lp:~epics-core/epics-base/3.14

Proposed by Kim, Kukhee
Status: Rejected
Rejected by: Andrew Johnson
Proposed branch: lp:~khkim/epics-base/fix-timestamp
Merge into: lp:~epics-core/epics-base/3.14
Diff against target: 635 lines (+177/-12)
27 files modified
src/db/Makefile (+1/-0)
src/db/menuGlobal.dbd (+1/-0)
src/db/menuRecTime.dbd (+5/-0)
src/rec/aiRecord.c (+7/-1)
src/rec/aiRecord.dbd (+7/-0)
src/rec/aoRecord.c (+7/-1)
src/rec/aoRecord.dbd (+7/-0)
src/rec/biRecord.c (+7/-1)
src/rec/biRecord.dbd (+8/-0)
src/rec/boRecord.c (+7/-1)
src/rec/boRecord.dbd (+7/-0)
src/rec/calcRecord.c (+7/-1)
src/rec/calcRecord.dbd (+8/-0)
src/rec/calcoutRecord.c (+7/-1)
src/rec/calcoutRecord.dbd (+7/-0)
src/rec/longinRecord.c (+7/-1)
src/rec/longinRecord.dbd (+7/-0)
src/rec/longoutRecord.c (+7/-1)
src/rec/longoutRecord.dbd (+7/-0)
src/rec/mbbiDirectRecord.c (+7/-1)
src/rec/mbbiDirectRecord.dbd (+7/-0)
src/rec/mbbiRecord.c (+7/-1)
src/rec/mbbiRecord.dbd (+7/-0)
src/rec/mbboDirectRecord.c (+7/-1)
src/rec/mbboDirectRecord.dbd (+7/-0)
src/rec/mbboRecord.c (+7/-1)
src/rec/mbboRecord.dbd (+7/-0)
To merge this branch: bzr merge lp:~khkim/epics-base/fix-timestamp
Reviewer Review Type Date Requested Status
Andrew Johnson Disapprove
Review via email: mp+26023@code.launchpad.net

Description of the change

Put a new record field;TSMD (timestamp mode) to describe when the timesample will be updated.
There are three choices available.
1. DEFAULT: timestamp will be updated as the conventioal way
2. Monitor Deadband: timestamp will be updated when the value changes exceed the monitoring deadband.
3. Archive Deadband; timestamp will be updated when the value changes exceed the archiving deadband.

To post a comment you must log in.
Revision history for this message
Ralph Lange (ralph-lange) wrote :

Can you give me a use case for this feature?

Revision history for this message
Kim, Kukhee (khkim) wrote :

1. caput <PV name>.TSMD "Default"
timestamp updated every record processing.

2. caput <PV name>.TSMD "Mon Deadband"
timestamp updated when the value change exceed the monitoring deadband.

3. caput <PV name>.TSMD "Arch Deadband"
timestamp updated when the value change exceed the archiving deadband.

If you are interested to know when value changed,
you can utilize the case 2 and 3.

Revision history for this message
Ralph Lange (ralph-lange) wrote :

I see what it does.
But if you monitor the channel, you always get the matching timestamps with the data updates.
Sorry, I still don't seem to understand your intentions.

Revision history for this message
Andrew Johnson (anj) wrote :

This branch implements a request on my To Do list from Ned Arnold several years ago, which I described to Kukhee. Ned wanted the timestamp of some records to reflect when the value in its VAL field last changed, so that an input record that processes periodically but always gets the same result doesn't update its timestamp.

Kukhee has now started working on the alarm filtering task (extending Bernard's alarm filtering code from last year to more record types) and pointed out that the alarm filter's need for a new timestamp every process conflicts with the change in Ned's request. The alarm filtering is probably more important for most of our users, so I think we have to abandon this particular merge proposal and branch.

I could see us adding a couple of time-stamp fields for the last time the monitor and archive dead-bands were exceeded, which might help with some of the other issues we've talked about regarding monitors, but I don't think this is the way to solve Ned's issue (which was my fault, I told Kukhee what to do).

review: Disapprove

Unmerged revisions

12070. By Kukhee Kim <khkim@linux-e4nv>

timestamp on value change

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/db/Makefile'
2--- src/db/Makefile 2009-12-21 19:45:12 +0000
3+++ src/db/Makefile 2010-05-26 09:07:26 +0000
4@@ -45,6 +45,7 @@
5 DBDINC += menuScan
6 DBDINC += menuYesNo
7 DBDINC += menuSimm
8+DBDINC += menuRecTime
9
10 DBDINC += dbCommon
11 DBD+= menuGlobal.dbd
12
13=== modified file 'src/db/menuGlobal.dbd'
14--- src/db/menuGlobal.dbd 2009-04-23 20:35:02 +0000
15+++ src/db/menuGlobal.dbd 2010-05-26 09:07:26 +0000
16@@ -17,3 +17,4 @@
17 include "menuScan.dbd"
18 include "menuSimm.dbd"
19 include "menuYesNo.dbd"
20+include "menuRecTime.dbd"
21
22=== added file 'src/db/menuRecTime.dbd'
23--- src/db/menuRecTime.dbd 1970-01-01 00:00:00 +0000
24+++ src/db/menuRecTime.dbd 2010-05-26 09:07:26 +0000
25@@ -0,0 +1,5 @@
26+menu(menuRecTime) {
27+ choice(menuRecTimeDEFAULT, "Default")
28+ choice(menuRecTimeMONDEADBAND, "Mon Deadband")
29+ choice(menuRecTimeARCHDEADBAND, "Arch DeadBand")
30+}
31
32=== modified file 'src/rec/aiRecord.c'
33--- src/rec/aiRecord.c 2010-04-05 18:49:18 +0000
34+++ src/rec/aiRecord.c 2010-05-26 09:07:26 +0000
35@@ -36,6 +36,7 @@
36 #include "recGbl.h"
37 #include "special.h"
38 #include "menuConvert.h"
39+#include "menuRecTime.h"
40 #define GEN_SIZE_OFFSET
41 #include "aiRecord.h"
42 #undef GEN_SIZE_OFFSET
43@@ -169,7 +170,7 @@
44 if ( !pact && prec->pact ) return(0);
45 prec->pact = TRUE;
46
47- recGblGetTimeStamp(prec);
48+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
49 if (status==0) convert(prec);
50 else if (status==2) status=0;
51
52@@ -402,6 +403,11 @@
53 prec->alst = prec->val;
54 }
55
56+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
57+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
58+ ) recGblGetTimeStamp(prec);
59+
60+
61 /* send out monitors connected to the value field */
62 if (monitor_mask){
63 db_post_events(prec,&prec->val,monitor_mask);
64
65=== modified file 'src/rec/aiRecord.dbd'
66--- src/rec/aiRecord.dbd 2005-11-15 23:35:34 +0000
67+++ src/rec/aiRecord.dbd 2010-05-26 09:07:26 +0000
68@@ -230,4 +230,11 @@
69 interest(2)
70 menu(menuAlarmSevr)
71 }
72+ field(TSMD, DBF_MENU) {
73+ prompt("Timestamping mode")
74+ promptgroup(GUI_CONVERT)
75+ pp(TRUE)
76+ interest(1)
77+ menu(menuRecTime)
78+ }
79 }
80
81=== modified file 'src/rec/aoRecord.c'
82--- src/rec/aoRecord.c 2010-04-05 18:49:18 +0000
83+++ src/rec/aoRecord.c 2010-05-26 09:07:26 +0000
84@@ -37,6 +37,7 @@
85 #include "menuConvert.h"
86 #include "menuOmsl.h"
87 #include "menuYesNo.h"
88+#include "menuRecTime.h"
89 #define GEN_SIZE_OFFSET
90 #include "aoRecord.h"
91 #undef GEN_SIZE_OFFSET
92@@ -231,7 +232,7 @@
93 if ( !pact && prec->pact ) return(0);
94 prec->pact = TRUE;
95
96- recGblGetTimeStamp(prec);
97+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
98
99 /* check event list */
100 monitor(prec);
101@@ -500,6 +501,11 @@
102 prec->alst = prec->val;
103 }
104
105+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
106+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
107+ ) recGblGetTimeStamp(prec);
108+
109+
110
111 /* send out monitors connected to the value field */
112 if (monitor_mask){
113
114=== modified file 'src/rec/aoRecord.dbd'
115--- src/rec/aoRecord.dbd 2002-07-12 21:35:43 +0000
116+++ src/rec/aoRecord.dbd 2010-05-26 09:07:26 +0000
117@@ -291,4 +291,11 @@
118 prompt("Was OVAL modified?")
119 special(SPC_NOMOD)
120 }
121+ field(TSMD, DBF_MENU) {
122+ prompt("Timestamping mode")
123+ promptgroup(GUI_CONVERT)
124+ pp(TRUE)
125+ interest(1)
126+ menu(menuRecTime)
127+ }
128 }
129
130=== modified file 'src/rec/biRecord.c'
131--- src/rec/biRecord.c 2010-04-05 18:49:18 +0000
132+++ src/rec/biRecord.c 2010-05-26 09:07:26 +0000
133@@ -31,6 +31,7 @@
134 #include "devSup.h"
135 #include "errMdef.h"
136 #include "menuSimm.h"
137+#include "menuRecTime.h"
138 #include "recSup.h"
139 #include "recGbl.h"
140 #include "special.h"
141@@ -133,7 +134,7 @@
142 if ( !pact && prec->pact ) return(0);
143 prec->pact = TRUE;
144
145- recGblGetTimeStamp(prec);
146+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
147 if(status==0) { /* convert rval to val */
148 if(prec->rval==0) prec->val =0;
149 else prec->val = 1;
150@@ -236,6 +237,11 @@
151 prec->mlst = prec->val;
152 }
153
154+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
155+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
156+ ) recGblGetTimeStamp(prec);
157+
158+
159 /* send out monitors connected to the value field */
160 if (monitor_mask){
161 db_post_events(prec,&prec->val,monitor_mask);
162
163=== modified file 'src/rec/biRecord.dbd'
164--- src/rec/biRecord.dbd 2009-06-08 19:55:49 +0000
165+++ src/rec/biRecord.dbd 2010-05-26 09:07:26 +0000
166@@ -103,4 +103,12 @@
167 interest(2)
168 menu(menuAlarmSevr)
169 }
170+ field(TSMD, DBF_MENU) {
171+ prompt("Timestamping mode")
172+ promptgroup(GUI_CONVERT)
173+ pp(TRUE)
174+ interest(1)
175+ menu(menuRecTime)
176+ }
177+
178 }
179
180=== modified file 'src/rec/boRecord.c'
181--- src/rec/boRecord.c 2010-04-05 18:49:18 +0000
182+++ src/rec/boRecord.c 2010-05-26 09:07:26 +0000
183@@ -39,6 +39,7 @@
184 #include "menuIvoa.h"
185 #include "menuOmsl.h"
186 #include "menuYesNo.h"
187+#include "menuRecTime.h"
188 #include "epicsExport.h"
189
190 /* Create RSET - Record Support Entry Table*/
191@@ -252,7 +253,7 @@
192 if ( !pact && prec->pact ) return(0);
193 prec->pact = TRUE;
194
195- recGblGetTimeStamp(prec);
196+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
197 if((prec->val==1) && (prec->high>0)){
198 myCallback *pcallback;
199 pcallback = (myCallback *)(prec->rpvt);
200@@ -359,6 +360,11 @@
201 prec->mlst = prec->val;
202 }
203
204+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
205+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
206+ ) recGblGetTimeStamp(prec);
207+
208+
209 /* send out monitors connected to the value field */
210 if (monitor_mask){
211 db_post_events(prec,&prec->val,monitor_mask);
212
213=== modified file 'src/rec/boRecord.dbd'
214--- src/rec/boRecord.dbd 2009-06-08 19:55:49 +0000
215+++ src/rec/boRecord.dbd 2010-05-26 09:07:26 +0000
216@@ -148,4 +148,11 @@
217 promptgroup(GUI_OUTPUT)
218 interest(2)
219 }
220+ field(TSMD, DBF_MENU) {
221+ prompt("Timestamping mode")
222+ promptgroup(GUI_CONVERT)
223+ pp(TRUE)
224+ interest(1)
225+ menu(menuRecTime)
226+ }
227 }
228
229=== modified file 'src/rec/calcRecord.c'
230--- src/rec/calcRecord.c 2009-04-03 14:40:13 +0000
231+++ src/rec/calcRecord.c 2010-05-26 09:07:26 +0000
232@@ -32,6 +32,7 @@
233 #include "recSup.h"
234 #include "recGbl.h"
235 #include "special.h"
236+#include "menuRecTime.h"
237 #define GEN_SIZE_OFFSET
238 #include "calcRecord.h"
239 #undef GEN_SIZE_OFFSET
240@@ -117,7 +118,7 @@
241 recGblSetSevr(prec, CALC_ALARM, INVALID_ALARM);
242 } else prec->udf = isnan(prec->val);
243 }
244- recGblGetTimeStamp(prec);
245+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
246 /* check for alarms */
247 checkAlarms(prec);
248 /* check event list */
249@@ -325,6 +326,11 @@
250 prec->alst = prec->val;
251 }
252
253+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
254+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
255+ ) recGblGetTimeStamp(prec);
256+
257+
258 /* send out monitors connected to the value field */
259 if (monitor_mask){
260 db_post_events(prec, &prec->val, monitor_mask);
261
262=== modified file 'src/rec/calcRecord.dbd'
263--- src/rec/calcRecord.dbd 2007-03-13 16:39:53 +0000
264+++ src/rec/calcRecord.dbd 2010-05-26 09:07:26 +0000
265@@ -168,6 +168,13 @@
266 promptgroup(GUI_DISPLAY)
267 interest(1)
268 }
269+ field(TSMD, DBF_MENU) {
270+ prompt("Timestamping mode")
271+ promptgroup(GUI_CONVERT)
272+ pp(TRUE)
273+ interest(1)
274+ menu(menuRecTime)
275+ }
276 field(A,DBF_DOUBLE) {
277 prompt("Value of Input A")
278 pp(TRUE)
279@@ -298,4 +305,5 @@
280 interest(4)
281 extra("char rpcl[INFIX_TO_POSTFIX_SIZE(40)]")
282 }
283+
284 }
285
286=== modified file 'src/rec/calcoutRecord.c'
287--- src/rec/calcoutRecord.c 2010-04-05 18:49:18 +0000
288+++ src/rec/calcoutRecord.c 2010-05-26 09:07:26 +0000
289@@ -41,6 +41,7 @@
290 #include "calcoutRecord.h"
291 #undef GEN_SIZE_OFFSET
292 #include "menuIvoa.h"
293+#include "menuRecTime.h"
294 #include "epicsExport.h"
295
296
297 /* Create RSET - Record Support Entry Table*/
298@@ -276,7 +277,7 @@
299 writeValue(prec);
300 }
301 }
302- recGblGetTimeStamp(prec);
303+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
304 monitor(prec);
305 recGblFwdLink(prec);
306 prec->pact = FALSE;
307@@ -596,6 +597,11 @@
308 prec->alst = prec->val;
309 }
310
311+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
312+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
313+ ) recGblGetTimeStamp(prec);
314+
315+
316 /* send out monitors connected to the value field */
317 if (monitor_mask){
318 db_post_events(prec, &prec->val, monitor_mask);
319
320=== modified file 'src/rec/calcoutRecord.dbd'
321--- src/rec/calcoutRecord.dbd 2009-04-04 23:01:23 +0000
322+++ src/rec/calcoutRecord.dbd 2010-05-26 09:07:26 +0000
323@@ -359,6 +359,13 @@
324 promptgroup(GUI_DISPLAY)
325 interest(1)
326 }
327+ field(TSMD, DBF_MENU) {
328+ prompt("Timestamping mode")
329+ promptgroup(GUI_CONVERT)
330+ pp(TRUE)
331+ interest(1)
332+ menu(menuRecTime)
333+ }
334 field(A,DBF_DOUBLE) {
335 prompt("Value of Input A")
336 pp(TRUE)
337
338=== modified file 'src/rec/longinRecord.c'
339--- src/rec/longinRecord.c 2010-04-05 18:49:18 +0000
340+++ src/rec/longinRecord.c 2010-05-26 09:07:26 +0000
341@@ -32,6 +32,7 @@
342 #include "recSup.h"
343 #include "recGbl.h"
344 #include "menuYesNo.h"
345+#include "menuRecTime.h"
346 #define GEN_SIZE_OFFSET
347 #include "longinRecord.h"
348 #undef GEN_SIZE_OFFSET
349@@ -144,7 +145,7 @@
350 if ( !pact && prec->pact ) return(0);
351 prec->pact = TRUE;
352
353- recGblGetTimeStamp(prec);
354+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
355 if (status==0) prec->udf = FALSE;
356
357 /* check for alarms */
358@@ -291,6 +292,11 @@
359 prec->alst = prec->val;
360 }
361
362+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
363+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
364+ ) recGblGetTimeStamp(prec);
365+
366+
367 /* send out monitors connected to the value field */
368 if (monitor_mask)
369 db_post_events(prec, &prec->val, monitor_mask);
370
371=== modified file 'src/rec/longinRecord.dbd'
372--- src/rec/longinRecord.dbd 2002-07-12 21:35:43 +0000
373+++ src/rec/longinRecord.dbd 2010-05-26 09:07:26 +0000
374@@ -142,4 +142,11 @@
375 interest(2)
376 menu(menuAlarmSevr)
377 }
378+ field(TSMD, DBF_MENU) {
379+ prompt("Timestamping mode")
380+ promptgroup(GUI_CONVERT)
381+ pp(TRUE)
382+ interest(1)
383+ menu(menuRecTime)
384+ }
385 }
386
387=== modified file 'src/rec/longoutRecord.c'
388--- src/rec/longoutRecord.c 2010-04-05 18:49:18 +0000
389+++ src/rec/longoutRecord.c 2010-05-26 09:07:26 +0000
390@@ -34,6 +34,7 @@
391 #undef GEN_SIZE_OFFSET
392 #include "menuIvoa.h"
393 #include "menuOmsl.h"
394+#include "menuRecTime.h"
395 #include "epicsExport.h"
396
397
398 /* Create RSET - Record Support Entry Table*/
399@@ -178,7 +179,7 @@
400 if ( !pact && prec->pact ) return(0);
401 prec->pact = TRUE;
402
403- recGblGetTimeStamp(prec);
404+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
405
406 /* check event list */
407 monitor(prec);
408@@ -331,6 +332,11 @@
409 prec->alst = prec->val;
410 }
411
412+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
413+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
414+ ) recGblGetTimeStamp(prec);
415+
416+
417 /* send out monitors connected to the value field */
418 if (monitor_mask)
419 db_post_events(prec, &prec->val, monitor_mask);
420
421=== modified file 'src/rec/longoutRecord.dbd'
422--- src/rec/longoutRecord.dbd 2002-07-12 21:35:43 +0000
423+++ src/rec/longoutRecord.dbd 2010-05-26 09:07:26 +0000
424@@ -173,4 +173,11 @@
425 promptgroup(GUI_OUTPUT)
426 interest(2)
427 }
428+ field(TSMD, DBF_MENU) {
429+ prompt("Timestamping mode")
430+ promptgroup(GUI_CONVERT)
431+ pp(TRUE)
432+ interest(1)
433+ menu(menuRecTime)
434+ }
435 }
436
437=== modified file 'src/rec/mbbiDirectRecord.c'
438--- src/rec/mbbiDirectRecord.c 2010-04-05 18:49:18 +0000
439+++ src/rec/mbbiDirectRecord.c 2010-05-26 09:07:26 +0000
440@@ -31,6 +31,7 @@
441 #include "devSup.h"
442 #include "errMdef.h"
443 #include "menuSimm.h"
444+#include "menuRecTime.h"
445 #include "recSup.h"
446 #include "recGbl.h"
447 #include "special.h"
448@@ -181,7 +182,7 @@
449 if ( !pact && prec->pact ) return(0);
450 prec->pact = TRUE;
451
452- recGblGetTimeStamp(prec);
453+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
454
455 if(status==0) { /* convert the value */
456 epicsUInt32 rval = prec->rval;
457@@ -219,6 +220,11 @@
458 /* update last value monitored */
459 prec->mlst = prec->val;
460 }
461+
462+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
463+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
464+ ) recGblGetTimeStamp(prec);
465+
466 /* send out monitors connected to the value field */
467 if (monitor_mask){
468 db_post_events(prec,&prec->val,monitor_mask);
469
470=== modified file 'src/rec/mbbiDirectRecord.dbd'
471--- src/rec/mbbiDirectRecord.dbd 2005-11-15 23:35:34 +0000
472+++ src/rec/mbbiDirectRecord.dbd 2010-05-26 09:07:26 +0000
473@@ -84,6 +84,13 @@
474 interest(2)
475 menu(menuAlarmSevr)
476 }
477+ field(TSMD, DBF_MENU) {
478+ prompt("Timestamping mode")
479+ promptgroup(GUI_CONVERT)
480+ pp(TRUE)
481+ interest(1)
482+ menu(menuRecTime)
483+ }
484 field(B0,DBF_UCHAR) {
485 prompt("Bit 0")
486 pp(TRUE)
487
488=== modified file 'src/rec/mbbiRecord.c'
489--- src/rec/mbbiRecord.c 2010-04-05 18:49:18 +0000
490+++ src/rec/mbbiRecord.c 2010-05-26 09:07:26 +0000
491@@ -29,6 +29,7 @@
492 #include "devSup.h"
493 #include "errMdef.h"
494 #include "menuSimm.h"
495+#include "menuRecTime.h"
496 #include "recSup.h"
497 #include "recGbl.h"
498 #include "special.h"
499@@ -158,7 +159,7 @@
500 if ( !pact && prec->pact ) return(0);
501 prec->pact = TRUE;
502
503- recGblGetTimeStamp(prec);
504+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
505 if(status==0) { /* convert the value */
506 epicsUInt32 *pstate_values;
507 short i;
508@@ -313,6 +314,11 @@
509 /* update last value monitored */
510 prec->mlst = prec->val;
511 }
512+
513+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
514+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
515+ ) recGblGetTimeStamp(prec);
516+
517 /* send out monitors connected to the value field */
518 if (monitor_mask){
519 db_post_events(prec,&prec->val,monitor_mask);
520
521=== modified file 'src/rec/mbbiRecord.dbd'
522--- src/rec/mbbiRecord.dbd 2009-06-08 19:55:49 +0000
523+++ src/rec/mbbiRecord.dbd 2010-05-26 09:07:26 +0000
524@@ -466,4 +466,11 @@
525 interest(2)
526 menu(menuAlarmSevr)
527 }
528+ field(TSMD, DBF_MENU) {
529+ prompt("Timestamping mode")
530+ promptgroup(GUI_CONVERT)
531+ pp(TRUE)
532+ interest(1)
533+ menu(menuRecTime)
534+ }
535 }
536
537=== modified file 'src/rec/mbboDirectRecord.c'
538--- src/rec/mbboDirectRecord.c 2010-04-05 18:49:18 +0000
539+++ src/rec/mbboDirectRecord.c 2010-05-26 09:07:26 +0000
540@@ -38,6 +38,7 @@
541 #include "menuOmsl.h"
542 #include "menuIvoa.h"
543 #include "menuYesNo.h"
544+#include "menuRecTime.h"
545 #include "epicsExport.h"
546
547 /* Create RSET - Record Support Entry Table*/
548@@ -223,7 +224,7 @@
549 if ( !pact && prec->pact ) return(0);
550 prec->pact = TRUE;
551
552- recGblGetTimeStamp(prec);
553+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
554 /* check event list */
555 monitor(prec);
556 /* process the forward scan link record */
557@@ -299,6 +300,11 @@
558 /* update last value monitored */
559 prec->mlst = prec->val;
560 }
561+
562+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
563+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
564+ ) recGblGetTimeStamp(prec);
565+
566 /* send out monitors connected to the value field */
567 if (monitor_mask){
568 db_post_events(prec,&prec->val,monitor_mask);
569
570=== modified file 'src/rec/mbboDirectRecord.dbd'
571--- src/rec/mbboDirectRecord.dbd 2002-07-12 21:35:43 +0000
572+++ src/rec/mbboDirectRecord.dbd 2010-05-26 09:07:26 +0000
573@@ -211,6 +211,13 @@
574 interest(2)
575 menu(menuAlarmSevr)
576 }
577+ field(TSMD, DBF_MENU) {
578+ prompt("Timestamping mode")
579+ promptgroup(GUI_CONVERT)
580+ pp(TRUE)
581+ interest(1)
582+ menu(menuRecTime)
583+ }
584 field(IVOA,DBF_MENU) {
585 prompt("INVALID outpt action")
586 promptgroup(GUI_MBB)
587
588=== modified file 'src/rec/mbboRecord.c'
589--- src/rec/mbboRecord.c 2010-04-05 18:49:18 +0000
590+++ src/rec/mbboRecord.c 2010-05-26 09:07:26 +0000
591@@ -39,6 +39,7 @@
592 #include "menuOmsl.h"
593 #include "menuIvoa.h"
594 #include "menuYesNo.h"
595+#include "menuRecTime.h"
596 #include "epicsExport.h"
597
598 /* Create RSET - Record Support Entry Table*/
599@@ -256,7 +257,7 @@
600 if ( !pact && prec->pact ) return(0);
601 prec->pact = TRUE;
602
603- recGblGetTimeStamp(prec);
604+ if(prec->tsmd == menuRecTimeDEFAULT) recGblGetTimeStamp(prec);
605 /* check event list */
606 monitor(prec);
607 /* process the forward scan link record */
608@@ -393,6 +394,11 @@
609 /* update last value monitored */
610 prec->mlst = prec->val;
611 }
612+
613+ if((prec->tsmd == menuRecTimeMONDEADBAND && (monitor_mask & DBE_VALUE)) ||
614+ (prec->tsmd == menuRecTimeARCHDEADBAND && (monitor_mask & DBE_LOG))
615+ ) recGblGetTimeStamp(prec);
616+
617 /* send out monitors connected to the value field */
618 if (monitor_mask){
619 db_post_events(prec,&prec->val,monitor_mask);
620
621=== modified file 'src/rec/mbboRecord.dbd'
622--- src/rec/mbboRecord.dbd 2009-06-08 19:55:49 +0000
623+++ src/rec/mbboRecord.dbd 2010-05-26 09:07:26 +0000
624@@ -484,6 +484,13 @@
625 interest(2)
626 menu(menuAlarmSevr)
627 }
628+ field(TSMD, DBF_MENU) {
629+ prompt("Timestamping mode")
630+ promptgroup(GUI_CONVERT)
631+ pp(TRUE)
632+ interest(1)
633+ menu(menuRecTime)
634+ }
635 field(IVOA,DBF_MENU) {
636 prompt("INVALID outpt action")
637 promptgroup(GUI_MBB)

Subscribers

People subscribed via source and target branches