ProEssentials charting components provides simple features to efficiently handle your oscilloscope-type real-time and strip-chart data.
When installing the ProEssentials product or evaluation. There are several examples that will simulate an oscilloscope or real-time implementation.
The GigaPrime2D Winforms example project demonstrates the continuous re-passing and re-processing of 100 million data points.
Within the PeDemo example project that is replicated in WPF, Winforms, C++, VB.NET, and Delphi, see example 115 by searching the project's source-code for '115'.
The below video provides a quick look at GigaPrime2D in action.
The code below shows the Timer Tick event handler. Changing the local data fYDataToChart is all that is needed to update the chart.
private void Timer1_Tick(object sender, System.EventArgs e)
{
Timer1.Stop();
Random rn = new Random();
int iRandomOffset = rn.Next(600000); // pick a new random start of waveform data to produce variation
// Pass 100 Million Data points from larger prepared array to charted array fYDataToChart
// ProEssentials is set up to use the pointer of fYDataToChart as source for 5 subsets data
// Changing the data inside fYDataToChart is all that is needed to change the chart
Array.Copy(fYDataPool, iRandomOffset, fYDataToChart, 0, 20000000);
Array.Copy(fYDataPool, iRandomOffset + 24000000, fYDataToChart, 20000000, 20000000);
Array.Copy(fYDataPool, iRandomOffset + 48000000, fYDataToChart, 40000000, 20000000);
Array.Copy(fYDataPool, iRandomOffset + 72000000, fYDataToChart, 60000000, 20000000);
Array.Copy(fYDataPool, iRandomOffset + 96000000, fYDataToChart, 80000000, 20000000);
Pesgo1.PeData.ReuseDataX = true; // tells chart x data is not changing, reuse current xdata buffer
Pesgo1.PeFunction.Force3dxVerticeRebuild = true; // lets chart know it needs to process new data stored in YDataToChart
Pesgo1.Invalidate();
Timer1.Start();
}
How is ProEssentials the fastest?
First, ProEssentials efficiently transfers all new data from the CPU to the GPU using optimized memory copy logic.
Second, a compute shader is utilized to perform lossless filtering of the data, reducing it to an optimal quantity based on the screen resolution.
Compute shaders operate with the power of over 3,000 CPU cores, working in parallel to tackle problems simultaneously. This enables filtering to be completed instantaneously.
Third, a second tier compute shader processes the filtered data into Vertex and, optionally, Index buffers, which the GPU utilizes to render the frame. This process is executed nearly instantaneously.
Competitors drain your end-users' laptop battery by relying on generic open-source graphics/gaming logic that continuously outputs frames as if a game. Don't turn your app into a power hogging game. In contrast, ProEssentials generates frames only on demand, sipping power to render graphics in your solutions.
Don’t just take our word for it—put us to the test. Simply edit our GigaPrime3D or GigaPrime2D examples using a competitor’s solution and compare the performance, power requirements, rendering quality, intelligence, and the amount of code required to replicate the demo’s end-user functionality.
귀사의 조직과 최종 사용자들에게 가장 쉽고 가장 전문적인 혜택을 제공함으로써 귀사께서 성공하시는 것이 당사의 최우선 목표입니다.
프로에센셜은 자체 차트 컴포넌트가 필요한 전기 공학 전문가들로부터 태어났습니다. 프로에센셜을 사용하는 탑 엔지니어링 기업들 명단에 참여히세요.
프로에센셜 고객이 되어주셔서 감사드리며, 프로에센셜 차트 제작 엔진을 연구해주셔서 감사드립니다.