public XddUnit GetActiveUnit()
        {
            XddUnit result = null;

            if (Units.Count == 1)
            {
                result = Units[0];
            }
            else
            {
                foreach (var unit in Units)
                {
                    string uniqueIdRef = unit.GetConfigurationParameterIdRef();

                    var parameter = _parameterList.FindParameter(uniqueIdRef) as Parameter;

                    if (unit.HasMatchingValue(parameter))
                    {
                        result = unit;
                        break;
                    }
                    else
                    {
                        MsgLogger.WriteError($"{GetType().Name} - GetActiveUnit", $"GetActiveUnit - Parameter '{uniqueIdRef}' not found!");
                    }
                }
            }

            return(result);
        }
        public bool Parse(XmlNode node)
        {
            bool result = true;

            var typeAttribute     = node.Attributes["type"];
            var uniqueIdAttribute = node.Attributes["uniqueID"];

            if (uniqueIdAttribute != null)
            {
                UniqueId = uniqueIdAttribute.InnerXml;
            }
            else
            {
                throw new Exception($"{GetType().Name} - missing uniqueID attribute");
            }

            if (typeAttribute != null)
            {
                Type = typeAttribute.InnerXml;
            }
            else
            {
                throw new Exception($"{GetType().Name} - missing type attribute");
            }

            foreach (XmlNode childNode in node.ChildNodes)
            {
                if (childNode.Name == "label")
                {
                    var label = new XddLabel(childNode);

                    if (!label.Parse())
                    {
                        result = false;
                        break;
                    }

                    Labels.Add(label);
                }
                else if (childNode.Name == "unit")
                {
                    var unit = new XddUnit();

                    if (!unit.Parse(childNode))
                    {
                        result = false;
                    }

                    Units.Add(unit);
                }

                if (!result)
                {
                    break;
                }
            }

            return(result);
        }
Beispiel #3
0
        public XddParameter(EltraDevice device, XmlNode source, XddDeviceManager deviceManager, XddDataTypeList dataTypeList, XddTemplateList templateList)
            : base(device, source)
        {
            _deviceManager = deviceManager;
            _templateList  = templateList;
            _dataTypeList  = dataTypeList;

            Unit = new XddUnit();
        }
Beispiel #4
0
        public XddUnit FindUnitReference(string uniqueIdRef)
        {
            XddUnit result = null;

            foreach (var units in Units)
            {
                var unit = units.FindPhysicalQuantityIdRef(uniqueIdRef);

                if (unit != null)
                {
                    result = unit;
                    break;
                }
            }

            return(result);
        }