Hi Hinko,
> Correct me if I'm wrong, the DXP system can be composed of different
> number of channels (1 - 16 or even more). So the $(P)ElapsedRealTime
> shows the maximum Real time as seen by any of the active channels
> belonging to the DXP system.
That is correct.
I just checked into this. You are correct, there are 2 different PVs containing the string ElapsedReal
corvette:dxp/dxpApp/Db>grep ElapsedReal *
dxpHighLevel.template:record(ai, "$(P)$(R)ElapsedRealTime") {
dxpMED.template:record(ai,"$(P)ElapsedReal") {
ElapsedRealTime is in dxpHighLevel.template and is loaded once per channel. ElapsedRead is in dxpMED.template, and is loaded once per system. ElapsedRead is the one shown on the top-level screen (16element_dxp.adl). ElapsedRealTime is not contained in any .adl files supplied with DXP.
This is the code in dxpHighLevel.template for that record:
# This is really redundant with the MCA_ELAPSED_REAL parameter
record(ai, "$(P)$(R)ElapsedRealTime") {
field(DTYP, "asynFloat64")
field(INP, "$(IO)MCA_ELAPSED_REAL")
field(DESC, "number of triggers")
field(SCAN, "I/O Intr")
}
Note that there is a comment that says that ai record is really redundant with the .ERTM field in the MCA records. I think I put in the template file because the ai record is I/O Intr scanned, and so it might update even when the MCA record was not updating (because it was passively scanned).
Mark
________________________________________
From: [email protected] [[email protected]] on behalf of Hinko Kocevar [[email protected]]
Sent: Wednesday, January 23, 2013 6:13 AM
To: Tech Talk
Subject: Re: DXP ElapsedRealTime
Hi Mark,
On 01/22/2013 03:48 PM, Mark Rivers wrote:
> Hi Hinko,
>
>> I was expecting that $(P)ElapsedRealTime would hold some other time
>> value - maybe cumulative for all MCA channels..
>
> That PV holds the maximum elapsed real time for any channel. The calculation is done at line 2821 in NDDxp.cpp:
>
> getDoubleParam(i, mcaElapsedRealTime, &realTime);
> realTime = MAX(realTime, dvalue);
Line 2821 in NDDxp.cpp is more or less EOF in the code I'm looking at -
dxpR3-1. But on line 1814 and 1815 I can find the lines you are
referring too. Thanks!
Correct me if I'm wrong, the DXP system can be composed of different
number of channels (1 - 16 or even more). So the $(P)ElapsedRealTime
shows the maximum Real time as seen by any of the active channels
belonging to the DXP system.
>
>> Also since the 16element_dxp.adl looks like a "top" level panel, for
>> controling 16 detector channels, why would we need to make a separate
>> instance of it (according to dxpDoc.html) for each detector channel?
>
> It is a top-level panel and you don't need to make a separate instance of it for each detector channel. I searched dxpDoc.html for the string 16element_dxp.adl and I don't see any mention of making separate instances of it. Can you please send me the text that you are referring to?
I was reading this on some printed sheets I have - but I do not have
them at hand. The statement is more a deduction from compiling several
information from the code, DB and docs I have, rather than a direct
statement in the docs.
The implication was that dxpHighLevel.template defines the
$(P)ElapsedRealTime the 16element_dxp.adl is showing it. Since
16element_dxp.adl is obviously top level panel, I was surprised to see
it was showing a PV from the template that is instantiated multiple
times (dxpHighLevel.template). That is why the statement "according to
dxpDoc.html" was made, because it indeed does say, in the
dxpHighLevel.template section:
".. One instance of this database is loaded for each detector channel in
the system. .."
Looking at the online versions of panels, templates and docs again, I
can't find the use of $(P)ElapsedRealTime in any ADL panel - only
$(P)ElapsedReal is used. I need to verify this info with my printed docs
later on this week.
Thanks,
--
Hinko
>
> Thanks,
> Mark
>
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of Hinko Kocevar
> Sent: Tuesday, January 22, 2013 7:20 AM
> To: Tech Talk
> Subject: DXP ElapsedRealTime
>
> Hi,
>
> I'm trying to understand how the counting of Elapsed Real Time is done
> in the $(P)ElapsedRealTime record found in dxpHighLevel.template and
> seen on 16element_dxp.adl panel.
>
> I can understand that each MCA record (seen in the mca_simple.adl)
> counts its own Elapsed real time in the .ERTM field.
>
> I was expecting that $(P)ElapsedRealTime would hold some other time
> value - maybe cumulative for all MCA channels..
>
> Also since the 16element_dxp.adl looks like a "top" level panel, for
> controling 16 detector channels, why would we need to make a separate
> instance of it (according to dxpDoc.html) for each detector channel?
>
> Best regards,
>
> --
> Hinko Kocevar
>
- References:
- DXP ElapsedRealTime Hinko Kocevar
- RE: DXP ElapsedRealTime Mark Rivers
- Re: DXP ElapsedRealTime Hinko Kocevar
- Navigate by Date:
- Prev:
Re: DXP ElapsedRealTime Hinko Kocevar
- Next:
Re: sequencer programs in an IOC Benjamin 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:
Re: DXP ElapsedRealTime Hinko Kocevar
- Next:
sequencer programs in an IOC James F Ross
- 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
|