Merge lp:~khkim/epics-base/fix-timestamp into lp:~epics-core/epics-base/3.14
- fix-timestamp
- Merge into 3.14
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andrew Johnson | Disapprove | ||
Review via email: mp+26023@code.launchpad.net |
Commit message
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.
Ralph Lange (ralph-lange) wrote : | # |
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.
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.
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).
Unmerged revisions
- 12070. By Kukhee Kim <khkim@linux-e4nv>
-
timestamp on value change
Preview Diff
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) |
Can you give me a use case for this feature?