2016-12-02 63 views
0

这是我的问题。我有大约20种不同类型的消息通过端口进入。他们都可以被识别并以不同的速率进入(有些每秒会发生多次,有些会每隔几秒钟发生一次)。从串口读取数据并跟踪最近的行数

我需要保留这些项目的日志,但只能每30分钟记录一次。我想不断读取端口,并更新某种数组。那么当定时器事件发生时,记录数组中的数据。

我做这在C#.NET 4.5.2

+0

你打电话问题实际上是你需要做的一件事。请向我们展示您迄今为止完成的任务,然后我们可以帮助解决您遇到的具体问题。 – CodingYoshi

回答

0

您可以使用列表的字典举办这种类型的存储器内日志的。如果创建说

public enum EventTypes 
{ 
    A, 
    B 
}; 

,并假设您的数据点是整数,你可以使用

Dictionary<EventTypes, List<int>> inMemoryLog = new Dictionary<EventTypes, List<int>>(); 

然后,你可以登录如下:

inMemoryLog[EventTypes.A].Add(myDataPoint); 

当你准备冲将日志记录到内存,将inMemoryLog保留到磁盘,删除已写出的每个条目。创建inMemoryLog副本以用于写入磁盘(然后重新初始化您用于记录的imMemoryLog实例)可能是一种很好的策略,以便内存中的日志记录可以不中断地继续。

+0

感谢Eric!这实际上是我在周末期待的内容,非常兴奋地实施。 – jerryn44