A3200 运动控制系统的核心参数管理类BaseParameters

public class BaseParameters
{
    private const string XPathConfiguration = "/p:configuration";

    private const string XPathParameters = "/p:configuration/p:Parameters";

    private const string XPathData = "/p:configuration/p:Data";

    private const string XPathController = "/p:configuration/p:Parameters/p:Controller";

    private const string XPathAxes = "/p:configuration/p:Parameters/p:Axes";

    private const string XPathTasks = "/p:configuration/p:Parameters/p:Tasks";

    private const string XPathSubAxis = "p:Axis";

    private const string XPathSubAxis_Format = "p:Axis[@number='{0}']";

    private const string XPathAxis = "/p:configuration/p:Parameters/p:Axes/p:Axis";

    private const string XPathSubTask = "p:Task";

    private const string XPathSubTask_Format = "p:Task[@number='{0}']";

    private const string XPathTask = "/p:configuration/p:Parameters/p:Tasks/p:Task";

    private const string XPathSubP = "p:P";

    private const string XPathSubP_Format = "p:P[@n='{0}']";

    private NamedConstantCollection<TaskParameterCategory, TaskId> tasks = new NamedConstantCollection<TaskParameterCategory, TaskId>(new TaskParameterCategory[0]);

    private SystemParameterCategory system;

    private NamedMaskableConstantCollection<AxisParameterCategory, string, AxisMask> axes;

    public static BaseParameters Defaults => Global.DefaultParameters;

    public INamedConstantCollection<TaskParameterCategory, TaskId> Tasks => tasks;

    public SystemParameterCategory System => system;

    public INamedMaskedConstantCollection<AxisParameterCategory, string, AxisMask> Axes => axes;

    internal NamedMaskableConstantCollection<AxisParameterCategory, string, AxisMask> MaskableAxes => axes;

    internal BaseParameters()
    {
    }

    internal virtual void SaveToFile(string fileName)
    {
        SaveToFile(fileName, null);
    }

    internal void SaveToFile(string fileName, XmlNode data)
    {
        fileName = Path.GetFullPath(fileName);
        XmlDocument xmlDocument = new XmlDocument();
        StringReader stringReader = new StringReader(InfoResources.parameters);
        XmlReader xmlReader = new XmlTextReader(stringReader);
        try
        {
            xmlDocument.LoadXml(InfoResources.parameters);
        }
        finally
        {
            stringReader.Close();
        }

        XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(xmlReader.NameTable);
        xmlNamespaceManager.AddNamespace("p", "http://www.aerotech.com/xsd/Controller/Parameters/2009/");
        SaveToFile(fileName, xmlDocument, xmlNamespaceManager, data);
    }

    internal void SaveToFile(string fileName, XmlDocument xdoc, XmlNamespaceManager nsMan, XmlNode data)
    {
        fileName = Path.GetFullPath(fileName);
        XmlDocument xmlDocument = new XmlDocument();
        xmlDocument.LoadXml(InfoResources.parameters);
        XmlNode xmlNode = xdoc.SelectSingleNode("/p:configuration/p:Parameters/p:Controller", nsMan);
        XmlNode xmlNode2 = xdoc.SelectSingleNode("/p:configuration/p:Parameters/p:Axes", nsMan);
        XmlNode xmlNode3 = xdoc.SelectSingleNode("/p:configuration/p:Parameters/p:Tasks", nsMan);
        Dictionary<string, XmlNode> dictionary = new Dictionary<string, XmlNode>();
        foreach (XmlNode item in xmlNode.SelectNodes("p:P", nsMan))
        {
            string value = item.Attributes["n"].Value;
            dictionary[value] = item;
        }

        Dictionary<int, Dictionary<str
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值