private void ProcessItem(configitem item) { try { if (!MainV2.comPort.MAV.param.ContainsKey(item.paramname)) { return; } var value = (float)MainV2.comPort.MAV.param[item.paramname]; if (value < item.min) { item.min = value; } if (value > item.max) { item.max = value; } var range = ParameterMetaDataRepository.GetParameterMetaData(item.paramname, ParameterMetaDataConstants.Range, MainV2.comPort.MAV.cs.firmware.ToString()); var increment = ParameterMetaDataRepository.GetParameterMetaData(item.paramname, ParameterMetaDataConstants.Increment, MainV2.comPort.MAV.cs.firmware.ToString()); var rangeopt = range.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (rangeopt.Length > 1) { item.min = float.Parse(rangeopt[0], CultureInfo.InvariantCulture); item.max = float.Parse(rangeopt[1], CultureInfo.InvariantCulture); } var incrementf = 0.01f; if (increment.Length > 0) { float.TryParse(increment, NumberStyles.Float, CultureInfo.InvariantCulture, out incrementf); } var RNG = new RangeControl(item.paramname, item.desc, item.title, incrementf, 1, item.min, item.max, value.ToString()); RNG.Tag = item; RNG.Location = new Point(10, y); RNG.AttachEvents(); RNG.ValueChanged += RNG_ValueChanged; ThemeManager.ApplyThemeTo(RNG); panel1.Controls.Add(RNG); y += RNG.Height; } catch (Exception ex) { CustomMessageBox.Show("Failed to process " + item.paramname + "\n" + ex); } }
void ProcessItem(configitem item) { try { float value = (float)MainV2.comPort.param[item.paramname]; if (value < item.min) { item.min = value; } if (value > item.max) { item.max = value; } ParameterMetaDataRepository _parameterMetaDataRepository = new ParameterMetaDataRepository(); string range = _parameterMetaDataRepository.GetParameterMetaData(item.paramname, ParameterMetaDataConstants.Range); string increment = _parameterMetaDataRepository.GetParameterMetaData(item.paramname, ParameterMetaDataConstants.Increment); string[] rangeopt = range.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (rangeopt.Length > 1) { item.min = float.Parse(rangeopt[0], System.Globalization.CultureInfo.InvariantCulture); item.max = float.Parse(rangeopt[1], System.Globalization.CultureInfo.InvariantCulture); } float incrementf = 0.01f; if (increment.Length > 0) { float.TryParse(increment, out incrementf); } ArdupilotMega.Controls.RangeControl RNG = new ArdupilotMega.Controls.RangeControl(item.paramname, item.desc, item.title, incrementf, 1, item.min, item.max, value.ToString()); RNG.Tag = item; RNG.Location = new Point(10, y); RNG.AttachEvents(); RNG.ValueChanged += RNG_ValueChanged; ThemeManager.ApplyThemeTo(RNG); panel1.Controls.Add(RNG); y += RNG.Height; } catch (Exception ex) { CustomMessageBox.Show("Failed to process " + item.paramname + "\n" + ex.ToString()); } }
/// <summary> /// Sets the value of a single configuration item /// </summary> /// <param name="configItem"></param> /// <returns></returns> public ConfigItem Set(ConfigItem configItem) { ConfigItem retval = configItem; // If we have a brand new item, add it: if (configItem.Id == 0) { var newItem = new configitem { application = configItem.Application, machine = configItem.Machine ?? "", name = configItem.Name, value = configItem.Value, updated = DateTime.Now }; _context.configitems.Add(newItem); _context.SaveChanges(); retval.Id = newItem.id; } else { // Otherwise, find the existing item and update it: var query = from item in _context.configitems where item.id == configItem.Id select item; if (query.Any()) { var item = query.FirstOrDefault(); item.application = configItem.Application; item.name = configItem.Name; item.value = configItem.Value; item.machine = configItem.Machine ?? ""; item.updated = DateTime.Now; _context.SaveChanges(); } } return(retval); }
/// <summary> /// The template xml for the screen /// </summary> /// <param name="FileName"></param> public void LoadXML(string FileName) { using (XmlReader reader = XmlReader.Create(FileName)) { reader.Read(); reader.ReadStartElement("simple"); while (!reader.EOF) { reader.ReadToFollowing("ac"); if (reader.Name == "") break; XmlReader acinner = reader.ReadSubtree(); while (acinner.ReadToFollowing("param")) { XmlReader inner = acinner.ReadSubtree(); configitem item = new configitem(); while (inner.Read()) { inner.MoveToElement(); if (inner.IsStartElement()) { switch (inner.Name.ToLower()) { case "title": item.title = inner.ReadString(); break; case "desc": item.desc = inner.ReadString(); break; case "name": item.paramname = inner.ReadString(); break; case "value": item.paramvalue = float.Parse(inner.ReadString(), System.Globalization.NumberFormatInfo.InvariantInfo); break; case "min": item.min = float.Parse(inner.ReadString(), System.Globalization.NumberFormatInfo.InvariantInfo); break; case "max": item.max = float.Parse(inner.ReadString(), System.Globalization.NumberFormatInfo.InvariantInfo); break; case "relation": XmlReader relation = reader.ReadSubtree(); relationitem relitem = new relationitem(); while (relation.Read()) { relation.MoveToElement(); if (relation.Name == "param") { relitem.paramaname = inner.ReadString(); } else if (relation.Name == "multiplier") { relitem.multiplier = float.Parse(inner.ReadString(), System.Globalization.NumberFormatInfo.InvariantInfo); } } item.relations.Add(relitem); break; } } } // process item to screen ProcessItem(item); } } } }
void ProcessItem(configitem item) { try { float value = (float)MainV2.comPort.MAV.param[item.paramname]; if (value < item.min) item.min = value; if (value > item.max) item.max = value; string range = ParameterMetaDataRepository.GetParameterMetaData(item.paramname, ParameterMetaDataConstants.Range); string increment = ParameterMetaDataRepository.GetParameterMetaData(item.paramname, ParameterMetaDataConstants.Increment); string[] rangeopt = range.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (rangeopt.Length > 1) { item.min = float.Parse(rangeopt[0], System.Globalization.CultureInfo.InvariantCulture); item.max = float.Parse(rangeopt[1], System.Globalization.CultureInfo.InvariantCulture); } float incrementf = 0.01f; if (increment.Length > 0) float.TryParse(increment,NumberStyles.Float, CultureInfo.InvariantCulture, out incrementf); Controls.RangeControl RNG = new Controls.RangeControl(item.paramname, item.desc, item.title, incrementf, 1, item.min, item.max, value.ToString()); RNG.Tag = item; RNG.Location = new Point(10, y); RNG.AttachEvents(); RNG.ValueChanged += RNG_ValueChanged; ThemeManager.ApplyThemeTo(RNG); panel1.Controls.Add(RNG); y += RNG.Height; } catch (Exception ex) { CustomMessageBox.Show("Failed to process " + item.paramname + "\n" + ex.ToString()); } }
/// <summary> /// The template xml for the screen /// </summary> /// <param name="FileName"></param> public void LoadXML(string FileName) { using (var reader = XmlReader.Create(FileName)) { reader.Read(); reader.ReadStartElement("simple"); while (!reader.EOF) { reader.ReadToFollowing("ac"); if (reader.Name == "") { break; } var acinner = reader.ReadSubtree(); while (acinner.ReadToFollowing("param")) { var inner = acinner.ReadSubtree(); var item = new configitem(); while (inner.Read()) { inner.MoveToElement(); if (inner.IsStartElement()) { switch (inner.Name.ToLower()) { case "title": item.title = inner.ReadString(); break; case "desc": item.desc = inner.ReadString(); break; case "name": item.paramname = inner.ReadString(); break; case "value": item.paramvalue = float.Parse(inner.ReadString(), NumberFormatInfo.InvariantInfo); break; case "min": item.min = float.Parse(inner.ReadString(), NumberFormatInfo.InvariantInfo); break; case "max": item.max = float.Parse(inner.ReadString(), NumberFormatInfo.InvariantInfo); break; case "relation": var relation = reader.ReadSubtree(); var relitem = new relationitem(); while (relation.Read()) { relation.MoveToElement(); if (relation.Name == "param") { relitem.paramaname = inner.ReadString(); } else if (relation.Name == "multiplier") { relitem.multiplier = float.Parse(inner.ReadString(), NumberFormatInfo.InvariantInfo); } } item.relations.Add(relitem); break; } } } // process item to screen ProcessItem(item); } } } }