ardupilot/Tools/ArdupilotMegaPlanner/Utilities/ParameterMetaDataRepository.cs
Michael Oborne f228eac8c7 APM Planner 1.1.97
add toy Mode
fix some mono issues
fix opengl hud issue
change config font size
modify mylabel for mono
modify default telem rates
add extra sonar option
remove 0 home alt check
fix terminal hang issue
remove application idle call, causes 100% cpu on mono
update gimbal icons
modify graph line thinkness
2012-07-12 22:06:22 +08:00

68 lines
2.2 KiB
C#

using System;
using System.Configuration;
using System.IO;
using System.Windows.Forms;
using System.Xml.Linq;
using System.Linq;
namespace ArdupilotMega.Utilities
{
public class ParameterMetaDataRepository
{
private static XDocument _parameterMetaDataXML;
/// <summary>
/// Initializes a new instance of the <see cref="ParameterMetaDataRepository"/> class.
/// </summary>
public ParameterMetaDataRepository()
{
Reload();
}
public void Reload()
{
string paramMetaDataXMLFileName = String.Format("{0}\\{1}", Application.StartupPath, ConfigurationManager.AppSettings["ParameterMetaDataXMLFileName"]);
try
{
if (File.Exists(paramMetaDataXMLFileName))
_parameterMetaDataXML = XDocument.Load(paramMetaDataXMLFileName);
}
catch { } // Exception System.Xml.XmlException: Root element is missing.
}
/// <summary>
/// Gets the parameter meta data.
/// </summary>
/// <param name="nodeKey">The node key.</param>
/// <param name="metaKey">The meta key.</param>
/// <returns></returns>
public string GetParameterMetaData(string nodeKey, string metaKey)
{
if(_parameterMetaDataXML != null)
{
// Use this to find the endpoint node we are looking for
// Either it will be pulled from a file in the ArduPlane hierarchy or the ArduCopter hierarchy
try
{
var element = _parameterMetaDataXML.Element("Params").Element(MainV2.cs.firmware.ToString());
if (element != null && element.HasElements)
{
var node = element.Element(nodeKey);
if (node != null && node.HasElements)
{
var metaValue = node.Element(metaKey);
if (metaValue != null)
{
return metaValue.Value;
}
}
}
}
catch { } // Exception System.ArgumentException: '' is an invalid expanded name.
}
return string.Empty;
}
}
}