Jump to content
Software FX Community

Are realtime charts available for clientserver 6.2?


User (Legacy)
 Share

Recommended Posts

I am trying to make sure I can make a realtime chart.  However I can only

ever see the last point that I add in the realtime chart. Am I doing

something incorrectly here? OnBnClickedButton1 is used to create and setup

the chart. OnBnClickedButton2 is used to add points to the chart.

void CDynamicDlg::OnBnClickedButton2()

{

//...'Finally when the timer calls set the new data

if (nOffset == 20) {

m_chartPtr->RealTimeSettings->Style = (Cfx62::RealTimeStyle)(

Cfx62::RealTimeStyle_NoWaitArrow );

}

m_chartPtr->OpenData( (Cfx62::COD )(Cfx62::COD_Values ||

Cfx62::COD_AddPoints ),2,1 );

//'Set two new points for series 1

m_chartPtr->Value->PutItem(0,0, -50 + rand() * 100 );

m_chartPtr->Value->PutItem(1,0, -50 + rand() * 100 );

char buf[20];

m_chartPtr->Legend->PutItem( 0, itoa( nOffset + 1, buf, 10 ) );

//'Close the channel forcing scroll

m_chartPtr->CloseData( (Cfx62::COD )( Cfx62::COD_Values ||

Cfx62::COD_RealTime || Cfx62::COD_ScrollLegend ) );

nOffset++;

}

void CDynamicDlg::OnBnClickedButton1()

{

CRect rc;

GetDlgItem(IDC_FRAME)->GetWindowRect(rc);

ScreenToClient(rc);

m_chartWnd.CreateControl(__uuidof(Cfx62::Chart), NULL, WS_VISIBLE, rc, this,

IDC_CHART1,NULL,NULL,NULL /* LICENSE STRING SHOULD GO HERE */ );

// Attach to Chart pointer

m_chartPtr = m_chartWnd.GetControlUnknown();

// Use some of the ChartFX API

m_chartPtr->_Gallery = Cfx62::Gallery_Bar;

m_chartPtr->ClearData( Cfx62::ClearDataFlag_Values );

m_chartPtr->TypeMask = (Cfx62::ChartType)( m_chartPtr->TypeMask ||

Cfx62::ChartType_EvenSpacing );

m_chartPtr->TypeEx = (Cfx62::ChartTypeEx)( m_chartPtr->TypeEx ||

Cfx62::ChartTypeEx_NoLegInvalidate );

m_chartPtr->RealTimeSettings->BufferSize = 20; //50;

m_chartPtr->RealTimeSettings->Style = (Cfx62::RealTimeStyle)(

Cfx62::RealTimeStyle_LoopPos || Cfx62::RealTimeStyle_NoWaitArrow );

m_chartPtr->OpenData( (Cfx62::COD )(Cfx62::COD_Values || Cfx62::COD_Remove

|| Cfx62::COD_AllocHidden), 2, 20 );

for( int i = 0; i < 20; i++ ){

char buf[20];

m_chartPtr->Legend->PutItem( i, itoa( i + 1, buf, 10 ) );

}

m_chartPtr->CloseData( Cfx62::COD_Values );

nOffset = 0;

m_chartPtr->AxisY->PutminX( 0 );

m_chartPtr->AxisY->PutmaxX( 100 );

}

Link to comment
Share on other sites

I am trying to make sure I can make a realtime chart.  However I can only

ever see the last point that I add in the realtime chart. Am I doing

something incorrectly here? OnBnClickedButton1 is used to create and setup

the chart. OnBnClickedButton2 is used to add points to the chart.

void CDynamicDlg::OnBnClickedButton2()

{

//...'Finally when the timer calls set the new data

if (nOffset == 20) {

m_chartPtr->RealTimeSettings->Style = (Cfx62::RealTimeStyle)(

Cfx62::RealTimeStyle_NoWaitArrow );

}

m_chartPtr->OpenData( (Cfx62::COD )(Cfx62::COD_Values ||

Cfx62::COD_AddPoints ),2,1 );

//'Set two new points for series 1

m_chartPtr->Value->PutItem(0,0, -50 + rand() * 100 );

m_chartPtr->Value->PutItem(1,0, -50 + rand() * 100 );

char buf[20];

m_chartPtr->Legend->PutItem( 0, itoa( nOffset + 1, buf, 10 ) );

//'Close the channel forcing scroll

m_chartPtr->CloseData( (Cfx62::COD )( Cfx62::COD_Values ||

Cfx62::COD_RealTime || Cfx62::COD_ScrollLegend ) );

nOffset++;

}

void CDynamicDlg::OnBnClickedButton1()

{

CRect rc;

GetDlgItem(IDC_FRAME)->GetWindowRect(rc);

ScreenToClient(rc);

m_chartWnd.CreateControl(__uuidof(Cfx62::Chart), NULL, WS_VISIBLE, rc, this,

IDC_CHART1,NULL,NULL,NULL /* LICENSE STRING SHOULD GO HERE */ );

// Attach to Chart pointer

m_chartPtr = m_chartWnd.GetControlUnknown();

// Use some of the ChartFX API

m_chartPtr->_Gallery = Cfx62::Gallery_Bar;

m_chartPtr->ClearData( Cfx62::ClearDataFlag_Values );

m_chartPtr->TypeMask = (Cfx62::ChartType)( m_chartPtr->TypeMask ||

Cfx62::ChartType_EvenSpacing );

m_chartPtr->TypeEx = (Cfx62::ChartTypeEx)( m_chartPtr->TypeEx ||

Cfx62::ChartTypeEx_NoLegInvalidate );

m_chartPtr->RealTimeSettings->BufferSize = 20; //50;

m_chartPtr->RealTimeSettings->Style = (Cfx62::RealTimeStyle)(

Cfx62::RealTimeStyle_LoopPos || Cfx62::RealTimeStyle_NoWaitArrow );

m_chartPtr->OpenData( (Cfx62::COD )(Cfx62::COD_Values || Cfx62::COD_Remove

|| Cfx62::COD_AllocHidden), 2, 20 );

for( int i = 0; i < 20; i++ ){

char buf[20];

m_chartPtr->Legend->PutItem( i, itoa( i + 1, buf, 10 ) );

}

m_chartPtr->CloseData( Cfx62::COD_Values );

nOffset = 0;

m_chartPtr->AxisY->PutminX( 0 );

m_chartPtr->AxisY->PutmaxX( 100 );

}

Link to comment
Share on other sites

I don't know if this is some formatting problem but it looks like you are 

using the wrong "or" operator. For example, I see:

Cfx62::COD_Values || Cfx62::COD_AddPoints

and it should be:

Cfx62::COD_Values | Cfx62::COD_AddPoints

(A bitwise or).

--

Francisco Padron

www.chartfx.com

"Mac Dyer" <mac@simx.com> wrote in message

news:RSPEXxKaGHA.3508@webserver3.softwarefx.com...

>I am trying to make sure I can make a realtime chart. However I can only

> ever see the last point that I add in the realtime chart. Am I doing

> something incorrectly here? OnBnClickedButton1 is used to create and

> setup

> the chart. OnBnClickedButton2 is used to add points to the chart.

>

>

> void CDynamicDlg::OnBnClickedButton2()

> {

> //...'Finally when the timer calls set the new data

> if (nOffset == 20) {

> m_chartPtr->RealTimeSettings->Style = (Cfx62::RealTimeStyle)(

> Cfx62::RealTimeStyle_NoWaitArrow );

> }

> m_chartPtr->OpenData( (Cfx62::COD )(Cfx62::COD_Values ||

> Cfx62::COD_AddPoints ),2,1 );

> //'Set two new points for series 1

> m_chartPtr->Value->PutItem(0,0, -50 + rand() * 100 );

> m_chartPtr->Value->PutItem(1,0, -50 + rand() * 100 );

> char buf[20];

> m_chartPtr->Legend->PutItem( 0, itoa( nOffset + 1, buf, 10 ) );

> //'Close the channel forcing scroll

> m_chartPtr->CloseData( (Cfx62::COD )( Cfx62::COD_Values ||

> Cfx62::COD_RealTime || Cfx62::COD_ScrollLegend ) );

> nOffset++;

> }

> void CDynamicDlg::OnBnClickedButton1()

> {

> CRect rc;

> GetDlgItem(IDC_FRAME)->GetWindowRect(rc);

> ScreenToClient(rc);

> m_chartWnd.CreateControl(__uuidof(Cfx62::Chart), NULL, WS_VISIBLE, rc,

> this,

> IDC_CHART1,NULL,NULL,NULL /* LICENSE STRING SHOULD GO HERE */ );

> // Attach to Chart pointer

> m_chartPtr = m_chartWnd.GetControlUnknown();

> // Use some of the ChartFX API

> m_chartPtr->_Gallery = Cfx62::Gallery_Bar;

> m_chartPtr->ClearData( Cfx62::ClearDataFlag_Values );

> m_chartPtr->TypeMask = (Cfx62::ChartType)( m_chartPtr->TypeMask ||

> Cfx62::ChartType_EvenSpacing );

> m_chartPtr->TypeEx = (Cfx62::ChartTypeEx)( m_chartPtr->TypeEx ||

> Cfx62::ChartTypeEx_NoLegInvalidate );

> m_chartPtr->RealTimeSettings->BufferSize = 20; //50;

> m_chartPtr->RealTimeSettings->Style = (Cfx62::RealTimeStyle)(

> Cfx62::RealTimeStyle_LoopPos || Cfx62::RealTimeStyle_NoWaitArrow );

> m_chartPtr->OpenData( (Cfx62::COD )(Cfx62::COD_Values || Cfx62::COD_Remove

> || Cfx62::COD_AllocHidden), 2, 20 );

> for( int i = 0; i < 20; i++ ){

> char buf[20];

> m_chartPtr->Legend->PutItem( i, itoa( i + 1, buf, 10 ) );

> }

> m_chartPtr->CloseData( Cfx62::COD_Values );

> nOffset = 0;

> m_chartPtr->AxisY->PutminX( 0 );

> m_chartPtr->AxisY->PutmaxX( 100 );

> }

>

>

Link to comment
Share on other sites

I don't know if this is some formatting problem but it looks like you are 

using the wrong "or" operator. For example, I see:

Cfx62::COD_Values || Cfx62::COD_AddPoints

and it should be:

Cfx62::COD_Values | Cfx62::COD_AddPoints

(A bitwise or).

--

Francisco Padron

www.chartfx.com

"Mac Dyer" <mac@simx.com> wrote in message

news:RSPEXxKaGHA.3508@webserver3.softwarefx.com...

>I am trying to make sure I can make a realtime chart. However I can only

> ever see the last point that I add in the realtime chart. Am I doing

> something incorrectly here? OnBnClickedButton1 is used to create and

> setup

> the chart. OnBnClickedButton2 is used to add points to the chart.

>

>

> void CDynamicDlg::OnBnClickedButton2()

> {

> //...'Finally when the timer calls set the new data

> if (nOffset == 20) {

> m_chartPtr->RealTimeSettings->Style = (Cfx62::RealTimeStyle)(

> Cfx62::RealTimeStyle_NoWaitArrow );

> }

> m_chartPtr->OpenData( (Cfx62::COD )(Cfx62::COD_Values ||

> Cfx62::COD_AddPoints ),2,1 );

> //'Set two new points for series 1

> m_chartPtr->Value->PutItem(0,0, -50 + rand() * 100 );

> m_chartPtr->Value->PutItem(1,0, -50 + rand() * 100 );

> char buf[20];

> m_chartPtr->Legend->PutItem( 0, itoa( nOffset + 1, buf, 10 ) );

> //'Close the channel forcing scroll

> m_chartPtr->CloseData( (Cfx62::COD )( Cfx62::COD_Values ||

> Cfx62::COD_RealTime || Cfx62::COD_ScrollLegend ) );

> nOffset++;

> }

> void CDynamicDlg::OnBnClickedButton1()

> {

> CRect rc;

> GetDlgItem(IDC_FRAME)->GetWindowRect(rc);

> ScreenToClient(rc);

> m_chartWnd.CreateControl(__uuidof(Cfx62::Chart), NULL, WS_VISIBLE, rc,

> this,

> IDC_CHART1,NULL,NULL,NULL /* LICENSE STRING SHOULD GO HERE */ );

> // Attach to Chart pointer

> m_chartPtr = m_chartWnd.GetControlUnknown();

> // Use some of the ChartFX API

> m_chartPtr->_Gallery = Cfx62::Gallery_Bar;

> m_chartPtr->ClearData( Cfx62::ClearDataFlag_Values );

> m_chartPtr->TypeMask = (Cfx62::ChartType)( m_chartPtr->TypeMask ||

> Cfx62::ChartType_EvenSpacing );

> m_chartPtr->TypeEx = (Cfx62::ChartTypeEx)( m_chartPtr->TypeEx ||

> Cfx62::ChartTypeEx_NoLegInvalidate );

> m_chartPtr->RealTimeSettings->BufferSize = 20; //50;

> m_chartPtr->RealTimeSettings->Style = (Cfx62::RealTimeStyle)(

> Cfx62::RealTimeStyle_LoopPos || Cfx62::RealTimeStyle_NoWaitArrow );

> m_chartPtr->OpenData( (Cfx62::COD )(Cfx62::COD_Values || Cfx62::COD_Remove

> || Cfx62::COD_AllocHidden), 2, 20 );

> for( int i = 0; i < 20; i++ ){

> char buf[20];

> m_chartPtr->Legend->PutItem( i, itoa( i + 1, buf, 10 ) );

> }

> m_chartPtr->CloseData( Cfx62::COD_Values );

> nOffset = 0;

> m_chartPtr->AxisY->PutminX( 0 );

> m_chartPtr->AxisY->PutmaxX( 100 );

> }

>

>

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.

Loading...
 Share

×
×
  • Create New...