using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using Aitex.Common.Util; using Aitex.Core.RT.Event; using Aitex.Core.RT.Log; using Aitex.Core.RT.ParameterCenter; using Aitex.Core.RT.RecipeCenter; namespace MECF.Framework.Common.ParameterCenter { public class DefaultParameterFileContext : IParameterFileContext { public string GetParameterDefiniton(string chamberType) { try { string parameterSchema = PathManager.GetCfgDir() + $@"\Parameter\{chamberType}\ParameterFormat.xml"; XmlDocument xmlDom = new XmlDocument(); xmlDom.Load(parameterSchema); return xmlDom.OuterXml; } catch (Exception ex) { LOG.Write(ex); return ""; } } public IEnumerable GetParameters(string path, bool includingUsedParameter) { try { var parameters = new List(); string parameterPath = PathManager.GetParameterDir() + path + "\\"; if (!Directory.Exists(parameterPath)) return parameters; var di = new DirectoryInfo(parameterPath); var fis = di.GetFiles("*.rcp", SearchOption.AllDirectories); foreach (var fi in fis) { string str = fi.FullName.Substring(di.FullName.Length); str = str.Substring(0, str.LastIndexOf('.')); if (includingUsedParameter || (!includingUsedParameter && !str.Contains("HistoryParameter\\"))) { parameters.Add(str); } } return parameters; } catch (Exception ex) { LOG.Write(ex); return new List(); } } public void PostInfoEvent(string message) { EV.PostMessage("System", EventEnum.GeneralInfo, message); } public void PostWarningEvent(string message) { EV.PostMessage("System", EventEnum.DefaultWarning, message); } public void PostAlarmEvent(string message) { EV.PostMessage("System", EventEnum.DefaultAlarm, message); } public void PostDialogEvent(string message) { EV.PostNotificationMessage(message); } public void PostInfoDialogMessage(string message) { EV.PostMessage("System", EventEnum.GeneralInfo, message); EV.PostPopDialogMessage(EventLevel.Information, "System Information", message); } public void PostWarningDialogMessage(string message) { EV.PostMessage("System", EventEnum.GeneralInfo, message); EV.PostPopDialogMessage(EventLevel.Warning, "System Warning", message); } public void PostAlarmDialogMessage(string message) { EV.PostMessage("System", EventEnum.GeneralInfo, message); EV.PostPopDialogMessage(EventLevel.Alarm, "System Alarm", message); } public string GetParameterTemplate(string chamberId) { string schema = GetParameterDefiniton(chamberId); XmlDocument dom = new XmlDocument(); dom.LoadXml(schema); XmlNode nodeTemplate = dom.SelectSingleNode("/Aitex/TableParameterData"); return nodeTemplate.OuterXml; } public Dictionary> GetGroupParameterTemplate() { string schema = GetParameterDefiniton("Developer"); XmlDocument dom = new XmlDocument(); dom.LoadXml(schema); return null; } } }