/// <summary>
 /// 解析XML的设备信息
 /// </summary>
 /// <param name="xmlNodeList"></param>
 internal void Analyze(XmlNodeList xmlNodeList)
 {
     _devdefs.Clear();
     if (xmlNodeList == null || xmlNodeList.Count == 0)
     {
         Console.WriteLine("没有设备信息可以进行解析");
         return;
     }
     foreach (XmlElement e in xmlNodeList)
     {
         string id          = e.GetAttribute("id");
         string name        = e.GetAttribute("name");
         string connecttype = e.GetAttribute("connecttype");
         Devdef devdef      = new Devdef(id, name, connecttype);
         foreach (XmlElement a in e.ChildNodes)
         {
             string attid   = a.GetAttribute("id");
             string attname = a.GetAttribute("name");
             int    start   = int.Parse(a.GetAttribute("start"));
             int    ent     = int.Parse(a.GetAttribute("end"));
             DevAtt devAtt  = new DevAtt(attid, attname, start, ent);
             foreach (XmlElement d in a.ChildNodes)
             {
                 string key    = d.GetAttribute("key");
                 string value  = d.GetAttribute("value");
                 AttDic attDic = new AttDic(key, value);
                 devAtt.AddAttDic(attDic);
             }
             devdef.AddDevAtt(devAtt);
         }
         _devdefs.Add(devdef);
     }
 }
 /// <summary>
 /// 添加字典值
 /// </summary>
 /// <param name="attDic"></param>
 internal void AddAttDic(AttDic attDic)
 {
     if (AttDics == null)
     {
         AttDics = new List <AttDic>();
     }
     AttDics.Add(attDic);
 }
        /// <summary>
        /// 添加属性字典值
        /// </summary>
        /// <param name="devdefid">所属设备类型</param>
        /// <param name="devattid">所属设备属性</param>
        /// <param name="attDic">字典信息</param>
        internal void AddAttDic(string devdefid, string devattid, AttDic attDic)
        {
            XmlElement attDicX = XMLMaster.XMLHelper._xmldoc.CreateElement("Dic");

            attDicX.SetAttribute("key", attDic.Key);
            attDicX.SetAttribute("value", attDic.Value);
            XMLMaster.XMLHelper.AddToNode("//Config/Devdefs/Devdef[@id='" + devdefid + "']" +
                                          "/Att[@id='" + devattid + "']", attDicX);
        }
        /// <summary>
        /// 修改属性字典值
        /// </summary>
        /// <param name="devdefid">所属设备类型</param>
        /// <param name="devattid">所属设备属性</param>
        /// <param name="attDic">字典信息</param>
        internal void EditeAttDic(string devdefid, string devattid, AttDic attDic)
        {
            XmlElement attdicX = XMLMaster.XMLHelper.GetSingleNode("//Config/Devdefs/Devdef[@id='" + devdefid + "']" +
                                                                   "/Att[@id='" + devattid + "']/Dic[@key='" + attDic.Key + "']");

            if (attdicX != null)
            {
                attdicX.SetAttribute("value", attDic.Value);
            }
        }
 /// <summary>
 /// 修改属性字典值
 /// </summary>
 /// <param name="devdefid">所属设备类型</param>
 /// <param name="devattid">所属设备属性</param>
 /// <param name="attDic">字典信息</param>
 public static void EditeAttDic(string devdefid, string devattid, AttDic attDic)
 {
     Devdefs.EditeAttDic(devdefid, devattid, attDic);
     SaveAndReload();
 }