Пример #1
0
        private void ParseTreeStruct(DatapointElement element, string[][] source, int nodeLevel, int startIndex)
        {
            var lvl = 0;

            for (int i = startIndex; i < source.Length; i++)
            {
                for (int j = 0; j < source[i].Length; j++)
                //foreach (var l in source[i])
                {
                    var l       = source[i][j];
                    var splited = l.Split(';');
                    var Name    = splited[0];
                    var Type    = (ElementType)int.Parse(splited[1]);
                    if (Type == ElementType.DPEL_NONE)
                    {
                        lvl++;
                    }
                    else if (lvl < nodeLevel)
                    {
                        return;
                    }
                    else if (lvl == 0 && nodeLevel == 0)
                    {
                        //element = new DatapointElement(Type, Name);
                        ParseTreeStruct(element, source, nodeLevel + 1, i + 1);
                    }
                    else if (lvl == nodeLevel && lvl != 0)
                    {
                        DatapointElement childElement;

                        if (Type == ElementType.DPEL_TYPEREF)
                        {
                            j++;
                            childElement = new DatapointElement(Type, Name, source[i][j].Split(';')[0]);
                        }
                        else
                        {
                            childElement = new DatapointElement(Type, Name);
                            ParseTreeStruct(childElement, source, nodeLevel + 1, i + 1);
                        }
                        element.Add(childElement);
                    }
                }
                lvl = 0;
            }
        }
Пример #2
0
        //string[][] dpTypeGet(string dpType);

        public DatapointElement dpTypeGet(DatapointType dpType)
        {
            DatapointElement result = null;

            try
            {
                result = new DatapointElement();
                var wResult = wccXmlRpcProxy.dpTypeGet(dpType.Name);
                ParseTreeStruct(result, wResult, 0, 0);
            }
            catch (Exception e)
            {
                Debugger.Write(e.Message);
            }

            return(result);
        }
Пример #3
0
 public void Remove(DatapointElement element)
 {
     childElements.Remove(element);
 }
Пример #4
0
 public void Add(DatapointElement element)
 {
     childElements.Add(element);
 }