DPlot Forum Index DPlot
http://www.dplot.com
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

How to plot Y array with constant X increment

 
Post new topic   Reply to topic    DPlot Forum Index -> C, C++, C#
View previous topic :: View next topic  
Author Message
rooney



Joined: 27 Dec 2007
Posts: 3

PostPosted: Thu Dec 27, 2007 1:11 pm    Post subject: How to plot Y array with constant X increment Reply with quote

I want to use DPLOT Jr to plot the values of an analog-to-digital converter (ADC).
The plot should display three curves as the the converter provides three analog channels.

The Y axis relate to the sample values of the converter. The x axis relates to the samples numbers (1, 2, 3, 4...).
A LabWindows program controls the ADC and reads blocks of 10000 samples. This blocks will be "send" to DPLOT as soon as they been read from the ADC.

For example: samples to read = 50000, block size = 10000, channels = 3
The LabWindows program reads the first block of 10000 samples of channel 1. Sends the data to DPLOT and read the next block of channel 1. The will be repeat 5 times for channel 1. Dlot should append the data always to the same curve as any data belongs to channel 1. X axis will be numberd from 1 to 50000.
Afterwards channel 2 will be read and send to DPLOT (in blocks of 10000 samples). Channel 2 should be the second curve in the same plot.
Afterwards channel 3 will be plotted the same way as channel 1 and 2.

To reduce memory requirements I don't want to create a x array holding values 1,2,3,4...
Is it possible to send Y data to DPLOT and the x axis increments automatically?
How to add data to a specific curve?+


Thanks for your help!!!!
Back to top
View user's profile Send private message
DPlotAdmin
Site Admin


Joined: 24 Jun 2003
Posts: 2310
Location: Vicksburg, Mississippi

PostPosted: Thu Dec 27, 2007 2:59 pm    Post subject: Reply with quote

From your description I think the easiest thing to do will be to call DPlot_AddData (or DPlot_AddData8), as in:

int DocNum=DPlot_Command(0,"[FileNew()]");
DPlot_AddData8(DocNum, DATA_XYXY, 10000, 1, &x[0], &y[0]);
DPlot_AddData8(DocNum, DATA_XYXY, 10000, 1, &x[10000], &y[10000]);
DPlot_AddData8(DocNum, DATA_XYXY, 10000, 1, &x[20000], &y[20000]);
DPlot_AddData8(DocNum, DATA_XYXY, 10000, 1, &x[30000], &y[30000]);
DPlot_AddData8(DocNum, DATA_XYXY, 10000, 1, &x[40000], &y[40000]);
.
.
DPlot_AddData8(DocNum, DATA_XYXY, 10000, 2, &x[0], &y[0]);

etc.

Quote:
To reduce memory requirements I don't want to create a x array holding values 1,2,3,4...


Unfortunately there is no way to do this now. This will require a change to DPLOTLIB.DLL and/or to the executables. What would be nice is if the X pointer is NULL, then X values are automatically created. The only messy part about this is figuring out what should be done on subsequent calls - previous calls might have included X, for example. Perhaps the best solution is to just not worry about what has been done previously and if X is missing then assign the index of the point to X. I'll make a serious effort at adding this change to the next release (most likely available Jan 1).
_________________
Visualize Your Data
support@dplot.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rooney



Joined: 27 Dec 2007
Posts: 3

PostPosted: Thu Dec 27, 2007 5:10 pm    Post subject: Reply with quote

Thanks a lot!!!!!

If this feature would be included in the next release it would simplify some applications.
At the moment I may keep memory requirements low by reducing the block size.
Back to top
View user's profile Send private message
DPlotAdmin
Site Admin


Joined: 24 Jun 2003
Posts: 2310
Location: Vicksburg, Mississippi

PostPosted: Tue Jan 01, 2008 4:12 pm    Post subject: Reply with quote

'Tis done. Thanks for your input.
_________________
Visualize Your Data
support@dplot.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rooney



Joined: 27 Dec 2007
Posts: 3

PostPosted: Wed Jan 02, 2008 2:12 pm    Post subject: It does not work Reply with quote

I've tested the new dll/lib and the new version of DPlot JR but some strange things are going on.

if I set x=NULL and execute the following function in my application
DPlot_AddData(DocNum, DATA_XYXY, samplesToRead, 1, &x[0], &y[0]);
the plot looks like this:
http://www.poms-engineering.at/share/new_dll_x=NULL.png

if I use x as array and fill the array
for(index = 1; index <= samplesToRead; index++)
{
x[index - 1] = (float)sensData.currentSample - sensData.firstReqSamp + index;
}
and execute DPlot_AddData(DocNum, DATA_XYXY, samplesToRead, 1, &x[0], &y[0]);
the plot looks like this:
http://www.poms-engineering.at/share/new_dll_x=array.png

With the older version the result looks like the plot with the new version when x=NULL


What's wrong?
Back to top
View user's profile Send private message
DPlotAdmin
Site Admin


Joined: 24 Jun 2003
Posts: 2310
Location: Vicksburg, Mississippi

PostPosted: Wed Jan 02, 2008 2:26 pm    Post subject: Reply with quote

Instead of:

DPlot_AddData(DocNum, DATA_XYXY, samplesToRead, 1, &x[0], &y[0]);

use

DPlot_AddData(DocNum, DATA_XYXY, samplesToRead, 1, NULL, &y[0]);
_________________
Visualize Your Data
support@dplot.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
DPlotAdmin
Site Admin


Joined: 24 Jun 2003
Posts: 2310
Location: Vicksburg, Mississippi

PostPosted: Fri Jan 04, 2008 12:16 pm    Post subject: Reply with quote

I'm sorry, I should have paid more attention here. It was just dumb luck that version 2.1.5 worked for me initially. I've uploaded 2.1.5.1 just now (DPlot and DPlot Jr) and these will work as expected.

If you're a licensed user you can get version 2.1.5.1 with the Check for Updates command on the Help menu or by using the link in the last update message.
_________________
Visualize Your Data
support@dplot.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    DPlot Forum Index -> C, C++, C# All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group