예제 #1
0
        public static IntePara ReadXmlFile(string filePath, int fanNo)
        {
            //声明XMLDocument对象
            var doc = new XmlDocument();

            try
            {
                //数据存储结构体
                var inte = new IntePara {
                    FanNo = fanNo
                };
                //范围数据存储结构体列表
                var rangeParaList = new List <RangePara>();
                //加载XML文件
                doc.Load(filePath);
                //获取XML根结点
                var root = doc.SelectSingleNode("ECView");
                //获取根结点属性--智能控速模式号
                var rootXe = (XmlElement)root;
                inte.ControlType = Convert.ToInt32(rootXe?.GetAttribute("Type"));
                //获取下层结点
                var fanList = root?.ChildNodes;
                if (fanList != null)
                {
                    foreach (XmlNode fan in fanList)
                    {
                        //获取下层结点属性--风扇最小转速
                        var fanXe = (XmlElement)fan;
                        inte.MinFanDuty = Convert.ToInt32(fanXe.GetAttribute("MinFanduty"));
                        //获取范围数据
                        var rangeList = fan.ChildNodes;
                        foreach (XmlNode rangeXn in rangeList)
                        {
                            var rangePara = new RangePara();
                            var rangeXe   = (XmlElement)rangeXn;
                            //获取范围号
                            rangePara.RangeNo = Convert.ToInt32(rangeXe.GetAttribute("Num"));
                            //获取范围下限
                            rangePara.InferiorLimit = Convert.ToInt32(rangeXe.GetAttribute("InferiorLimit"));
                            switch (inte.ControlType)
                            {
                            case 1:
                                //控速模式1下直接定义风扇转速
                                rangePara.FanDuty = Convert.ToInt32(rangeXe.GetAttribute("Fanduty"));
                                break;

                            case 2:
                                //控速模式2下为温度+自定义增幅百分比
                                rangePara.AddPercentage = Convert.ToInt32(rangeXe.GetAttribute("AddPercentage"));
                                break;
                            }
                            rangeParaList.Add(rangePara);
                        }
                    }
                }
                inte.RangeParaList = rangeParaList;
                return(inte);
            }
            catch (Exception e)
            {
                Console.WriteLine(@"解析XML出错,原因:" + e.Message);
                return(null);
            }
        }
예제 #2
0
        /// <summary>
        /// 读取XML文件
        /// </summary>
        /// <param name="filePath"></param>
        private static IntePara _readXmlFile(string filePath, int fanNo)
        {
            //声明XMLDocument对象
            XmlDocument doc = new XmlDocument();

            try
            {
                //数据存储结构体
                IntePara inte = new IntePara();
                inte.FanNo = fanNo;
                //范围数据存储结构体列表
                List <RangePara> rangeParaList = new List <RangePara>();
                //加载XML文件
                doc.Load(filePath);
                //获取XML根结点
                XmlNode root = doc.SelectSingleNode("ECView");
                //获取根结点属性--智能控速模式号
                XmlElement rootXe = (XmlElement)root;
                inte.ControlType = Convert.ToInt32(rootXe.GetAttribute("Type"));
                //获取下层结点
                XmlNodeList fanList = root.ChildNodes;
                foreach (XmlNode fan in fanList)
                {
                    //获取下层结点属性--风扇最小转速
                    XmlElement fanXe = (XmlElement)fan;
                    inte.MinFanDuty = Convert.ToInt32(fanXe.GetAttribute("MinFanduty"));
                    //获取范围数据
                    XmlNodeList rangeList = fan.ChildNodes;
                    foreach (XmlNode rangeXn in rangeList)
                    {
                        RangePara  rangePara = new RangePara();
                        XmlElement rangeXe   = (XmlElement)rangeXn;
                        //获取范围号
                        rangePara.RangeNo = Convert.ToInt32(rangeXe.GetAttribute("Num"));
                        //获取范围下限
                        rangePara.InferiorLimit = Convert.ToInt32(rangeXe.GetAttribute("InferiorLimit"));
                        if (inte.ControlType == 1)
                        {
                            //控速模式1下直接定义风扇转速
                            rangePara.FanDuty = Convert.ToInt32(rangeXe.GetAttribute("Fanduty"));
                        }
                        else if (inte.ControlType == 2)
                        {
                            //控速模式2下为温度+自定义增幅百分比
                            rangePara.AddPercentage = Convert.ToInt32(rangeXe.GetAttribute("AddPercentage"));
                        }
                        rangeParaList.Add(rangePara);
                    }
                }
                inte.RangeParaList = rangeParaList;
                return(inte);
            }
            catch (Exception e)
            {
                Console.WriteLine("解析XML出错,原因:" + e.Message);
                return(null);
            }
            finally
            {
                if (doc != null)
                {
                    //释放资源
                    doc = null;
                }
            }
        }