public CDevice Clone() { CDevice obj = (CDevice)this.MemberwiseClone(); obj.ListDevVar = new List <CVar>(); obj.ListMsgLoop = new List <CMessage>(); obj.ListMsgTime = new List <CMessage>(); obj.ListMsgCall = new List <CMessage>(); obj.ListMsgOther = new List <CMessage>(); foreach (CVar nVar in ListDevVar) { obj.ListDevVar.Add(nVar.Clone()); } foreach (CMessage nMsg in ListMsgLoop) { obj.ListMsgLoop.Add(nMsg.Clone()); } foreach (CMessage nMsg in ListMsgTime) { obj.ListMsgTime.Add(nMsg.Clone()); } foreach (CMessage nMsg in ListMsgCall) { obj.ListMsgCall.Add(nMsg.Clone()); } foreach (CMessage nMsg in ListMsgOther) { obj.ListMsgOther.Add(nMsg.Clone()); } return(obj); }
public bool GetDevicesFromXML()//获取所有设备信息 { ListDevice.Clear(); XmlDocument MyXmlDoc = new XmlDocument(); MyXmlDoc.Load(sIOPath); string xpath = "IO/DeviceInf_Table"; XmlElement childNode = (XmlElement)MyXmlDoc.SelectSingleNode(xpath); foreach (XmlElement node in childNode.ChildNodes) { CDevice nDev = new CDevice(); nDev.LoadFromNode(node); ListDevice.Add(nDev); } GetDevicesALLInfo(); //对应子站设备 foreach (CStation nSta in ListStation) { foreach (CDevice nDev in ListDevice) { if (nSta.Driver == nDev.Driver) { nSta.StaDevice = (CDevice)nDev.Clone(); nSta.MsgSplit(); nSta.GetExtendVar(); } } } return(true); }