We are building an application that receives data at a rate of 264 samples per second. The values we are trying to plot are too large to use doubles so we are using floats instead. As soon as a second or two of data is appended to the chart’s dataseries the application freezes and I get the following message in the debug output window of Visual Studio.
SciChartSurface didn’t render, because an exception was thrown:
Message: Array dimensions exceeded supported range.
Stack Trace: at System.Collections.Generic.List1.set_Capacity(Int32 value)
1.EnsureCapacity(Int32 min)
at System.Collections.Generic.List
at System.Collections.Generic.List1.Add(T item)
1 tickRange, Double delta, Double majorDelta, IList
at SciChart.Charting.Numerics.TickProviders.NumericTickProvider.CalculateTicks(IRange1 results)
1 tickRange, IAxisDelta
at SciChart.Charting.Numerics.TickProviders.NumericTickProvider.CalculateMajorTicks(IRange1 tickDelta)
1.SciChart.Charting.Numerics.TickProviders.ITickProvider.GetMajorTicks(IAxisParams axis)
at SciChart.Charting.Numerics.TickProviders.TickProvider
at SciChart.Charting.Visuals.Axes.AxisCore.CalculateTicks()
at SciChart.Charting.Visuals.Axes.AxisBase.OnDraw(IRenderContext2D renderContext, IRenderPassData renderPassData)
at vme.scn(ISciChartSurface cbn, IRenderContext2D cbo)
at vme.RenderLoop(IRenderContext2D renderContext)
at SciChart.Charting.Visuals.SciChartSurface.DoDrawingLoop()
How can we get this data to render on the chart without crashing? Ideally we would like to use the FIFO feature of SciChart as well but at this point we would just settle for getting the chart to render.
- Tim Stephansen asked 3 years ago
- You must login to post comments
Hi Tim
I noticed the question was closed, did you do this yourself? Do you still need assistance?
First up: Double is larger and higher precision than float. Did you mean the other way around?
Next – this stack trace suggests a problem in choosing of Major/Minor delta on the axis. Basically SciChart has tried to calculate infinite gridlines for some reason. This should not happen under normal operation, but if you set Major/Minor delta to a very small value, then it can.
Stack Trace: at System.Collections.Generic.List1.set_Capacity(Int32 value)
at System.Collections.Generic.List1.EnsureCapacity(Int32 min)
at System.Collections.Generic.List1.Add(T item)
at SciChart.Charting.Numerics.TickProviders.NumericTickProvider.CalculateTicks(IRange1 tickRange, Double delta, Double majorDelta, IList1 results)
at SciChart.Charting.Numerics.TickProviders.NumericTickProvider.CalculateMajorTicks(IRange1 tickRange, IAxisDelta1 tickDelta)
at SciChart.Charting.Numerics.TickProviders.TickProvider1.SciChart.Charting.Numerics.TickProviders.ITickProvider.GetMajorTicks(IAxisParams axis)
at SciChart.Charting.Visuals.Axes.AxisCore.CalculateTicks()
at SciChart.Charting.Visuals.Axes.AxisBase.OnDraw(IRenderContext2D renderContext, IRenderPassData renderPassData)
Let me know if you need further assistance,
Best regards,
Andrew
- Andrew Burnett-Thompson answered 3 years ago
-
Hi Andrew, I closed the question because I figured it out. I can’t remember what it was exactly but I think it had to do with AutoTicks and the major and minor delta. Either way I have it working now. Thank you, Tim
- You must login to post comments
Please login first to submit.