ASE Home Page Products Download Purchase Support About ASE
ChartDirector General
Forum HomeForum Home   SearchSearch

Message ListMessage List     Post MessagePost Message

  "Realtime" Chart with EXTERNAL time source?
Posted by Steve Valliere on Mar-27-2018 22:02
I would love to use ChartDirector's realtime graphs (along with the meters I already use) but I have not been able to find any way to control the TIME associated with each value.  All of the data I need to plot is time tagged when it is read by the front end hardware so that all machines in the network see the same time for each value received.  So instead of a simple value array, I would need to provide an array of (value,time) pairs.  Depending on the front end, values can arrive from almost 1/ms to 1 every 10 seconds.  Still, I could update the graph's data set and ask it to be redrawn at a reasonable interval.

Is this possible?  If not, is there any chance that it will ever be possible?

  Re: "Realtime" Chart with EXTERNAL time source?
Posted by Peter Kwan on Mar-28-2018 04:00
Hi Steve,

Yes, you can use external time source.

The ChartDirector distribution includes some realtime chart examples. There are also some extra multi-threading realtime chart examples in the library section of our web site. See:

http://www.advsofteng.com/doc/cdcpp.htm#realtimezoomscroll.htm

http://www.advsofteng.com/tutorials/extra.html

In all of our realtime charts sample code, both the timestamp and the data values are generated by a random sequence generator, and both the timestamps and data values are then stored in arrays.

For your case, you can store your real data values as well as your externally generated timestamps in the arrays, and use those arrays to create the chart.

In the sample code, no matter how fast or slow the data arrives, the chart is always updated at a regular rate (eg. every 250ms or 100ms, etc) indpenent of how fast or slow the data are updated. For example, the data arrive every 1ms, while the chart can updated every 100ms.

If you think the chart is updated too fast for your case (eg. the data arrive every 10s, but the chart updates every 100ms), you can modify the code so that when the chart is about to update, it will check if new data have arrived since the last update, and if not, it just skips the update.

Regards
Peter Kwan