| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- using System;
- using System.Linq;
- using System.Collections.Generic;
- using SHJX.Service.Model.XmlModules;
- namespace SHJX.Service.Common.ReadXML
- {
- public class ReadConfigUtil : AbstractConfiguration
- {
- private static ReadConfigUtil config;
- private static readonly object obj_lock = new();
- protected override string FileName => string.Concat(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "config/hypermanganate.config.xml");
- private ReadConfigUtil() { }
- public static ReadConfigUtil Instance
- {
- get
- {
- if (config is null)
- {
- lock (obj_lock)
- {
- ReadConfigUtil opConfig = new();
- opConfig.Load();
- config = opConfig.ConvertTo<ReadConfigUtil>();
- }
- }
- return config;
- }
- }
- #region Read XML
- #region Property
- public bool LoginRememberMe => Convert.ToBoolean(ReadSingleValue("/Equipment/UserLogin/@RememberMe"));
- public int Baudrate => Convert.ToInt32(ReadSingleValue("/Equipment/modbus-config/modbus-baudrate/@value"));
- public string PortName => ReadSingleValue("/Equipment/SerialPortConfig/SerialPort/@PortName");
- public bool AutoGetPort => Convert.ToBoolean(ReadSingleValue("/Equipment/SerialPortConfig/SerialPort/@AutoGetPortName"));
- public bool TaskRunning => Convert.ToBoolean(ReadSingleValue("/Equipment/SystemSingleSetting/TaskRunning/@value"));
- public bool AutomaticInLiquid => Convert.ToBoolean(ReadSingleValue("/Equipment/SystemSingleSetting/AutomaticInLiquid/@value"));
- public bool ExportTypeByExcel => Convert.ToBoolean(ReadSingleValue("/Equipment/SystemSingleSetting/ExportTypeByExcel/@value"));
- public bool ExportTypeByWord => Convert.ToBoolean(ReadSingleValue("/Equipment/SystemSingleSetting/ExportTypeByWord/@value"));
- public double DissolveTemperatureValue => Convert.ToDouble(ReadSingleValue("/Equipment/SystemSingleSetting/DissolveTemperatureSetting/@value"));
- public double TitrationTemperatureValue => Convert.ToDouble(ReadSingleValue("/Equipment/SystemSingleSetting/TitrationTemperatureSetting/@value"));
- public double TaskFinishTemperatureSetting => Convert.ToDouble(ReadSingleValue("/Equipment/SystemSingleSetting/TaskFinishTemperatureSetting/@value"));
- public bool TongsFeedBack => Convert.ToBoolean(ReadSingleValue("/Equipment/SystemSingleSetting/TongsFeedBack/@value"));
- public string LogiCamera1Name => ReadSingleValue("/Equipment/SystemSingleSetting/LogiCamera1Name /@value");
- public string LogiCamera2Name => ReadSingleValue("/Equipment/SystemSingleSetting/LogiCamera2Name /@value");
- public string LogiCamera1 => ReadSingleValue("/Equipment/SystemSingleSetting/LogiCamera1/@value");
- public string LogiCamera2 => ReadSingleValue("/Equipment/SystemSingleSetting/LogiCamera2/@value");
- public Dictionary<string, int> PortRegisters => GetPortRegisters("/Equipment/SerialPortConfig/PortRegisterPosition/PortRegister");
- public Dictionary<string, byte> PortNodeIDs => GetPortNodeIds("/Equipment/SerialPortConfig/PortNodeID/NodeId");
- public Dictionary<string, string> GetSettingTabItem => GetSettingItems("/Equipment/SettingTabItem/Item");
- public Dictionary<string, string> GetManualTabItem => GetSettingItems("/Equipment/ManualTabItem/Item");
- public List<OtherPositionArgs> OtherPositionArgs => GetOtherPosition("/Equipment/OtherPosition/Position");
- public string TemplateFilePath => ReadSingleValue("/Equipment/SystemSingleSetting/TemplateFilePath/@value");
- public string ResultFilePath => ReadSingleValue("/Equipment/SystemSingleSetting/ResultFilePath/@value");
- public List<SamplePosition> SamplePositions => GetSamplePosition("/Equipment/SamplePositions/Position");
- #endregion
- #region Method
- private List<SamplePosition> GetSamplePosition(string xmlpath)
- {
- List<SamplePosition> positions = new();
- IEnumerable<Dictionary<string, string>> definitions = ReadSetValue(xmlpath);
- foreach (Dictionary<string, string> item in definitions)
- {
- SamplePosition position = new()
- {
- Name = item["Name"],
- Count = Convert.ToInt32(item["Count"]),
- Value = item["Value"]
- };
- positions.Add(position);
- }
- return positions;
- }
- private List<OtherPositionArgs> GetOtherPosition(string xmlpath)
- {
- List<OtherPositionArgs> args = new();
- var definitions = ReadSetValue(xmlpath);
- foreach (var item in definitions)
- {
- var position = new OtherPositionArgs()
- {
- Name = item["Name"],
- TagText = item["TagText"]
- };
- args.Add(position);
- }
- return args;
- }
- private Dictionary<string, string> GetSettingItems(string xmlpath)
- {
- var definitions = ReadSetValue(xmlpath);
- return definitions.ToDictionary(item => item["value"], item => item["Map"]);
- }
- private Dictionary<string, int> GetPortRegisters(string xmlpath)
- {
- var definitions = ReadSetValue(xmlpath);
- return definitions.ToDictionary(item => item["EquipmentName"], item => Convert.ToInt32(item["Position"]));
- }
- private Dictionary<string, byte> GetPortNodeIds(string xmlpath)
- {
- var definitions = ReadSetValue(xmlpath);
- return definitions.ToDictionary(item => item["EquipmentName"], item => Convert.ToByte(item["NodeID"]));
- }
- private List<DropAmount> GetAmount(string xmlpath)
- {
- List<DropAmount> amounts = new();
- var definitions = ReadSetValue(xmlpath);
- foreach (var item in definitions)
- {
- amounts.Add(new DropAmount()
- {
- Name = item["Name"],
- Description = item["Description"],
- LowValue = Convert.ToDouble(item["LowValue"]),
- HighValue = Convert.ToDouble(item["HighValue"])
- });
- }
- return amounts;
- }
- private List<SpeedConfig> GetMotorSpeed(string xmlpath)
- {
- List<SpeedConfig> speeds = new();
- var definitions = ReadSetValue(xmlpath);
- foreach (var item in definitions)
- {
- speeds.Add(new SpeedConfig
- {
- NodeName = item["NodeName"],
- NodeId = item["NodeID"],
- Speed = Convert.ToInt32(item["Speed"]),
- AcSpeed = Convert.ToInt32(item["AC"]),
- DeSpeed = Convert.ToInt32(item["DE"]),
- Description = item["Description"]
- });
- }
- return speeds;
- }
- private List<FlowControlProxyArg> GetNameAndType(string xmlpath)
- {
- var proxyArgs = new List<FlowControlProxyArg>();
- var definitions = ReadSetValue(xmlpath);
- foreach (var item in definitions)
- {
- proxyArgs.Add(new FlowControlProxyArg()
- {
- Name = item["name"],
- Flow = item["type"],
- Proxy = item["proxy"]
- });
- }
- return proxyArgs;
- }
- #endregion
- #endregion
- #region Write XML
- public void UpdateTaskRunning(object value) => WriteSingleValue("/Equipment/SystemSingleSetting/TaskRunning/@value", value);
- public void UpdateTemplateFilePath(object value) => WriteSingleValue("/Equipment/SystemSingleSetting/TemplateFilePath/@value", value);
- public void UpdateResultWordFilePath(object value) => WriteSingleValue("/Equipment/SystemSingleSetting/ResultFilePath/@value", value);
- public void UpdateAutomaticInLiquid(object value) => WriteSingleValue("/Equipment/SystemSingleSetting/AutomaticInLiquid/@value", value);
- public void UpdateTaskFinishTemprature(object value) => WriteSingleValue("/Equipment/SystemSingleSetting/TaskFinishTemperatureSetting/@value", value);
- public void UpdateExportByExcel(object value)=> WriteSingleValue("/Equipment/SystemSingleSetting/ExportTypeByExcel/@value", value);
- public void UpdateExportByWord(object value) => WriteSingleValue("/Equipment/SystemSingleSetting/ExportTypeByWord/@value", value);
- public void UpdateDissolveTemperature(object value) => WriteSingleValue("/Equipment/SystemSingleSetting/DissolveTemperatureSetting/@value", value);
- public void UpdateTitrationTemperature(object value) => WriteSingleValue("/Equipment/SystemSingleSetting/TitrationTemperatureSetting/@value", value);
- public void UpdateFeedbackValue(object value) => WriteSingleValue("/Equipment/SystemSingleSetting/TongsFeedBack/@value", value);
- #endregion
- }
- }
|