Jump to content
Software FX Community

Question about forcing a "realtime" XY chart


User (Legacy)
 Share

Recommended Posts

Hi,

I am curious if there is a way that I can pass x and y values into a

table at differing times. By this I mean that I am getting information from

a source that gives me the X and Y data at different time and in different

function calls( caching this data to write them together is not my

problem ). The problem that I have run into is the fact that I do not know

how to force ChartFx to not over write old points when I pass new ones in(

which is why I currently use the COD_ADDPOINTS and COD_REALTIME flags to add

data to charts that do not need X values. Is there a way to do this? I

could store all the points and write them all at once, but that could

potentially be a large amount of data to hold onto. Is there a way that I

could keep track of the array index of XValueEX and ValueEx and then add

point that way? Does OpenDataEx flush its data if not passed the

COD_ADDPOINTS flag? Also what exactly does the COD_REMOVE flag do inside of

the CloseData function?

BTW I am using chartFx in VC++ w/o MFC.

Thanks in advance.

-Mac

Link to comment
Share on other sites

1) COD_ADDPOINTS is not supported for X-Values in Chart FX 5.x (Charts with

X-Values can not use COD_ADDPOINTS),

2) Data is not removed when new data comes in, doing OpenData COD_VALUES,

Series+1,Values+1 will keep all data as it was and will add 1 new point for

each series, and one whole new series. But the data that was there will

remain unchanged.

--

FP

Software FX, Inc.

Link to comment
Share on other sites

Question about the second part:

Do I have to add all of the same point over again? From what I gather that

you are saying I have a scenario like this:

OpenDataEx( COD_VALUES, 2, 1 )

ValueEX[0][0] = NUM

ValueEX[1][0] = NUM

CloseData()

//later

OpenDataEx( COD_VALUES, 2, 2 )

//does this need to be done again?

ValueEX[0][0] = NUM

ValueEX[1][0] = NUM

//Or can I just do this?

ValueEX[0][1] = NUM

ValueEX[1][1] = NUM

CloseData()

what I am trying to do is just add more points to the same amount of

series.....is what I did correct?

-Mac

"SoftwareFX Support" <support@softwarefx.com> wrote in message

news:QaGEC7yWCHA.3136@webserver1.softwarefx.com...

> 1) COD_ADDPOINTS is not supported for X-Values in Chart FX 5.x (Charts

with

> X-Values can not use COD_ADDPOINTS),

>

> 2) Data is not removed when new data comes in, doing OpenData COD_VALUES,

> Series+1,Values+1 will keep all data as it was and will add 1 new point

for

> each series, and one whole new series. But the data that was there will

> remain unchanged.

>

> --

> FP

> Software FX, Inc.

>

>

Link to comment
Share on other sites

No, you don't need to do it again,

ValueEX[0][0] and ValueEX[1][0] will remain unchanged.

This is easy proved by building a small test program with two buttons:

Private Sub Command1_Click()

ChartFX1.OpenDataEx COD_VALUES, 2, 1

ChartFX1.ValueEx(0, 0) = 10

ChartFX1.ValueEx(1, 0) = 20

ChartFX1.CloseData COD_VALUES

End Sub

Private Sub Command2_Click()

ChartFX1.OpenDataEx COD_VALUES, 2, 1

ChartFX1.ValueEx(0, 1) = 30

ChartFX1.ValueEx(1, 1) = 40

ChartFX1.CloseData COD_VALUES

End Sub

You will see that data assigned in Command1_Click remains after doing

Command2_Click.

--

FP

Software FX, Inc.

Link to comment
Share on other sites

  • 1 year later...

In an old post you wrote:

> 1) COD_ADDPOINTS is not supported for X-Values in Chart FX 5.x (Charts with

> X-Values can not use COD_ADDPOINTS),

>

I should use ChartFX for creating charts with:

1) multiple series of samples (X,Y)

2) samples in different series having X values belonging to the same value range (e.g, real numbers from -1,234 up to 54,67) and always increasing

Series Samples

1 (21, -1.2), (19, -1.13), (1, -1.05), (13, -1.01),(41, -0.3), (22, 7.2), (13, 8.56), (41, 9.3)

2 (21, -1.25), (19, -1.23), (1, -1.02), (13, 18.5), (41, 19.3), (22, 27.2), (13, 28.01),(41, 29.3)

3 (21, -1.09), (19, -1.03), (1, 1.05), (13, 1.71), (41, 5.3), (22, 7.21), (13, 8.01), (41, 19.3)

Note that in different series, X values are independent.

3) I have to add samples in different chunks, ie., a first block of ten samples in a first step, a second block of 100 samples in a second block, and so on.

4) I want unlimited chart (i.e., i cannot foresee in advance how much samples i will manage, but if NSamples > MaxSamples i can throw an exception).

The limitation you describe is still valid?

Is there a workaround to reach the same result?

Thank you in advance for your attention.

Lroenzo Saladini

INTEGRA Sistemi

Link to comment
Share on other sites

The limitation:

> COD_ADDPOINTS is not supported for X-Values in Chart FX 5.x (Charts with

> X-Values can not use COD_ADDPOINTS),

Applies ONLY to real-time charts, charts with a circular buffer that scroll

automatically as the buffer cycles. This restriction DOES NOT apply to

regular charts.

Also, in Chart FX 6.2, X-Values are supported in real-time charts. What

platform are you sing ? (COM, .NET, Java ?)

> 1) multiple series of samples (X,Y)

Multiple series are supported.

>2) samples in different series having X values belonging to the same value

range (e.g, real

> numbers from -1,234 up to 54,67) and always >increasing

X-Values are independent by series. They can be the same for all series or

different. Your choice.

> 3) I have to add samples in different chunks, i.e.., a first block of ten

samples in a first step, a

> second block of 100 samples in a second block, and so on.

Depending on what do you want to do with the old points as you add new ones,

you may or may not need a real-time chart. If you are simply adding points

"forever" not having a predetermined buffer size, you don't need Real-Time

charts and therefore won't be affected by the restriction described above.

Also, if you are using Chart FX 6.0 or higher, this restriction does not

apply to you.

> 4) I want unlimited chart (i.e., i cannot foresee in advance how much

samples i will manage,

> but if NSamples > MaxSamples i can throw an exception).

You can add data to a chart a any time simply by increasing the number of

points. For example:

chart.OpenDataEx (COD_VALUES, <number of series>, <old number of values> +

100)

' Set he data for new 100 points (old points will remain untouched)

chart.CloseData COD_VALUES

--

FP

Software FX, Inc.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...