On Sonntag, 12. September 2010, Xu, Chengcheng wrote:
> I am trying to test out the EPICS record's new DBE property.
You mean the new CA event type called DBE_PROPERTY?
To summarize: this nice new feature is not yet fully implemented for all
record types; also, camonitor misses an option to specify the request
type to make this useful. I tried to add it but it doesn't work.
> We are
> assuming when the release note states "support subscriptions that get
> events whenever a property of the PV changes."
Note that event types concern properties of PVs as CA sees them. CA has
no notion of records or fields.
> Does it mean if the meta data i.e value of ioc:example:LOLO
You mean ioc:example.LOLO?
^
> changes
> and we were using probe or camonitor to monitor the ioc:example pv,
> it will change the value of LOLO since LOLO is a property of the pv.
It depends on whether the record support code of the record type in
question has been updated to send events when its LOLO field has
changed. The CA server depends on the record support to notify it of
such events.
As the release notes state, the only record types that have been changed
to send DBE_PROPERTY events are mbbi and mbbo. So you'll probably have
no luck with LOLO & co, as these are used in analog type records
(ai,ao,calc,...). Of course you could hack these record supports (or
some of them) to add this feature.
> We are also interested in knowing how to use camonitor to display the
> meta data of a pv?
Looking at 'camonitor -h' I see no option for specifying the DBR type,
so it seems that --apart from timestamp and status/severity--
properties are not supported yet. This is in contrast to caget which
has the -d option, so you could say
caget -d DBR_GR_DOUBLE ...
> If we camonitor ioc:example, how can we monitor
> the meta datas without doing camonitor ioc:example ioc:example.LOLO
A work-around could be to set up a
camonitor -mp ...
to get only the DBE_PROPERTY events, and then arrange to do a caget with
appropriate DBR type each time camonitor reports an event. You might
need to scan the camonitor output for newlines (signifying an event).
This is messy and very inefficient, as caget will open and close a
channel each time camonitor reports an event.
The better solution is to hack a -d option into camonitor. I tried this
with the Perl version camonitor.pl (attached). This was a quick cut &
paste job, and for reasons I cannot determine it does not work as I
expected: the request type gets reduced to DBR_TIME_DOUBLE:
ben@sarun[1]: ~/tmp > ./camonitor.pl -dDBR_GR_DOUBLE -mp benHost:ai1
benHost:ai1
Native data type: DBR_DOUBLE
Request type: DBR_TIME_DOUBLE
Element count: 1
Value: 4
Timestamp: 2010-08-12 16:09:27.717296
Status: LOW
Severity: MINOR
(Same result with DBR_CTRL_DOUBLE). I suppose this has to do with either
CA itself or the Perl CA bindings. Probably Andrew or Jeff can shed
some light upon the issue...
Cheers
Ben
Attachment:
camonitor.pl
Description: Perl program
- Replies:
- Re: Testing the new DBE property in EPICS R3-14-11 Ben Franksen
- Re: Testing the new DBE property in EPICS R3-14-11 Ralph Lange
- References:
- Testing the new DBE property in EPICS R3-14-11 Xu, Chengcheng
- Navigate by Date:
- Prev:
Testing the new DBE property in EPICS R3-14-11 Xu, Chengcheng
- Next:
Re: Testing the new DBE property in EPICS R3-14-11 Ben Franksen
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
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:
Testing the new DBE property in EPICS R3-14-11 Xu, Chengcheng
- Next:
Re: Testing the new DBE property in EPICS R3-14-11 Ben Franksen
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
<2010>
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|