diff --git a/BPASmartClient.Business/Plugin/ConfigMgr.cs b/BPASmartClient.Business/Plugin/ConfigMgr.cs index 05cc195a..51d5134e 100644 --- a/BPASmartClient.Business/Plugin/ConfigMgr.cs +++ b/BPASmartClient.Business/Plugin/ConfigMgr.cs @@ -33,8 +33,8 @@ namespace BPASmartClient.Business { ClientId = int.Parse(System.Configuration.ConfigurationManager.AppSettings["ClientId"]); apolloUri = System.Configuration.ConfigurationManager.AppSettings["ApolloUri"].ToString(); - InternetInfo.OrderServer= System.Configuration.ConfigurationManager.AppSettings["OrderServiceUri"].ToString(); - InternetInfo.StockServer= System.Configuration.ConfigurationManager.AppSettings["StockServiceUri"].ToString(); + InternetInfo.OrderServer = System.Configuration.ConfigurationManager.AppSettings["OrderServiceUri"].ToString(); + InternetInfo.StockServer = System.Configuration.ConfigurationManager.AppSettings["StockServiceUri"].ToString(); InitDeviceModel(); InitMQTT(); @@ -61,15 +61,25 @@ namespace BPASmartClient.Business DeviceConfig deviceConfig = new DeviceConfig(); deviceConfig.Name = device.Attribute("Name").Value; deviceConfig.Module = device.Attribute("Module").Value; - deviceConfig.DeviceId =int.Parse(device.Attribute("DeviceId").Value); + deviceConfig.DeviceId = int.Parse(device.Attribute("DeviceId").Value); + if (null != device.Element("Parameters")) + { + foreach (var deviceParameter in device.Element("Parameters").Elements()) + { + deviceConfig.Parameters.Add(deviceParameter.Name.LocalName, deviceParameter.Value); + } + } foreach (var peripheralEl in device.XPathSelectElements("//Peripheral")) { BPASmartClient.Model.Peripheral peripheral = new BPASmartClient.Model.Peripheral(); peripheral.Module = peripheralEl.Attribute("Module").Value; - foreach (XElement parameter in peripheralEl.Element("Parameters").Elements()) + if (null != peripheralEl.Element("Parameters")) { - peripheral.Parameters.Add(parameter.Name.LocalName, parameter.Value); + foreach (XElement parameter in peripheralEl.Element("Parameters").Elements()) + { + peripheral.Parameters.Add(parameter.Name.LocalName, parameter.Value); + } } deviceConfig.Peripherals.Add(peripheral); } diff --git a/BPASmartClient.Business/Plugin/DeviceMgr.cs b/BPASmartClient.Business/Plugin/DeviceMgr.cs index 176d5a04..10b97840 100644 --- a/BPASmartClient.Business/Plugin/DeviceMgr.cs +++ b/BPASmartClient.Business/Plugin/DeviceMgr.cs @@ -53,6 +53,10 @@ namespace BPASmartClient.Business var deviceTemp = Assembly.Load(device.Module.Substring(0, device.Module.LastIndexOf('.'))).CreateInstance(device.Module) as IDevice; deviceTemp.Name = device.Name; deviceTemp.DeviceId = device.DeviceId; + foreach (var pars in device.Parameters) + { + deviceTemp.GetType().GetProperty(pars.Key).SetValue(deviceTemp, Convert.ChangeType(pars.Value, deviceTemp.GetType().GetProperty(pars.Key).PropertyType)); + } List peripherals = new List(); foreach (var peripheral in device.Peripherals) diff --git a/BPASmartClient.Model/DeviceConfigModel.cs b/BPASmartClient.Model/DeviceConfigModel.cs index 0ee55e72..abdfcfe8 100644 --- a/BPASmartClient.Model/DeviceConfigModel.cs +++ b/BPASmartClient.Model/DeviceConfigModel.cs @@ -16,6 +16,8 @@ namespace BPASmartClient.Model public string Name { get; set; } public string Module { get; set; } public int DeviceId { get; set; } + public Dictionary Parameters { get; set; } = new Dictionary(); + public List Peripherals { get; set; } = new List(); } diff --git a/BPASmartClient/DeviceInfo.xml b/BPASmartClient/DeviceInfo.xml index 29ad23e7..6bba8e12 100644 --- a/BPASmartClient/DeviceInfo.xml +++ b/BPASmartClient/DeviceInfo.xml @@ -20,6 +20,10 @@ --> + + 127.0.10.1 + 11 +