public List <TunnelLog> GetValues() { Table table = new Table(Statics.WinCC_ConnectionString, this.TableName); var result = new List <TunnelLog>(); foreach (DataRow row in table.DataTable.Rows) { TunnelLog item = new TunnelLog(); item.VarName = row["VarName"] as string; item.TimeString = row["TimeString"] as string; item.VarValue = (float)row["VarValue"]; item.Validity = (int)row["Validity"]; item.Time_ms = (float)row["Time_ms"]; result.Add(item); } return(result); }
public TunnelLog GetValue(Func <TunnelLog, bool> predicate) { Table table = new Table(Statics.WinCC_ConnectionString, this.TableName); foreach (DataRow row in table.DataTable.Rows) { TunnelLog item = new TunnelLog(); item.VarName = row["VarName"] as string; item.TimeString = row["TimeString"] as string; item.VarValue = Convert.ToDouble(row["VarValue"]); item.Validity = Convert.ToInt32(row["Validity"]); item.Time_ms = Convert.ToDouble(row["Time_ms"]); if (predicate(item)) { return(item); } } return(null); }
void Timer1_Tick(object sender, EventArgs e) { foreach (Item item in Items) { string itemName = item.ItemName; int itemId = item.ItemId; TunnelLog currentLog = null; currentLog = Tunnel.GetValue(x => x.VarName == itemName); if (currentLog != null) { TunnelLog lastLog = LastTunnelLogs.FirstOrDefault(x => x.VarName == itemName); if (lastLog == null) { Log log = new Log(); log.ItemId = itemId; if (itemId == 2) { log.ItemValue = currentLog.VarValue / 10; } else { log.ItemValue = currentLog.VarValue; } log.Date = DateTime.Now; Entities.Logs.Add(log); Entities.SaveChanges(); var beforeHash = new StringBuilder(); beforeHash.Append(log.LogId); beforeHash.Append(log.ItemId); beforeHash.Append(log.ItemValue); beforeHash.Append(log.Date); var afterHash = ComputeHash(beforeHash.ToString()); log.HashValue = afterHash; Entities.SaveChanges(); LastTunnelLogs.Add(currentLog); if (item.ItemId == 1) { if (item1Live.Count > 61) { item1Live.RemoveAt(0); } item1Live.Add(log); } else if (item.ItemId == 2) { if (item2Live.Count > 61) { item2Live.RemoveAt(0); } item2Live.Add(log); } else if (item.ItemId == 3) { if (item3Live.Count > 61) { item3Live.RemoveAt(0); } item3Live.Add(log); } } else { if (lastLog.Time_ms != currentLog.Time_ms) { LastTunnelLogs.Remove(lastLog); Log log = new Log(); log.ItemId = itemId; if (itemId == 2) { log.ItemValue = currentLog.VarValue / 10; } else { log.ItemValue = currentLog.VarValue; } //log.ItemValue = currentLog.VarValue; log.Date = DateTime.Now; Entities.Logs.Add(log); Entities.SaveChanges(); var beforeHash = new StringBuilder(); beforeHash.Append(log.LogId); beforeHash.Append(log.ItemId); beforeHash.Append(log.ItemValue); beforeHash.Append(log.Date); var afterHash = ComputeHash(beforeHash.ToString()); log.HashValue = afterHash; Entities.SaveChanges(); LastTunnelLogs.Add(currentLog); if (item.ItemId == 1) { if (item1Live.Count > 61) { item1Live.RemoveAt(0); } item1Live.Add(log); } else if (item.ItemId == 2) { if (item2Live.Count > 61) { item2Live.RemoveAt(0); } item2Live.Add(log); } else if (item.ItemId == 3) { if (item3Live.Count > 61) { item3Live.RemoveAt(0); } item3Live.Add(log); } } } } } }