Hi Andrew and Janet,
While Janet is looking at the plot widget, there is a serious performance problem that should be fixed if at all possible. If you create a waveform with a large number of elements, so that the plot update is rather slow, then you can clearly see the following: when a new array is posted the plot widget first replots the existing array, and then plots the new array. This slows things down by a factor of 2, which is very significant when the number of elements is large, and the plot is really slow anyway.
Thanks,
Mark
________________________________________
From: [email protected] [[email protected]] on behalf of Andrew Johnson [[email protected]]
Sent: Friday, February 24, 2012 12:46 PM
To: [email protected]
Cc: Eric Norum
Subject: Re: CSS X-Y Graph
Hi John,
On 2012-02-24 John Dobbins wrote:
>
> This works for me with the following caveat. If the number of points in
> the waveform becomes greater than the number of points when the MEDM
> screen began execution the display does not adjust. It handles reducing
> the number of points and then increasing back to the original number but
> if I want to exceed the number of points that was in effect when the
> screen began execution I have to switch to Edit and then back to Execute.
>
> Is this what I should expect?
I can believe that MEDM currently behaves like that, although it seems like
that should be a bug. I suspect what's happening is that the graph widget is
using the initial value from the count channel in the size of its subscription
to the waveform data channel. Closing and reopening the screen would delete
and recreate those channels, cause the widget to read a new count value and
thus subscribe for a larger number of data points. This is what you're seeing
happen.
I can see two conflicting uses for the count channel though and IMHO the
second one makes it hard to change the existing behavior, although that
doesn't mean we can't change the code so you can do what you want.
1. In your and Eric's case the count channel is being used to work around the
problem that older versions of CA didn't support variable length arrays. If
MEDM were to subscribe for the waveform data giving a length of zero, recent
versions of Base would only give it NORD elements automatically (older
versions would always supply NELM elements although the values beyond NORD
would all be zero). I have asked Janet Anderson to look at how hard it would
be to be able to configure the graph widget to do this.
2. The other case that I am concerned about is where the waveform might
contain a large amount of valid data, and the count channel is being used to
limit the graph to only subscribe for and display a small initial portion of
the array. If we were to modify MEDM to *not* use the count channel as a
limit to the subscription size then we might break existing control systems as
we could overwhelm the IOC's available bandwidth.
I think that adding the ability to tell the widget to use the new variable-
length array support should provide the functionality that you want without
breaking any existing uses. Hopefully Janet can find an easy way to add this
feature and come out with a new release of MEDM that supports it (as long as
you're using Base 3.14.12 for both your IOC and client, and you're not going
through a gateway, since neither it nor the CAS support variable length arrays
yet, unfortunately).
- Andrew
--
Never interrupt your enemy when he is making a mistake.
-- Napoleon Bonaparte
- Replies:
- Re: CSS X-Y Graph Andrew Johnson
- References:
- CSS X-Y Graph John Dobbins
- Re: CSS X-Y Graph Eric Norum
- Re: CSS X-Y Graph John Dobbins
- Re: CSS X-Y Graph Andrew Johnson
- Navigate by Date:
- Prev:
Re: QT-based tools: Expressions of interest requested dreid
- Next:
Re: CSS X-Y Graph Andrew Johnson
- 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: CSS X-Y Graph Andrew Johnson
- Next:
Re: CSS X-Y Graph Andrew Johnson
- 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
|