I have an application where multiple clones "feed" data to an Executive routine that includes a (scrolling) chart displaying the data points (10 Hz) from one of the selected clones. The Executive gets its points from a queue, and the Chosen Clone puts its points into the queue. Since I want to see "all of the data", each Clone maintains a "history" in the form of a Lossy Queue (very similar to the ring buffer inside the Chart -- it "remembers" N points then starts overwriting).
To make this work properly, I need to (at Run Time) create my Clone "History Queue" to be the same size as the History buffer of the Chart. But there's a problem -- there is no way to set the size of the Chart buffer at Run Time (I do realize this is because the buffer is allocated at compile time, but if we can allocate a lossy queue at run time, why can't a similar technology be used to allocate the buffer for a chart at run time?). So you need to right-click the chart and manually set it. OK, so at run time, we can use the History Size property to allocate our Lossy Queue to be the same size. Except there no History Size property. There is a History property that returns the History, but if it's a new chart, the History is empty, so the size returned is zero! So how do you figure out its size? [I worked out a method -- simply put "junk" (anything) into the chart, retrieve the History at each step, and stop when the History stops growing. But what an awkward kludge, not to mention a time-waster ...].
I'd like to propose two (ideally) changes to Charts. First, figure out a way to allow users to programmatically set (or change) the size of the Chart History. Should this really not be practical, at least provide a Property (read-only) to return the size manually set into the Chart.
Thanks for your consideration.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Any idea that has received less than 2 kudos within 2 years after posting will be automatically declined.