2016-09-28 58 views
0

我想使用Winform和Devexpress庫建立一個遙測軟件。具體來說,我正在處理折線圖控制,我想要做的就是配置圖表,以便它能夠實時顯示數據更改。Devexpress:如何在運行時爲圖表控件添加點?

該圖是通過讀取一些以每秒10個值的速率發送信息的外部傳感器生成的。

這是我的代碼用於初始化圖:

series1 = new Series("test test", ViewType.Line); 

chartControl1.Series.Add(series1); 
series1.ArgumentScaleType = ScaleType.Numerical; 

((LineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Triangle; 
((LineSeriesView)series1.View).LineStyle.DashStyle = DashStyle.Dash; 
((XYDiagram)chartControl1.Diagram).EnableAxisXZooming = true; 

chartControl1.Legend.Visibility = DefaultBoolean.False; 

chartControl1.Titles.Add(new ChartTitle()); 
chartControl1.Titles[0].Text = "A Line Chart"; 

chartControl1.Dock = DockStyle.Fill; 

這是添加一個新的點之一,並拔下第一點可用,以便點在我的圖表量始終是相同的(達到最少量的點數後),它會自行更新,顯示最後X秒的值並丟棄舊值。

series1.Points.RemoveRange(0, 1); 
series1.Points.Add(new SeriesPoint(time, value)); 

... 

AxisXRange.SetMinMaxValues(newFirstTime, time); 

AxisRange如下

Range AxisXRange 
    { 
     get 
     { 
      SwiftPlotDiagram diagram = chartControl1.Diagram as SwiftPlotDiagram; 
      if (diagram != null) 
       return diagram.AxisX.VisualRange; 
      return null; 
     } 
    } 

**的**的問題是,這個代碼的工作暫時。幾秒鐘後,圖表停止工作,並在其上顯示一個大紅十字。

有沒有我失蹤的配置? 你知道更好的方式來實現我的任務嗎?

任何幫助,將不勝感激。

謝謝

+1

在WinForms中,如果在繪製控件時引發了未引發的異常,控件將顯示紅色十字。在Visual Studio中,您可以[配置選項](https://msdn.microsoft.com/en-us/library/x85tt0dd.aspx),以便調試器將始終停止在unhands異常處。這將幫助您確定問題的原因。 – Uranus

+0

感謝提示 – VeVeVez

+0

@Uranus感謝您的提示我發現了一個問題,但現在我在想:這是實施圖表的正確方法嗎?你有沒有嘗試過這樣的事情?我認爲它在20秒的數據後有一些性能問題。謝謝你的幫助 – VeVeVez

回答

0

我覺得你做得差不多了。 Devexpress有關於RealTime-Charts的Article。他們以同樣的方式進行,但使用定時器更新數據。也許這會解決你的繪畫問題。

相關問題