Example #1
0
 public void Add(TIRAPOPCTag item)
 {
     if (item != null)
     {
         items.Add(item);
     }
 }
Example #2
0
        /// <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);
        }
Example #3
0
        public void Remove(TIRAPOPCTag item)
        {
            bool successed = false;

            do
            {
                successed = items.Remove(item);
            } while (successed);
        }
Example #4
0
        /// <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());
        }
Example #5
0
        /// <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);
        }
Example #6
0
        /// <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);
        }