//添加子项 public void AddItem(SHHOPCItem item) { if (_itemList.Contains(item) == false) { _itemList.Add(item); item.AttachToGroup(this); } }
//移除子项 public void RemoveItem(SHHOPCItem item) { if (_itemList.Contains(item)) { item.DetachFromGroup(this); _itemList.Remove(item); } }
//测点值改变(一般是事件订阅触发) private void OPCGroup_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps) { float[] values = ItemValues as float[]; int[] qualities = Qualities as int[]; DateTime[] times = TimeStamps as DateTime[]; for (int i = 1; i <= NumItems; i++) { for (int j = 0; j < _itemList.Count; j++) { SHHOPCItem item = _itemList[j]; if (Convert.ToInt32(ClientHandles.GetValue(i)) == item.GetHashCode()) { object value = ItemValues.GetValue(i); item.PointValue = value.ToString(); TB_TF_RealValues.UpdateValue(item.ID, value.ToString(), (DateTime)TimeStamps.GetValue(i), (int)SHHPointState.Normal); break; } } } }