2016-03-22 69 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一样放大感兴趣的数据。我将添加一个小例子。 –