| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- using System;
- using System.Linq;
- using System.Collections.Generic;
- using SHJX.Service.Common.Model;
- using SHJX.Service.Model.Control;
- namespace SHJX.Service.Common.ReadXML
- {
- public class ReadConfigUtil : AbstractConfiguration
- {
- #region Read XML
- public string ConnStr => ReadSingleValue("/Equipment/data-source/connstr/@value");
- public int Baudrate => Convert.ToInt32(ReadSingleValue("/Equipment/modbus-config/modbus-baudrate/@value"));
- public string Port => ReadSingleValue("/Equipment/modbus-config/modbus-port/@port");
- public bool IsAutoGetPort => Convert.ToBoolean(ReadSingleValue("/Equipment/modbus-config/modbus-port/@isAuto"));
- public bool OpenAppStartHeat => Convert.ToBoolean(ReadSingleValue("/Equipment/SettingConfig/WhenSystemStartBeginHeating/@value"));
- public bool TaskRunning => Convert.ToBoolean(ReadSingleValue("/Equipment/SettingConfig/TaskRunning/@value"));
- public bool ManiGrabFeedBack => Convert.ToBoolean(ReadSingleValue("/Equipment/SettingConfig/ManiGrabFeedBack/@value"));
- public bool DripNozzleFeedBack => Convert.ToBoolean(ReadSingleValue("/Equipment/SettingConfig/DripNozzleFeedBack/@value"));
- public bool IsAddCupFeedBack => Convert.ToBoolean(ReadSingleValue("/Equipment/SettingConfig/IsAddCupFeedBack/@value"));
- public bool IsAddCupBiaoDingBubei => Convert.ToBoolean(ReadSingleValue("/Equipment/SettingConfig/IsAddCupBiaoDingBubei/@value"));
- public string TemplateFilePath => ReadSingleValue("/Equipment/SettingConfig/TemplateFilePath/@value");
- public bool SpeedWrite => Convert.ToBoolean(ReadSingleValue("/Equipment/modbus-config/MotorSpeeds/@write"));
- public string ResultWordFilePath => ReadSingleValue("/Equipment/SettingConfig/ResultWordFilePath/@value");
- public bool ExportTypeByExcel => Convert.ToBoolean(ReadSingleValue("/Equipment/SettingConfig/ExportTypeByExcel/@value"));
- public bool ExportTypeByWord => Convert.ToBoolean(ReadSingleValue("/Equipment/SettingConfig/ExportTypeByWord/@value"));
- public double PreheatTemperature => Convert.ToDouble(ReadSingleValue("/Equipment/SettingConfig/PreheatTemperature/@value"));
- public double AddWaterTemperature => Convert.ToDouble(ReadSingleValue("/Equipment/SettingConfig/AddWaterTemperature/@value"));
- public double CoolingPipeWatingTime => Convert.ToDouble(ReadSingleValue("/Equipment/SettingConfig/CoolingPipeWatingTime/@value"));
- public double DissolveMoveDistance => Convert.ToDouble(ReadSingleValue("/Equipment/SettingConfig/DissolveMoveDistance/@value"));
- public double PotassiumDichromateValue => Convert.ToDouble(ReadSingleValue("/Equipment/DropLiquidAmounts/Liquid[@Name='PotassiumDichromate']/@Value"));
- public double FASValue => Convert.ToDouble(ReadSingleValue("/Equipment/DropLiquidAmounts/Liquid[@Name='FAS']/@LowValue"));
- public List<MotorSpeed> GetSpeed => GetMotorSpeed("/Equipment/modbus-config/MotorSpeeds/Speed");
- public Dictionary<string, byte> ModBusNodeIDs => GetBodbusNodeId("/Equipment/modbus-config/ModbusNodeID/NodeId");
- public List<FlowControlProxyArg> GetResponsibility => GetNameAndType("/Equipment/responsibilitys/responsibility");
- public List<DropAmount> DropOnceAmounts => GetAmount("/Equipment/DropLiquidAmounts/Liquid");
- public string LogiCamera1 => ReadSingleValue("/Equipment/SettingConfig/LogiCamera1/@value");
- public string LogiCamera2 => ReadSingleValue("/Equipment/SettingConfig/LogiCamera2/@value");
- public int GetPositionDistance(string Name)
- {
- string value = ReadSingleValue("/Equipment/Positions/Position[@Name='" + Name + "']/@Value");
- string convert = ReadSingleValue("/Equipment/Positions/Position[@Name='" + Name + "']/@Convert");
- return Convert.ToInt32(Math.Round(Convert.ToDouble(value) * Convert.ToDouble(convert)));
- }
- private Dictionary<string, byte> GetBodbusNodeId(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;
- }
- public List<MotorSpeed> GetMotorSpeed(string xmlpath)
- {
- List<MotorSpeed> speeds = new();
- var definitions = ReadSetValue(xmlpath);
- foreach (var item in definitions)
- {
- speeds.Add(new MotorSpeed
- {
- 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
- #region Write XML
- public void UpdateAppStartHeat(string value) => WriteSingleValue("/Equipment/SettingConfig/WhenSystemStartBeginHeating/@value", value);
- public void UpdateTaskRunning(object value) => WriteSingleValue("/Equipment/SettingConfig/TaskRunning/@value", value);
- public void UpdateManiGrabFeedBack(object value) => WriteSingleValue("/Equipment/SettingConfig/ManiGrabFeedBack/@value", value);
- public void UpdateDripNozzleFeedBack(object value) => WriteSingleValue("/Equipment/SettingConfig/DripNozzleFeedBack/@value", value);
- public void UpdateIsAddCupFeedBack(object value) => WriteSingleValue("/Equipment/SettingConfig/IsAddCupFeedBack/@value", value);
- public void UpdateIsAddCupBiaoDingBubei(object value) => WriteSingleValue("/Equipment/SettingConfig/IsAddCupBiaoDingBubei/@value", value);
- public void UpdateTemplateFilePath(string value) => WriteSingleValue("/Equipment/SettingConfig/TemplateFilePath/@value", value);
- public void UpdateResultWordFilePath(string value) => WriteSingleValue("/Equipment/SettingConfig/ResultWordFilePath/@value", value);
- public void UpdateExportTypeByExcel(object value) => WriteSingleValue("/Equipment/SettingConfig/ExportTypeByExcel/@value", value);
- public void UpdateExportTypeByWord(object value) => WriteSingleValue("/Equipment/SettingConfig/ExportTypeByWord/@value", value);
- public void UpdatePreheatTemperature(object value) => WriteSingleValue("/Equipment/SettingConfig/PreheatTemperature/@value", value);
- public void UpdateAddWaterTemperature(object value) => WriteSingleValue("/Equipment/SettingConfig/AddWaterTemperature/@value", value);
- public void UpdateDissolveMoveDistance(object value) => WriteSingleValue("/Equipment/SettingConfig/DissolveMoveDistance/@value", value);
- public void UpdateCoolingPipeWatingTime(object value) => WriteSingleValue("/Equipment/SettingConfig/CoolingPipeWatingTime/@value", value);
- public void UpdateSpeedWrite(object value) => WriteSingleValue("/Equipment/modbus-config/MotorSpeeds/@write", value);
- public void UpdateSpeed(string node, object value) => WriteSingleValue("/Equipment/modbus-config/MotorSpeeds/Speed[@NodeID='" + node + "']/@Speed", value);
- public void UpdateAcSpeed(string node, object value) => WriteSingleValue("/Equipment/modbus-config/MotorSpeeds/Speed[@NodeID='" + node + "']/@AC", value);
- public void UpdateDeSpeed(string node, object value) => WriteSingleValue("/Equipment/modbus-config/MotorSpeeds/Speed[@NodeID='" + node + "']/@DE", value);
- public void UpdatePort(object value) => WriteSingleValue("/Equipment/modbus-config/modbus-port/@port", value);
- public void UpdateAutoFindPort(object value) => WriteSingleValue("/Equipment/modbus-config/modbus-port/@isAuto",value);
- public void UpdateAmount(List<DropAmount> amounts)
- {
- amounts.ForEach(item =>
- {
- WriteSingleValue("/Equipment/DropLiquidAmounts/Liquid[@Name='" + item.Name + "']/@LowValue", item.LowValue);
- WriteSingleValue("/Equipment/DropLiquidAmounts/Liquid[@Name='" + item.Name + "']/@HighValue", item.HighValue);
- });
- }
- #endregion
- }
- }
|