EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: how to get the exect IOC time of event triggered
From: Ralph Lange <[email protected]>
To: huangsong <[email protected]>
Date: Tue, 14 Jun 2005 11:35:01 +0200
Hi Huang Song,

Your problem is based on a simple misunderstanding: The IOC timestamps are so closely related to the matching data, that for Channel Access timestamps are part of the data structure, not the event structure.

I.e., the void pointer dbr inside the event_handler_args points to the value, which is embedded in one of the many different DBR_... types - you will get your data in the DBR type that you specify when subscribing to a channel. If you subscribe requesting DBR_TIME_... data, you will get the timestamp and the related value in one structure that dbr points to.

Check the CA Reference Manual (under Channel Access Data Types) or db_access.h for the available types and their respective data structures.

Good luck!
Ralph


huangsong wrote:


Hello, everyone

I'm now programming using channel access client library. By CA Monitor, we can get the
event messages after we use ca_add_masked_array_event() to register on some PVs.

If there are some events triggered, we get messages which include things like:
channel name
pv values
status


But in the messages, I can't get the exact IOC time when it trigger the event. The event_handler_args defined like this in cadef.h:


typedef struct  event_handler_args{
       void            *usr;   /* User argument supplied when event added      */
       struct channel_in_use
                       *chid;  /* Channel id                                   */
       long            type;   /* the type of the value returned               */
       long            count;  /* the element count of the item returned       */
       READONLY void   *dbr;   /* Pointer to the value returned                */
       int             status; /* ECA_XXX Status of the requested op from server       */
}evargs;


Is there any parameter including the exect time on IOC when the event triggered? I hope it should not be the responsibility of Event Handler routines.


Best wishes and regards, Huang song IHEP

[email protected]
2005.06.06



References:
how to get the exect IOC time of event triggered huangsong

Navigate by Date:
Prev: how to get the exect IOC time of event triggered huangsong
Next: problem during "make" Chithra Karunakaran
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: how to get the exect IOC time of event triggered huangsong
Next: problem during "make" Chithra Karunakaran
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·