2016-03-22 72 views
0

我正在構建一個軟件來測試我的機器並從中收集數據。我的軟件現在可以顯示7個信息(4個聊天記錄和3個位圖)。但是,所有的數據只能如圖所示實時觀察,當我暫停計時器時,我全部都丟失了。如何以錄音方式查看所有這些數據(4個聊天記錄和3個位圖)?例如,我想有一間酒吧,以檢查像電影播放器​​在過去的數據,如圖2所示。用戶界面或工具來查看圖表數據

Software interface This is the function of displaying data

+0

如何添加類和保存數據到實例化的對象? – Eminem

+0

最快的方法是索引順序文件,但具有Time和IndicatorId的適當聚簇索引的SQL表將會表現良好。您可以存儲多年的歷史數據。 –

+0

估計您期望的數據量!決定他們是否應該堅持程序運行!將結果添加到問題! – TaW

回答

1

我建議您存儲歷史數據的SQL數據庫,設計會是這個樣子:

SampleUML

的重要組成部分,是有精心設計的表格與所有的歷史價值,通過IndicatorID &採用複合聚集索引。 SQL Server的實例:

CREATE TABLE [PenData](
    [IndicatorID] smallint NOT NULL, 
    [Time] datetime2(0) NOT NULL, 
    [Value] real NULL 
CONSTRAINT [PK_Data] PRIMARY KEY CLUSTERED 
(
    [IndicatorID] ASC, 
    [Time] ASC 
)) 

MS Charts controls你可以有,可以做放大和縮小圖表滾動條:

 chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true; 
     chart1.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = false; 
     chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = true; 
     chart1.ChartAreas[0].AxisX.ScrollBar.Size = 20; 
     chart1.ChartAreas[0].AxisX.ScrollBar.BackColor = Color.LightGray; 

因此,您創建一個窗體上的另一個控制,即控制哪些數據從數據庫加載到圖表(哪一天等) - 就像您的回放控制 - 並且您可以允許用戶根據需要進一步縮放加載的數據。在Windows中perfmon應用程序使用此功能。您還可以放大或縮小代碼中的圖表,例如按用戶指定的時間範圍。


如果你想,就好像它們收集播放這些數據,你將需要添加一個計時器,以創建實時數據回放的感覺 - 假設你需要它,因爲你需要動畫圖像,否則最好以交互方式顯示它。

因此,您的操作與您實時顯示數據的方式相同,但不是從傳感器獲取數據,而是從數據庫中讀取數據。

有一個例子這裏MS圖表:Need help on Problem in using c# .net 4.0 realtime chart in windows form application

+0

真的非常感謝您的幫助。我想我得到你提出的邏輯。但我仍然無法理解如何在軟件上的相同位置播放位圖和圖表。它是否添加了一個可以加載數字數據然後添加回圖表和位圖功能的播放控件?所以我現在可以有一個類似於回放的工具? –

+0

我明白了,你想用像電影一樣的動畫來播放它......?正常情況下,用戶只需像perfmon一樣放大感興趣的數據。我將添加一個小例子。 –