/// <summary> /// 创建VOBC设备工厂 /// </summary> /// <param name="type"></param> /// <returns></returns> private VOBCDevice CreateVOBCDevice(string type) { //创建VOBC服务实例 VOBCDevice device = null; //依据数据的设备类型 返回不同的实体对象 switch (type) { case "CCOV": device = new VOBCCCOVDevice(this); break; case "COM": device = new VOBCCOMDevice(this); break; case "ATP": device = new VOBCATPDevice(this); break; case "ATO": device = new VOBCATODevice(this); break; case "MMI": device = new VOBCMMIDevice(this); break; default: device = new VOBCDevice(this); break; } return(device); }
/// <summary> /// VOBC产品的数据加载 /// </summary> /// <param name="xmlNode"></param> public override void LoadXml(XmlNode xmlNode) { m_productID = xmlNode.Attributes[CShareLib.XML_PRODUCTID].InnerText; m_productName = xmlNode.Attributes[CShareLib.XML_PRODUCTNAME].InnerText; m_productState = xmlNode.Attributes[CShareLib.XML_PRODUCT_STATE].InnerText; m_ip = xmlNode.Attributes[CShareLib.XML_PRODUCT_IP].InnerText; m_port = xmlNode.Attributes[CShareLib.XML_PRODUCT_PORT].InnerText; m_cProductLine = CDeviceDataFactory.Instance.ProjectConsole.ProductLine; ///遍历所有子节点,加载所属子子系统的数据 foreach (XmlNode node in xmlNode.ChildNodes) { string type = node.Attributes[CShareLib.XML_DEVICE_TYPE].InnerText; VOBCDevice device = CreateVOBCDevice(type); if (device != null) { device.LoadXml(node); m_cBelongsDevice.Add(device); LogManager.InfoLog.LogConfigurationInfo("线路数据", "VOBC产品设备数据", "完成加载VOBC" + this.ProductID + "的子子系统:" + device.DeviceName + "数据"); } else { LogManager.InfoLog.LogCommunicationError("MainWindow", "ProductReport", "非法设备类型" + type); } } }