Config.cs 5.5 KB
using System;
using System.Collections.Generic;
using System.Xml;

namespace BLL
{
    public class Config
    {
        private XmlDocument xDoc;
        private XmlNode xRoot;
        private XmlNode xNode;
        private string path;
        private string print;
        private string lang;
        private string port;
        private string command;
        private string labelName;
        private bool multiCamera;

        /// <summary>
        /// 错误信息
        /// </summary>
        public string ErrInfo { get; private set; }

        /// <summary>
        /// 本地打印机列表
        /// </summary>
        public string[] PrinterList { get; private set; }

        /// <summary>
        /// 光源关闭命令
        /// </summary>
        public string LightClose { get; private set; }

        /// <summary>
        /// IO的IP地址
        /// </summary>
        public string IOAddress { get; private set; }

        /// <summary>
        /// 自动工作,使用脚踏开关
        /// </summary>
        public bool Work { get; private set; }

        /// <summary>
        /// 指定的相机
        /// </summary>
        public string Camera { get; private set; }

        /// <summary>
        /// 标签的字段
        /// </summary>
        public string[] FieldName { get; private set; }

        public string[] FieldRemark { get; private set; }
        


        public Config(string path)
        {
            this.path = path;
            xDoc = new XmlDocument();
            try
            {
                xDoc.Load(path);
                xNode = xRoot = xDoc.LastChild;
            }
            catch (Exception ex)
            {
                ErrInfo = ex.Message;
                return;
            }

            xNode = xRoot.SelectSingleNode("Language");
            Language = xNode.InnerText;
            xNode = xRoot.SelectSingleNode("Work");
            Work = Convert.ToBoolean(xNode.InnerText);
            xNode = xRoot.SelectSingleNode("Camera");
            Camera = xNode.InnerText;
            xNode = xRoot.SelectSingleNode("Label");
            LabelName = xNode.InnerText;
            xNode = xRoot.SelectSingleNode("IOIP");
            IOAddress = xNode.InnerText;
            xNode = xRoot.SelectSingleNode("Printer");
            Printer = xNode.InnerText;
            xNode = xRoot.SelectSingleNode("LightPort");
            LightPort = xNode.InnerText;
            xNode = xRoot.SelectSingleNode("LightOpen");
            LightOpen = xNode.InnerText;
            xNode = xRoot.SelectSingleNode("LightClose");
            LightClose = xNode.InnerText;
            xNode = xRoot.SelectSingleNode("MultiCamera");
            multiCamera = Convert.ToBoolean(xNode.InnerText);




            //xNode = xRoot.SelectSingleNode("QRCode");
            //QRCode = xNode.InnerText;

            //XmlNodeList nodeList = xRoot.SelectNodes("Field");
            //Field = new Dictionary<string, string[]>();
            //foreach (XmlNode nn in nodeList)
            //    Field.Add(((XmlElement)nn).GetAttribute("ID"), nn.InnerText.Split(','));

            List<string> list = new List<string>();
            foreach (string ss in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
                list.Add(ss);
            PrinterList = list.ToArray();
        }

        /// <summary>
        /// 默认打印机
        /// </summary>
        public string Printer
        {
            get
            {
                return print;
            }
            set
            {
                print = value;
                xRoot.SelectSingleNode("Printer").InnerText = print;
                xDoc.Save(path);
            }
        }

        /// <summary>
        /// 光源串口名
        /// </summary>
        public string LightPort
        {
            get
            {
                return port;
            }
            set
            {
                port = value;
                xRoot.SelectSingleNode("LightPort").InnerText = port;
                xDoc.Save(path);
            }
        }

        /// <summary>
        /// 光源命令
        /// </summary>
        public string LightOpen
        {
            get
            {
                return command;
            }
            set
            {
                command = value;
                xRoot.SelectSingleNode("LightOpen").InnerText = command;
                xDoc.Save(path);
            }
        }

        /// <summary>
        /// 默认标签名称
        /// </summary>
        public string LabelName
        {
            get
            {
                return labelName;
            }
            set
            {
                labelName = value;
                xRoot.SelectSingleNode("Label").InnerText = labelName;
                xDoc.Save(path);
            }
        }

        /// <summary>
        /// 默认语言
        /// </summary>
        public string Language
        {
            get
            {
                return lang;
            }
            set
            {
                lang = value;
                xRoot.SelectSingleNode("Language").InnerText = lang;
                xDoc.Save(path);
            }
        }

        /// <summary>
        /// 启用多个相机
        /// </summary>
        public bool MultiCamera
        {
            set {
                multiCamera = value;
                xRoot.SelectSingleNode("MultiCamera").InnerText = multiCamera.ToString();
                xDoc.Save(path);
            }
            get
            {
                return multiCamera;
            }
        }





    }

}