//开始加载 private static bool LoadData() { if (wrapper != null) { //必须先清理 } //根据配置文件 初始化设备对象 try { FileStream txt = File.Open("Device.xml", FileMode.OpenOrCreate); System.Xml.Serialization.XmlSerializer serial = new System.Xml.Serialization.XmlSerializer(typeof(Model_Data.DeviceModel)); dm = (Model_Data.DeviceModel)serial.Deserialize(txt); } catch (Exception) { } if (dm == null) { return(false); } wrapper = PortSetting(dm); if (wrapper == null) { return(false); } wrapper.CreatCommand(); return(true); }
//加载端口 private static WrapperBll PortSetting(Model_Data.DeviceModel obj) { WrapperBll PS = new WrapperBll(); PS.Port = obj.Port; switch (obj.Port.PortType) { case Protocol.Modbus_SerialPort: PS.PortBll = AllPortBll.CreateInstance(Protocol.Modbus_SerialPort); PS.PortBll.SetParaMeter(CreatCommSerialEntity(obj)); break; case Protocol.Modbus_TCPIPPort: PS.PortBll = AllPortBll.CreateInstance(Protocol.Modbus_TCPIPPort); PS.PortBll.SetParaMeter(CreatCommTCPEntity(obj)); break; case Protocol.Modbus_USBPort: PS.PortBll = AllPortBll.CreateInstance(Protocol.Modbus_USBPort); break; default: return(null); } //Device DeviceBll deviceBLL = new DeviceBll(); deviceBLL.Device.DeviceName = obj.DeviceName; deviceBLL.Device.UnitId = obj.UnitId; deviceBLL.Device.write2DBInterval = obj.WriteDBTime; deviceBLL.Device.AnalogSignalValueTableName = obj.TableName; deviceBLL.Device.UIpath = obj.UIPath; // foreach (AnalogModel AnalogRow in obj.Analog) { AnalogBll analogSignalBLL = new AnalogBll(); analogSignalBLL.AnalogInfo = AnalogRow; deviceBLL.AnalogList.Add(analogSignalBLL); } // foreach (DigitalModel DigitalRow in obj.Digital) { DigitalBll digitalSignalBLL = new DigitalBll(); digitalSignalBLL.DigitalInfo = DigitalRow; deviceBLL.DigitalList.Add(digitalSignalBLL); } deviceBLL.SetSignalAlarmDelegate(); if (deviceBLL != null) { PS.DeviceList.Add(deviceBLL); } PS.SetDeviceDelegate(); return(PS); }
//开始加载 private static bool LoadData() { if (wrapper != null) { //必须先清理----程序正常流程不会发生这种情况 } //根据配置文件 初始化设备对象 try { string fileName = string.Empty; string culture = ConfigurationManager.AppSettings["Culture"]; if (string.IsNullOrEmpty(culture)) { culture = "EN"; } fileName = System.Windows.Forms.Application.StartupPath + "\\" + string.Format("Device{0}.xml", culture); FileStream txt = File.Open(fileName, FileMode.Open); System.Xml.Serialization.XmlSerializer serial = new System.Xml.Serialization.XmlSerializer(typeof(Model_Data.DeviceModel)); dm = (Model_Data.DeviceModel)serial.Deserialize(txt); txt.Close(); } catch (Exception ex) { throw ex; } if (dm == null) { return(false); } wrapper = PortSetting(dm); if (wrapper == null) { return(false); } wrapper.CreatCommand(); return(true); }