| | |
| | | using HMI.Core.Entity; |
| | | using HMI.Core.Manager; |
| | | using HMI.Core.Util; |
| | | using HMI.LogUtil; |
| | | using System.Collections.Generic; |
| | | using System.Collections.ObjectModel; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Text.RegularExpressions; |
| | | |
| | | namespace HMI.ParameterManage.Model |
| | | { |
| | |
| | | |
| | | public bool ValidateParameterName(object value, out string msg) |
| | | { |
| | | string pattern = @"^[\p{L}_][\p{L}\p{N}_]*$"; |
| | | msg = null; |
| | | string name = value.ToString(); |
| | | |
| | | if (!Regex.IsMatch(name, pattern)) |
| | | { |
| | | msg = "参数名不能以数字开头"; |
| | | return false; |
| | | } |
| | | |
| | | if (Products == null) return true; |
| | | var temp = Parameters.FirstOrDefault(p => p.Name == name); |
| | | if (temp != null && temp != SelectedParameter) |
| | |
| | | else |
| | | { |
| | | InsertParameter(data); |
| | | LogHelper.Info("HMI", $"[{data.ProductName}] Add New Parameter {data.Name}. Value: {data.Value}", out _); |
| | | } |
| | | } |
| | | |
| | |
| | | /// <param name="datas"></param> |
| | | private void SaveProduct(IList<ProductData> datas) |
| | | { |
| | | XmlHelper.SerializeToXml(PathHelper.ProductDataFile, datas); |
| | | XmlHelper.SerializeToXml(ProductManager.GetDataFilePath(), datas); |
| | | } |
| | | #endregion |
| | | |
| | |
| | | public void UpdateParameter(int index, ParameterData data) |
| | | { |
| | | var temp = XmlHelper.DeepClone(Parameters); |
| | | var old = temp[index]; |
| | | temp[index] = data; |
| | | SaveParameter(temp); |
| | | if (old.Value != data.Value) |
| | | { |
| | | LogHelper.Info("HMI", $"Update Parameter {data.Name}. Value: {old.Value} => {data.Value}", out _); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="datas"></param> |
| | | private void SaveParameter(IList<ParameterData> datas) |
| | | { |
| | | string fileName = Path.Combine(PathHelper.ProductDataFolder, "Parameter", $"Parameter_{SelectedProduct.Name}.data"); |
| | | string fileName = ProductManager.GetParamFolderByProductName(SelectedProduct.Name); |
| | | XmlHelper.SerializeToXml(fileName, datas); |
| | | } |
| | | |
| | | private void SaveParameter(string product, IList<ParameterData> datas) |
| | | { |
| | | string fileName = Path.Combine(PathHelper.ProductDataFolder, "Parameter", $"Parameter_{product}.data"); |
| | | string fileName = ProductManager.GetParamFolderByProductName(product); |
| | | XmlHelper.SerializeToXml(fileName, datas); |
| | | } |
| | | #endregion |