public void UpdateCollection(Common.ConnectionState status, Dictionary <string, Tag> TagValue) { eventConnectionChanged?.Invoke(status); if (!DesignMode && IsHandleCreated) { if (TagValue == null) { return; } List <KeyValuePair <string, Tag> > List2 = TagValue.Where(item => dbCurrent.Any(p => p.Channel == item.Key.Split('.')[0] && p.Device == item.Key.Split('.')[1] && p.DataBlock == item.Key.Split('.')[2])).ToList(); int i = 1; foreach (ClassAlarm author in dbCurrent) { string tagName = $"{author.Channel}.{author.Device}.{author.DataBlock}.{author.TriggerTeg}"; string LastValue = string.Empty; if (TagValue.ContainsKey(tagName) && TagValue[tagName].TagName == author.TriggerTeg) { string ser = string.Empty; ser = string.Format("{0}", TagValue[tagName].Value.Value); if (ser != author.Value) { //* Save this value so we know if it changed without comparing the invert author.Value = ser; string[] row = { $"{i++}", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}", DateTime.Now.ToShortTimeString(), tagName, author.AlarmText, string.Format("{0}", author.AlarmCalss), TagValue[tagName].Value.Value }; if (ser != LastValue) { LastValue = string.Format("{0}", TagValue[tagName].Value.Value); //* Do something here for the value changed if (LastValue == "True") { SafeMethodTrue(row); } else if (LastValue == "False") { string[] row1 = { $"{i++}", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}", DateTime.Now.ToShortTimeString(), tagName, author.AlarmText, string.Format("{0}", author.AlarmCalss), TagValue[tagName].Value.Value }; SafeMethodFalse(row1); // break; } } } } } } }
public void UpdateCollection(Common.ConnectionState status, Dictionary <string, Tag> Tags) { if (!DesignMode && IsHandleCreated) { //Thread.Sleep(1000); eventConnectionChanged?.Invoke(status); lock (Tags) { if (Tags != null) { List <KeyValuePair <string, Tag> > List2 = Tags.Where(item => dbCurrent.Any(p => p.Channel == item.Key.Split('.')[0] && p.Device == item.Key.Split('.')[1] && p.DataBlock == item.Key.Split('.')[2])).ToList(); DGAlarm.Rows.Clear(); int i = 1; foreach (ClassAlarm author in dbCurrent) { string tagName = $"{author.Channel}.{author.Device}.{author.DataBlock}.{author.TriggerTeg}"; if (Tags.ContainsKey(tagName) && Tags[tagName].TagName == author.TriggerTeg) { switch (Tags[tagName].DataType) { case DriverBase.DataTypes.BitOnByte: break; case DriverBase.DataTypes.BitOnWord: break; case DriverBase.DataTypes.Bit: string LastValue = string.Empty; if (Tags[tagName].Value == bool.Parse(author.Value)) { string[] row = { $"{i++}", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}", DateTime.Now.ToShortTimeString(), tagName, author.AlarmText, string.Format("{0}", author.AlarmCalss), author.Value }; DGAlarm.Rows.Add(row); } break; case DriverBase.DataTypes.Byte: break; case DriverBase.DataTypes.Short: if (Tags[tagName].Value > short.Parse(author.Value)) { string[] row = { $"{i++}", $"{DateTime.Now.ToShortDateString()}", DateTime.Now.ToShortTimeString(), tagName, author.AlarmText, string.Format("{0}", author.AlarmCalss), author.Value }; DGAlarm.Rows.Add(row); } break; case DriverBase.DataTypes.UShort: break; case DriverBase.DataTypes.Int: break; case DriverBase.DataTypes.UInt: break; case DriverBase.DataTypes.Long: break; case DriverBase.DataTypes.ULong: break; case DriverBase.DataTypes.Float: break; case DriverBase.DataTypes.Double: break; case DriverBase.DataTypes.String: break; default: break; } } } } } } }
public void UpdateCollectionDataBlock(Common.ConnectionState status, Dictionary <string, DataBlock> collection) { throw new NotImplementedException(); }