internal static void InitItems() { CJ.Settings = ConfigFile.ReadSettings(); CJ.Items = ConfigFile.GetItems().Select(i => new Item() { Id = i.Id }).ToArray(); }
internal static Settings ReadSettings() { if (_settings == null) { var doc = new XmlDocument(); doc.Load(ApplicationConfig.ConfigFile); var settings = new Settings(); var settingElement = doc.SelectSingleNode("/config/settings"); var communication_interval = settingElement.SelectSingleNode("communication_interval"); var temp_max = settingElement.SelectSingleNode("temp_max"); var temp_min = settingElement.SelectSingleNode("temp_min"); var gsm_number = settingElement.SelectSingleNode("gsm_number"); var gsm_pin = settingElement.SelectSingleNode("gsm_pin"); var gsm_answer = settingElement.SelectSingleNode("gsm_answer"); var hd20_offset = settingElement.SelectSingleNode("hd20_offset"); var phweb_gateway = settingElement.SelectSingleNode("phweb_gateway"); var phweb_ip = settingElement.SelectSingleNode("phweb_ip"); var phweb_mask = settingElement.SelectSingleNode("phweb_mask"); var regulation_mode = settingElement.SelectSingleNode("regulation_mode"); var meintenance = settingElement.SelectSingleNode("meintenance"); var temp_summer = settingElement.SelectSingleNode("temp_summer"); var building_type = settingElement.SelectSingleNode("building_type"); var temp_ui_min = settingElement.SelectSingleNode("temp_ui_min"); var temp_ui_max = settingElement.SelectSingleNode("temp_ui_max"); var curve_kc_k = settingElement.SelectSingleNode("curve_kc_k"); var curve_kp_k = settingElement.SelectSingleNode("curve_kp_k"); var hysteresis_min_start = settingElement.SelectSingleNode("hysteresis_min_start"); var hysteresis = settingElement.SelectSingleNode("hysteresis"); var pi_length = settingElement.SelectSingleNode("pi_length"); var pi_minimal_start = settingElement.SelectSingleNode("pi_minimal_start"); var pi_width = settingElement.SelectSingleNode("pi_width"); var lock_key = settingElement.SelectSingleNode("lock_key"); var unit_type = settingElement.SelectSingleNode("unit_type"); var boiler_type = settingElement.SelectSingleNode("boiler_type"); settings.CommunicationInterval = Convert.ToByte(communication_interval.InnerText); settings.TempMax = Convert.ToDecimal(temp_max.InnerText); settings.TempMin = Convert.ToByte(temp_min.InnerText); settings.GsmModemNumber = gsm_number.InnerText; settings.GsmModemPin = gsm_pin.InnerText; byte gsmAnswer; if (byte.TryParse(gsm_answer.InnerText, out gsmAnswer)) settings.GsmAnswer = gsmAnswer; byte hd20Offset; if (byte.TryParse(hd20_offset.InnerText, out hd20Offset)) settings.Hd20Offset = hd20Offset; settings.PhWebGateway = phweb_gateway.InnerText; settings.PhWebIP = phweb_ip.InnerText; settings.PhWebMask = phweb_mask.InnerText; settings.RegulationMode = Convert.ToByte(regulation_mode.InnerText); settings.Meintenance = meintenance.InnerText; settings.TempSummer = Convert.ToByte(temp_summer.InnerText); settings.BuildingType = Convert.ToByte(building_type.InnerText); settings.TempUiMin = Convert.ToByte(temp_ui_min.InnerText); settings.TempUiMax = Convert.ToByte(temp_ui_max.InnerText); settings.CurveKcK = Convert.ToByte(curve_kc_k.InnerText); settings.CurveKpK = Convert.ToByte(curve_kp_k.InnerText); settings.HysteresisMinStart = Convert.ToByte(hysteresis_min_start.InnerText); settings.Hysteresis = Convert.ToByte(hysteresis.InnerText); settings.PiLength = Convert.ToByte(pi_length.InnerText); settings.PiMinimalStart = Convert.ToByte(pi_minimal_start.InnerText); settings.PiWidth = Convert.ToByte(pi_width.InnerText); settings.LockKey = lock_key.InnerText; settings.UnitType = Convert.ToByte(unit_type.InnerText); byte boilerType; if (byte.TryParse(boiler_type.InnerText, out boilerType)) settings.BoilerType = boilerType; _settings = settings; } return _settings; }