public void Add(TIRAPOPCTag item) { if (item != null) { items.Add(item); } }
/// <summary> /// 根据 XMLNode 创建 TIRAPOPCTag 实例 /// </summary> /// <param name="node"></param> /// <returns></returns> public static TIRAPOPCTag CreateInstance(XmlNode node) { if (node.Name != "Tag") { return(null); } TIRAPOPCTag rlt = new TIRAPOPCTag(); rlt.TagLeafID = Tools.ConvertToInt32(IRAPXMLUtils.GetXMLNodeAttributeValue(node, "TagLeafID")); rlt.TagName = IRAPXMLUtils.GetXMLNodeAttributeValue(node, "TagName"); rlt.TagType = Tools.ConvertToInt32(IRAPXMLUtils.GetXMLNodeAttributeValue(node, "TagType")); rlt.TestItems.Clear(); foreach (XmlNode child in node.ChildNodes) { TIRAPTagT20Object item = TIRAPTagT20Object.CreateInstance(child); if (item != null) { rlt.TestItems.Add(item); } } return(rlt); }
public void Remove(TIRAPOPCTag item) { bool successed = false; do { successed = items.Remove(item); } while (successed); }
/// <summary> /// 发送当前设备中所有 TagType=1 的 Tag 值到 ESB 中 /// </summary> public void SendBatchTags(TIRAPOPCTag tag) { TDC_TestReqBody request = new TDC_TestReqBody(); request.EndTime = tag.TagValueTime; request.WIPStationCode = tag.Device.T133Code; request.PossibleFailureModes.Add(new TDC_TestReqBodyPFM()); request.Recipes.Add(new TDC_TestReqBodyRecipe()); for (int i = 0; i < items.Count; i++) { TIRAPOPCTag batchTag = items[i]; if (batchTag.TagType == 1) { switch (batchTag.TestItems.Count) { case 1: request.TestDatas.Add( new TDC_TestReqBodyTD() { T128LeafID = batchTag.TestItems[0].T20LeafID, MetricName = batchTag.TestItems[0].ParameterName, Remark = batchTag.TagName, Metric01 = batchTag.TagValue, }); break; default: for (int j = 0; j < batchTag.TestItems.Count; j++) { request.TestDatas.Add( new TDC_TestReqBodyTD() { T128LeafID = batchTag.TestItems[j].T20LeafID, MetricName = batchTag.TestItems[j].ParameterName, Remark = batchTag.TagName, Metric01 = batchTag.TagValue.Substring( batchTag.TestItems[j].StartPosition, batchTag.TestItems[j].EndPosition - batchTag.TestItems[j].StartPosition + 1), }); } break; } } } TDC_TestContent content = new TDC_TestContent( request, null, null, null); TIRAPESBGlobalProducer.Instance.SendToESB(content.GenerateRequestContent()); }
/// <summary> /// 根据传入的 TagName 查找系统中已注册的 Tag 对象。 /// 如果找到,则返回 TIRAPOPCTag 对象;如果未找到,则返回 null /// </summary> /// <param name="tagName">TagName</param> /// <returns></returns> public TIRAPOPCTag FindOPCTagItem(string tagName) { TIRAPOPCTag rlt = null; if (!devices.IndexTags.TryGetValue(tagName, out rlt)) { rlt = null; } return(rlt); }
/// <summary> /// 根据 TRESPOPCServerTagList 对象创建 TIRAPOPCDevice 实例 /// </summary> /// <param name="item">TRESPOPCServerTagList 对象</param> /// <returns></returns> public static TIRAPOPCDevice CreateInstance(TRESPOPCServerTagList item) { if (item == null) { return(null); } TIRAPOPCDevice rlt = TGeneric.Mapper <TIRAPOPCDevice, TRESPOPCServerTagList>(item); if (rlt.TagList != "") { XmlDocument xml = new XmlDocument(); try { xml.LoadXml(rlt.TagList); } catch { return(rlt); } XmlNode root = xml.SelectSingleNode("Parameters"); if (root != null) { foreach (XmlNode child in root.ChildNodes) { TIRAPOPCTag tag = TIRAPOPCTag.CreateInstance(child); if (tag != null) { tag.Device = rlt; rlt.Tags.Add(tag); rlt.TagIndex.Add( string.Format( "{0}.{1}", rlt.ServerName, tag.TagName), tag); } } } } return(rlt); }