예제 #1
0
파일: CDevice.cs 프로젝트: tomyqg/SemiGC
        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);
        }
예제 #2
0
        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);
        }