/// <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); } }
internal void AddDevAtt(DevAtt devAtt) { if (DevAtts == null) { DevAtts = new List <DevAtt>(); } DevAtts.Add(devAtt); }
/// <summary> /// 添加设备定义 /// </summary> /// <param name="devdef"></param> internal void AddDevAtt(string devdefid, DevAtt devatt) { XmlElement devattX = XMLMaster.XMLHelper._xmldoc.CreateElement("Att"); devattX.SetAttribute("id", devatt.ID); devattX.SetAttribute("name", devatt.Name); devattX.SetAttribute("start", devatt.Start + ""); devattX.SetAttribute("end", devatt.End + ""); XMLMaster.XMLHelper.AddToNode("//Config/Devdefs/Devdef[@id='" + devdefid + "']", devattX); }
/// <summary> /// 修改对应设备定义的属性 /// </summary> /// <param name="devdevid"></param> /// <param name="devatt"></param> public void EditeDevAtt(string devdevid, DevAtt devatt) { XmlElement devattX = XMLMaster.XMLHelper.GetSingleNode("//Config/Devdefs/Devdef[@id='" + devdevid + "']/Att[@id='" + devatt.ID + "']"); if (devattX != null) { devattX.SetAttribute("name", devatt.Name); devattX.SetAttribute("start", devatt.Start + ""); devattX.SetAttribute("end", devatt.End + ""); } }
/// <summary> /// 添加设备属性 /// </summary> /// <param name="devdefid">所属设备类型</param> /// <param name="devAtt">属性信息</param> public static void AddDevAtt(string devdefid, DevAtt devAtt) { Devdefs.AddDevAtt(devdefid, devAtt); SaveAndReload(); }