using System; using System.IO; using System.Xml.Serialization; using System.Collections.Generic; using SHJX.Service.Common.ReadXML.CustomXmlSerializer.Model; namespace SHJX.Service.Common.ReadXML.CustomXmlSerializer { public class XmlSerializerConfig { private static string _opKey; private static string ConfigFileName => string.Concat(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "conf/", _opKey, ".config.xml"); public static void CreateConfigUtil(string opKey) { _opKey = opKey; if (File.Exists(ConfigFileName)) return; var equipment = new Equipment { Name = "Test", DataSources = GetDataSource(), ClientSettings = GetSettings(), Responsibilitys = GetResponsibility(), Nodes = GetNodes(), Speeds = GetSpeeds(), DefaultValues = GetDefaults(), TemplatePaths = GetFieldPaths(), Positions = GetPositions() }; var xml = new XmlSerializer(typeof(Equipment)); var ns = new XmlSerializerNamespaces(); ns.Add(string.Empty, string.Empty);//不要命名空间 using var writer = new StreamWriter(ConfigFileName); xml.Serialize(writer, equipment, ns); } public static void GetReadConfig() { var fileStream = new FileStream(ConfigFileName, FileMode.Open); var xml = new XmlSerializer(typeof(Equipment)); Equipment myObject = xml.Deserialize(fileStream) as Equipment; } private static List GetPositions() { return new List { new Position{ Name ="Dissolve", Value=362.5,Convert=4000} }; } private static List GetFieldPaths() { return new List { new TemplatePath(){ Name ="TemplateFile",Value=""}, new TemplatePath(){ Name ="ResultWordFile",Value=""} }; } private static List GetDefaults() { return new List { new DefaultValue{Name="TaskRunning",Value=true}, new DefaultValue{Name="WhenSystemStartBeginHeating",Value=false} }; } private static List GetSpeeds() { return new List { new MotorSpeed{ Node ="1",Speed=1,AC=10,DE=300}, new MotorSpeed{ Node ="2",Speed=1,AC=10,DE=300}, new MotorSpeed{ Node ="3",Speed=1,AC=10,DE=300}, new MotorSpeed{ Node ="4",Speed=1,AC=10,DE=300}, new MotorSpeed{ Node ="5",Speed=1,AC=10,DE=300}, }; } private static List GetNodes() { return new List { new Node("MotorX", 1), new Node("MotorY",2), new Node("MotorZ",3), new Node("MotorT",4), new Node("Mani",3), new Node("Cage",4), new Node("Dissolve",5), new Node("Titration",6), new Node("Titration2",6), new Node("AgSO_Pump",7), new Node("TitrationStir",8), new Node("TitrationStir2",8), new Node("FAS",8), new Node("DripNozzle",8), new Node("DripNozzle2",8), new Node("Heat",11) }; } private static List GetResponsibility() { return new List { new Responsibility { Name = "CC", Type = "SHJX.Service.Control.RouteFlow.CalibrationCoolingFlow", TypeProxy = "SHJX.Service.Control.RouteController.CalibrationCoolingOperate" }, new Responsibility { Name = "Ca", Type = "SHJX.Service.Control.RouteFlow.CaFlow", TypeProxy = "SHJX.Service.Control.RouteController.CageOperate" }, new Responsibility { Name = "DAL", Type = "SHJX.Service.Control.RouteFlow.DissolveAddLiquidFlow", TypeProxy = "SHJX.Service.Control.RouteController.DissolveAddLiquidOperate" }, new Responsibility { Name = "DAW", Type = "SHJX.Service.Control.RouteFlow.DissolveAddWaterFlow", TypeProxy = "SHJX.Service.Control.RouteController.DissolveAddWaterOperate" }, new Responsibility { Name = "DM", Type = "SHJX.Service.Control.RouteFlow.DissolveMoveFlow", TypeProxy = "SHJX.Service.Control.RouteController.DissolveMoveOperate" }, new Responsibility { Name = "DC", Type = "SHJX.Service.Control.RouteFlow.DissolveCoolingFlow", TypeProxy = "SHJX.Service.Control.RouteController.DissolveCoolingOperate" }, new Responsibility { Name = "LH", Type = "SHJX.Service.Control.RouteFlow.LiquidHeatingFlow", TypeProxy = "SHJX.Service.Control.RouteController.LiquidHeatingOperate" }, new Responsibility { Name = "LS", Type = "SHJX.Service.Control.RouteFlow.LiquidStirFlow", TypeProxy = "SHJX.Service.Control.RouteController.LiquidStirOperate" }, new Responsibility { Name = "Mani", Type = "SHJX.Service.Control.RouteFlow.ManiFlow", TypeProxy = "SHJX.Service.Control.RouteController.ManiOperate" }, new Responsibility { Name = "MTM", Type = "SHJX.Service.Control.RouteFlow.MotorTMoveFlow", TypeProxy = "SHJX.Service.Control.RouteController.MotorTOperate" }, new Responsibility { Name = "MXM", Type = "SHJX.Service.Control.RouteFlow.MotorXMoveFlow", TypeProxy = "SHJX.Service.Control.RouteController.MotorXOperate" }, new Responsibility { Name = "MYM", Type = "SHJX.Service.Control.RouteFlow.MotorYMoveFlow", TypeProxy = "SHJX.Service.Control.RouteController.MotorYOperate" }, new Responsibility { Name = "MZM", Type = "SHJX.Service.Control.RouteFlow.MotorZMoveFlow", TypeProxy = "SHJX.Service.Control.RouteController.MotorZOperate" }, new Responsibility { Name = "SAL1", Type = "SHJX.Service.Control.RouteFlow.SampleAL1Flow", TypeProxy = "SHJX.Service.Control.RouteController.SampleAL1Operate" }, new Responsibility { Name = "SAL2", Type = "SHJX.Service.Control.RouteFlow.SampleAL2Flow", TypeProxy = "SHJX.Service.Control.RouteController.SampleAL2Operate" }, new Responsibility { Name = "SC", Type = "SHJX.Service.Control.RouteFlow.SampleCoolingFlow", TypeProxy = "SHJX.Service.Control.RouteController.SampleCoolingOperate" }, new Responsibility { Name = "TAL1", Type = "SHJX.Service.Control.RouteFlow.TitrationAL1Flow", TypeProxy = "SHJX.Service.Control.RouteController.TitrationAddIndicatorOperate" }, new Responsibility { Name = "TAL2", Type = "SHJX.Service.Control.RouteFlow.TitrationAL2Flow", TypeProxy = "SHJX.Service.Control.RouteController.TitrationOperate" } }; } private static List GetSettings() { return new List() { new ClientSetting() { Port = "COM7", AutoClient = true, BaudRate = 9600 } }; } private static List GetDataSource() { return new List { new DataSource() { dbtype = "MySQL", connstr = "Database=jx_equipment;Data Source=localhost;User Id=root;Password=root123456;CharSet=utf8;port=3306;SslMode=none;" } }; } } }