using Aitex.Core.RT.Log; using Aitex.Core.RT.ParameterCenter; using Caliburn.Micro.Core; using MECF.Framework.Common.ParameterCenter; using MECF.Framework.UI.Client.CenterViews.Editors.Recipe; using RecipeEditorLib.RecipeModel.Params; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Xml; namespace MECF.Framework.UI.Client.CenterViews.Parameter { public class AlarmConditionParameterData : ParameterDataBase { private ParameterProvider _parameterProvider = new ParameterProvider(); private ParameterFormatBuilder _columnBuilder = new ParameterFormatBuilder(); private Dictionary> ParameterTemplate; public AlarmConditionParameterData() : base() { string vars = _parameterProvider.GetParameterFormatXml($"Parameter\\AlarmCondition"); _columnBuilder.Build($"Parameter\\AlarmCondition"); ParameterTemplate = _parameterProvider.GetGroupParameterTemplate(); TableNumber = _columnBuilder.TableNumber; Version = _columnBuilder.Version; for (int i = 1; i < TableNumber + 1; i++) { Steps.Add(CreateStep()); } } public override ParameterTable CreateStep(XmlNode stepNode = null) { ParameterTable step = new AlarmConditionTable(); if (stepNode != null) { if (stepNode.Attributes["StepNo"] != null) step.StepNo = int.Parse(stepNode.Attributes["StepNo"].Value); if (stepNode.Attributes["Name"] != null) step.Name = stepNode.Attributes["Name"].Value; //if (stepNode.Attributes["UseTemp"] != null) // step.UseTemp = stepNode.Attributes["UseTemp"].Value; } else { step.StepNo = StepNo; step.Name = "Name" + StepNo.ToString(); // step.UseTemp = "0"; StepNo++; } int pIDIndex = 1; InitializationData(step); if (stepNode != null) { if (stepNode.Attributes["TempHeater"] != null) { ((AlarmConditionTable)step).SetHeaterTempData(stepNode.Attributes["TempHeater"].Value); } if (stepNode.Attributes["TempBoat"] != null) { ((AlarmConditionTable)step).SetBoatTempData(stepNode.Attributes["TempBoat"].Value); } if (stepNode.Attributes["FlowDeviation"] != null) { ((AlarmConditionTable)step).SetMFCFlowDeviationData(stepNode.Attributes["FlowDeviation"].Value); } if (stepNode.Attributes["Press"] != null) { ((AlarmConditionTable)step).SetPressData(stepNode.Attributes["Press"].Value); } if (stepNode.Attributes["AUX"] != null) { ((AlarmConditionTable)step).SetAUXData(stepNode.Attributes["AUX"].Value); } if (stepNode.Attributes["HWILK"] != null) { ((AlarmConditionTable)step).SetHWILKData(stepNode.Attributes["HWILK"].Value); } if (stepNode.Attributes["ValveILK"] != null) { ((AlarmConditionTable)step).SetValveIlkData(stepNode.Attributes["ValveILK"].Value); } if (stepNode.Attributes["TempController"] != null) { ((AlarmConditionTable)step).SetTempControlerData(stepNode.Attributes["TempController"].Value); } if (stepNode.Attributes["APCController"] != null) { ((AlarmConditionTable)step).SetAPCControlerData(stepNode.Attributes["APCController"].Value); } if (stepNode.Attributes["CLNAlarmList"] != null) { ((AlarmConditionTable)step).SetCLNAlarmListData(stepNode.Attributes["CLNAlarmList"].Value); } if (stepNode.Attributes["TransferError"] != null) { ((AlarmConditionTable)step).SetTransferErrorData(stepNode.Attributes["TransferError"].Value); } if (stepNode.Attributes["SerialLineDown"] != null) { ((AlarmConditionTable)step).SetSerialLineDownData(stepNode.Attributes["SerialLineDown"].Value); } if (stepNode.Attributes["LanLineDown"] != null) { ((AlarmConditionTable)step).SetLanLineDownData(stepNode.Attributes["LanLineDown"].Value); } //if (stepNode.Attributes["DeviceNetLineDown"] != null) //{ // ((AlarmConditionTable)step).SetDeviceNetLineDownData(stepNode.Attributes["DeviceNetLineDown"].Value); //} if (stepNode.Attributes["Sensor"] != null) { ((AlarmConditionTable)step).SetSensorData(stepNode.Attributes["Sensor"].Value); } if (stepNode.Attributes["Other"] != null) { ((AlarmConditionTable)step).SetOtherData(stepNode.Attributes["Other"].Value); } } return step; } private void InitializationData(ParameterTable step) { foreach (var item in ParameterTemplate) { var keyName = item.Key.Split('\t')[0]; switch (keyName) { case "TempHeater": string[] heaterList = item.Key.Split('\t'); AlarmConditionHeaterTemp alarmConditionHeaterTemp = new AlarmConditionHeaterTemp(); if (heaterList.Length == 3) alarmConditionHeaterTemp.ZoneName = heaterList[2]; ParameterTemplateColumnBase alarmCom = null; ParameterTemplateColumnBase alarmDevHighCom = null; ParameterTemplateColumnBase alarmDevLowCom = null; ParameterTemplateColumnBase alarmUnitCom = null; ParameterTemplateColumnBase alarmDelayTimeCom = null; ParameterTemplateColumnBase alarmTimeCom = null; ParameterTemplateColumnBase alarmErrorCom = null; ParameterTemplateColumnBase errorCom = null; ParameterTemplateColumnBase errorDevHighCom = null; ParameterTemplateColumnBase errorDevLowCom = null; ParameterTemplateColumnBase errorUnitCom = null; ParameterTemplateColumnBase errorDelayTimeCom = null; ParameterTemplateColumnBase errorTimeCom = null; ParameterTemplateColumnBase errorErrorCom = null; foreach (var subitem in item.Value) { switch (subitem.ControlName) { case "AlarmCheck": alarmCom = subitem; break; case "AlarmDevHigh": alarmDevHighCom = subitem; break; case "AlarmDevLow": alarmDevLowCom = subitem; break; case "AlarmUnit": alarmUnitCom = subitem; break; case "AlarmTime": alarmTimeCom = subitem; break; case "AlarmDelayTime": alarmDelayTimeCom = subitem; break; case "AlarmErrorCommand": alarmErrorCom = subitem; break; case "ErrorCheck": errorCom = subitem; break; case "ErrorDevHigh": errorDevHighCom = subitem; break; case "ErrorDevLow": errorDevLowCom = subitem; break; case "ErrorUnit": errorUnitCom = subitem; break; case "ErrorDelayTime": errorDelayTimeCom = subitem; break; case "ErrorTime": errorTimeCom = subitem; break; case "ErrorErrorCommand": errorErrorCom = subitem; break; default: break; } } bool alarmIsCheck = false; if (alarmCom != null) { alarmIsCheck = alarmCom.Default == "ON" ? true : false; } DoubleParam alarmDevParam = null; if (alarmDevHighCom != null) { alarmDevParam = new DoubleParam() { Name = alarmDevHighCom.DisplayName, Minimun = alarmDevHighCom.Minimun, Maximun = alarmDevHighCom.Maximun, Value = alarmDevHighCom.Value.ToString() }; } DoubleParam alarmDevLowParam = null; if (alarmDevLowCom != null) { alarmDevLowParam = new DoubleParam() { Name = alarmDevLowCom.DisplayName, Minimun = alarmDevLowCom.Minimun, Maximun = alarmDevLowCom.Maximun, Value = alarmDevLowCom.Value.ToString() }; } string alarmUnit = "℃"; if (alarmUnitCom != null) { alarmUnit = alarmUnitCom.Default; } DoubleParam alarmDelayTimeParam = null; if (alarmDelayTimeCom != null) { alarmDelayTimeParam = new DoubleParam() { Name = alarmDelayTimeCom.DisplayName, Minimun = alarmDelayTimeCom.Minimun, Maximun = alarmDelayTimeCom.Maximun, Value = alarmDelayTimeCom.Value.ToString() }; } DoubleParam alarmTimeParam = null; if (alarmTimeCom != null) { alarmTimeParam = new DoubleParam() { Name = alarmTimeCom.DisplayName, Minimun = alarmTimeCom.Minimun, Maximun = alarmTimeCom.Maximun, Value = alarmTimeCom.Value.ToString() }; } string alarmError = ""; if (alarmErrorCom != null) { alarmError = alarmErrorCom.Default; } alarmConditionHeaterTemp.AlertTempData = new TempData() { Type = CheckType.Alert, IsCheck = alarmIsCheck, DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "0" }, DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "0" }, Unit = alarmUnit, DelayTime = alarmDelayTimeParam != null ? alarmDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" }, Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = alarmTimeParam.DisplayName, Minimun = 0, Maximun = 99999, Value = "0" }, ErrorCommand = alarmError }; bool errorIsCheck = false; if (errorCom != null) { errorIsCheck = errorCom.Default == "ON" ? true : false; } DoubleParam errorDevParam = null; if (errorDevHighCom != null) { errorDevParam = new DoubleParam() { Name = errorDevHighCom.DisplayName, Minimun = errorDevHighCom.Minimun, Maximun = errorDevHighCom.Maximun, Value = errorDevHighCom.Value.ToString() }; } DoubleParam errorDevLowParam = null; if (errorDevLowCom != null) { errorDevLowParam = new DoubleParam() { Name = errorDevLowCom.DisplayName, Minimun = errorDevLowCom.Minimun, Maximun = errorDevLowCom.Maximun, Value = errorDevLowCom.Value.ToString() }; } string errorUnit = "℃"; if (errorUnitCom != null) { errorUnit = errorUnitCom.Default; } DoubleParam errorDelayTimeParam = null; if (errorDelayTimeCom != null) { errorDelayTimeParam = new DoubleParam() { Name = errorDelayTimeCom.DisplayName, Minimun = errorDelayTimeCom.Minimun, Maximun = errorDelayTimeCom.Maximun, Value = errorDelayTimeCom.Value.ToString() }; } DoubleParam errorTimeParam = null; if (errorTimeCom != null) { errorTimeParam = new DoubleParam() { Name = errorTimeCom.DisplayName, Minimun = errorTimeCom.Minimun, Maximun = errorTimeCom.Maximun, Value = errorTimeCom.Value.ToString() }; } string errorError = "Buzzer"; if (errorErrorCom != null) { errorError = errorErrorCom.Default; } alarmConditionHeaterTemp.AlarmTempData = new TempData() { Type = CheckType.Alarm, IsCheck = errorIsCheck, DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 99999, Value = "0" }, DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 99999, Value = "0" }, Unit = errorUnit, DelayTime = errorDelayTimeParam != null ? errorDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" }, Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" }, ErrorCommand = errorError }; ((AlarmConditionTable)step).HeaterTempList.Add(alarmConditionHeaterTemp); break; case "TempBoat": string[] boatList = item.Key.Split('\t'); AlarmConditionBoatTemp alarmConditionBoatTemp = new AlarmConditionBoatTemp(); if (boatList.Length == 3) { alarmConditionBoatTemp.BoatMotion = boatList[2]; } var highLimitCom = item.Value.Where(x => x.ControlName == "HighLimit").FirstOrDefault(); DoubleParam highLimitParam = null; if (highLimitCom != null) { highLimitParam = new DoubleParam() { Name = highLimitCom.DisplayName, Minimun = highLimitCom.Minimun, Maximun = highLimitCom.Maximun, Value = highLimitCom.Value.ToString() }; } alarmConditionBoatTemp.HighLimit = highLimitParam != null ? highLimitParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "0" }; var unitCom = item.Value.Where(x => x.ControlName == "Unit").FirstOrDefault(); string unitStr = "℃"; if (unitCom != null) { unitStr = unitCom.Default; } alarmConditionBoatTemp.Unit = unitStr; ((AlarmConditionTable)step).BoatTempList.Add(alarmConditionBoatTemp); break; case "FlowDeviation": string[] flowDeviationList = item.Key.Split('\t'); AlarmConditionMFCFlowDeviation alarmConditionMFCFlowDeviation = new AlarmConditionMFCFlowDeviation(); if (flowDeviationList.Length == 3) { alarmConditionMFCFlowDeviation.Index = Convert.ToInt32(flowDeviationList[1]); alarmConditionMFCFlowDeviation.MFCName = flowDeviationList[2]; } alarmCom = null; alarmDevHighCom = null; alarmDevLowCom = null; alarmUnitCom = null; alarmDelayTimeCom = null; alarmTimeCom = null; alarmErrorCom = null; errorCom = null; errorDevHighCom = null; errorDevLowCom = null; errorUnitCom = null; errorDelayTimeCom = null; errorTimeCom = null; errorErrorCom = null; foreach (var subitem in item.Value) { switch (subitem.ControlName) { case "AlarmCheck": alarmCom = subitem; break; case "AlarmDevHigh": alarmDevHighCom = subitem; break; case "AlarmDevLow": alarmDevLowCom = subitem; break; case "AlarmUnit": alarmUnitCom = subitem; break; case "AlarmDelayTime": alarmDelayTimeCom = subitem; break; case "AlarmTime": alarmTimeCom = subitem; break; case "AlarmErrorCommand": alarmErrorCom = subitem; break; case "ErrorCheck": errorCom = subitem; break; case "ErrorDevHigh": errorDevHighCom = subitem; break; case "ErrorDevLow": errorDevLowCom = subitem; break; case "ErrorUnit": errorUnitCom = subitem; break; case "ErrorDelayTime": errorDelayTimeCom = subitem; break; case "ErrorTime": errorTimeCom = subitem; break; case "ErrorErrorCommand": errorErrorCom = subitem; break; default: break; } } alarmIsCheck = false; if (alarmCom != null) { alarmIsCheck = alarmCom.Default == "ON" ? true : false; } alarmDevParam = null; if (alarmDevHighCom != null) { alarmDevParam = new DoubleParam() { Name = alarmDevHighCom.DisplayName, Minimun = alarmDevHighCom.Minimun, Maximun = alarmDevHighCom.Maximun, Value = alarmDevHighCom.Value.ToString() }; } alarmDevLowParam = null; if (alarmDevLowCom != null) { alarmDevLowParam = new DoubleParam() { Name = alarmDevLowCom.DisplayName, Minimun = alarmDevLowCom.Minimun, Maximun = alarmDevLowCom.Maximun, Value = alarmDevLowCom.Value.ToString() }; } alarmUnit = "%fs"; if (alarmUnitCom != null) { alarmUnit = alarmUnitCom.Default; } alarmDelayTimeParam = null; if (alarmDelayTimeCom != null) { alarmDelayTimeParam = new DoubleParam() { Name = alarmDelayTimeCom.DisplayName, Minimun = alarmDelayTimeCom.Minimun, Maximun = alarmDelayTimeCom.Maximun, Value = alarmDelayTimeCom.Value.ToString() }; } alarmTimeParam = null; if (alarmTimeCom != null) { alarmTimeParam = new DoubleParam() { Name = alarmTimeCom.DisplayName, Minimun = alarmTimeCom.Minimun, Maximun = alarmTimeCom.Maximun, Value = alarmTimeCom.Value.ToString() }; } alarmError = ""; if (alarmErrorCom != null) { alarmError = alarmErrorCom.Default; } alarmConditionMFCFlowDeviation.AlertTempData = new TempData() { Type = CheckType.Alert, IsCheck = alarmIsCheck, DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "99" }, DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "11" }, Unit = alarmUnit, Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" }, DelayTime = alarmDelayTimeParam != null ? alarmDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" }, ErrorCommand = alarmError }; errorIsCheck = false; if (errorCom != null) { errorIsCheck = errorCom.Default == "ON" ? true : false; } errorDevParam = null; if (errorDevHighCom != null) { errorDevParam = new DoubleParam() { Name = errorDevHighCom.DisplayName, Minimun = errorDevHighCom.Minimun, Maximun = errorDevHighCom.Maximun, Value = errorDevHighCom.Value.ToString() }; } errorDevLowParam = null; if (errorDevLowCom != null) { errorDevLowParam = new DoubleParam() { Name = errorDevLowCom.DisplayName, Minimun = errorDevLowCom.Minimun, Maximun = errorDevLowCom.Maximun, Value = errorDevLowCom.Value.ToString() }; } errorUnit = "%fs"; if (errorUnitCom != null) { errorUnit = errorUnitCom.Default; } errorDelayTimeParam = null; if (errorDelayTimeCom != null) { errorDelayTimeParam = new DoubleParam() { Name = errorDelayTimeCom.DisplayName, Minimun = errorDelayTimeCom.Minimun, Maximun = errorDelayTimeCom.Maximun, Value = errorDelayTimeCom.Value.ToString() }; } errorTimeParam = null; if (errorTimeCom != null) { errorTimeParam = new DoubleParam() { Name = errorTimeCom.DisplayName, Minimun = errorTimeCom.Minimun, Maximun = errorTimeCom.Maximun, Value = errorTimeCom.Value.ToString() }; } errorError = "Buzzer"; if (errorErrorCom != null) { errorError = errorErrorCom.Default; } alarmConditionMFCFlowDeviation.AlarmTempData = new TempData() { Type = CheckType.Alarm, IsCheck = errorIsCheck, DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "33" }, DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "22" }, Unit = errorUnit, Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" }, DelayTime = errorDelayTimeParam != null ? errorDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" }, ErrorCommand = errorError }; ((AlarmConditionTable)step).MFCFlowDeviationList.Add(alarmConditionMFCFlowDeviation); break; case "Press": string[] pressList = item.Key.Split('\t'); AlarmConditionPress alarmConditionPress = new AlarmConditionPress(); if (pressList.Length == 3) { alarmConditionPress.Index = Convert.ToInt32(pressList[1]); alarmConditionPress.PressKindName = pressList[2]; } alarmCom = null; alarmDevHighCom = null; alarmDevLowCom = null; alarmUnitCom = null; alarmDelayTimeCom = null; alarmTimeCom = null; alarmErrorCom = null; errorCom = null; errorDevHighCom = null; errorDevLowCom = null; errorUnitCom = null; errorDelayTimeCom = null; errorTimeCom = null; errorErrorCom = null; foreach (var subitem in item.Value) { switch (subitem.ControlName) { case "AlarmCheck": alarmCom = subitem; break; case "AlarmDevHigh": alarmDevHighCom = subitem; break; case "AlarmDevLow": alarmDevLowCom = subitem; break; case "AlarmUnit": alarmUnitCom = subitem; break; case "AlarmDelayTime": alarmDelayTimeCom = subitem; break; case "AlarmTime": alarmTimeCom = subitem; break; case "AlarmErrorCommand": alarmErrorCom = subitem; break; case "ErrorCheck": errorCom = subitem; break; case "ErrorDevHigh": errorDevHighCom = subitem; break; case "ErrorDevLow": errorDevLowCom = subitem; break; case "ErrorUnit": errorUnitCom = subitem; break; case "ErrorDelayTime": errorDelayTimeCom = subitem; break; case "ErrorTime": errorTimeCom = subitem; break; case "ErrorErrorCommand": errorErrorCom = subitem; break; default: break; } } alarmIsCheck = false; if (alarmCom != null) { alarmIsCheck = alarmCom.Default == "ON" ? true : false; } alarmDevParam = null; if (alarmDevHighCom != null) { alarmDevParam = new DoubleParam() { Name = alarmDevHighCom.DisplayName, Minimun = alarmDevHighCom.Minimun, Maximun = alarmDevHighCom.Maximun, Value = alarmDevHighCom.Value.ToString() }; } alarmDevLowParam = null; if (alarmDevLowCom != null) { alarmDevLowParam = new DoubleParam() { Name = alarmDevLowCom.DisplayName, Minimun = alarmDevLowCom.Minimun, Maximun = alarmDevLowCom.Maximun, Value = alarmDevLowCom.Value.ToString() }; } alarmUnit = "%fs"; if (alarmUnitCom != null) { alarmUnit = alarmUnitCom.Default; } alarmDelayTimeParam = null; if (alarmDelayTimeCom != null) { alarmDelayTimeParam = new DoubleParam() { Name = alarmDelayTimeCom.DisplayName, Minimun = alarmDelayTimeCom.Minimun, Maximun = alarmDelayTimeCom.Maximun, Value = alarmDelayTimeCom.Value.ToString() }; } alarmTimeParam = null; if (alarmTimeCom != null) { alarmTimeParam = new DoubleParam() { Name = alarmTimeCom.DisplayName, Minimun = alarmTimeCom.Minimun, Maximun = alarmTimeCom.Maximun, Value = alarmTimeCom.Value.ToString() }; } alarmError = "Monitor"; if (alarmErrorCom != null) { alarmError = alarmErrorCom.Default; } alarmConditionPress.AlertTempData = new TempData() { Type = CheckType.Alert, IsCheck = alarmIsCheck, DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 99999, Value = "0" }, DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 99999, Value = "0" }, Unit = alarmUnit, DelayTime = alarmDelayTimeParam != null ? alarmDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" }, Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" }, ErrorCommand = alarmError }; errorIsCheck = false; if (errorCom != null) { errorIsCheck = errorCom.Default == "ON" ? true : false; } errorDevParam = null; if (errorDevHighCom != null) { errorDevParam = new DoubleParam() { Name = errorDevHighCom.DisplayName, Minimun = errorDevHighCom.Minimun, Maximun = errorDevHighCom.Maximun, Value = errorDevHighCom.Value.ToString() }; } errorDevLowParam = null; if (errorDevLowCom != null) { errorDevLowParam = new DoubleParam() { Name = errorDevLowCom.DisplayName, Minimun = errorDevLowCom.Minimun, Maximun = errorDevLowCom.Maximun, Value = errorDevLowCom.Value.ToString() }; } errorUnit = "%fs"; if (errorUnitCom != null) { errorUnit = errorUnitCom.Default; } errorDelayTimeParam = null; if (errorDelayTimeCom != null) { errorDelayTimeParam = new DoubleParam() { Name = errorDelayTimeCom.DisplayName, Minimun = errorDelayTimeCom.Minimun, Maximun = errorDelayTimeCom.Maximun, Value = errorDelayTimeCom.Value.ToString() }; } errorTimeParam = null; if (errorTimeCom != null) { errorTimeParam = new DoubleParam() { Name = errorTimeCom.DisplayName, Minimun = errorTimeCom.Minimun, Maximun = errorTimeCom.Maximun, Value = errorTimeCom.Value.ToString() }; } errorError = "Buzzer"; if (errorErrorCom != null) { errorError = errorErrorCom.Default; } alarmConditionPress.AlarmTempData = new TempData() { Type = CheckType.Alarm, IsCheck = errorIsCheck, DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 99999, Value = "0" }, DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 99999, Value = "0" }, Unit = errorUnit, DelayTime = errorDelayTimeParam != null ? errorDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" }, Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" }, ErrorCommand = errorError }; ((AlarmConditionTable)step).PressList.Add(alarmConditionPress); break; case "AUX": string[] aUXList = item.Key.Split('\t'); AlarmConditionAUX alarmConditionAUX = new AlarmConditionAUX(); if (aUXList.Length == 3) { alarmConditionAUX.Index = Convert.ToInt32(aUXList[1]); alarmConditionAUX.AUXName = aUXList[2]; } alarmCom = null; alarmDevHighCom = null; alarmDevLowCom = null; alarmUnitCom = null; alarmTimeCom = null; alarmErrorCom = null; errorCom = null; errorDevHighCom = null; errorDevLowCom = null; errorUnitCom = null; errorTimeCom = null; errorErrorCom = null; foreach (var subitem in item.Value) { switch (subitem.ControlName) { case "AlarmCheck": alarmCom = subitem; break; case "AlarmDevHigh": alarmDevHighCom = subitem; break; case "AlarmDevLow": alarmDevLowCom = subitem; break; case "AlarmUnit": alarmUnitCom = subitem; break; case "AlarmTime": alarmTimeCom = subitem; break; case "AlarmErrorCommand": alarmErrorCom = subitem; break; case "ErrorCheck": errorCom = subitem; break; case "ErrorDevHigh": errorDevHighCom = subitem; break; case "ErrorDevLow": errorDevLowCom = subitem; break; case "ErrorUnit": errorUnitCom = subitem; break; case "ErrorTime": errorTimeCom = subitem; break; case "ErrorErrorCommand": errorErrorCom = subitem; break; default: break; } } alarmIsCheck = false; if (alarmCom != null) { alarmIsCheck = alarmCom.Default == "ON" ? true : false; } alarmDevParam = null; if (alarmDevHighCom != null) { alarmDevParam = new DoubleParam() { Name = alarmDevHighCom.DisplayName, Minimun = alarmDevHighCom.Minimun, Maximun = alarmDevHighCom.Maximun, Value = alarmDevHighCom.Value.ToString() }; } alarmDevLowParam = null; if (alarmDevLowCom != null) { alarmDevLowParam = new DoubleParam() { Name = alarmDevLowCom.DisplayName, Minimun = alarmDevLowCom.Minimun, Maximun = alarmDevLowCom.Maximun, Value = alarmDevLowCom.Value.ToString() }; } alarmUnit = "%fs"; if (alarmUnitCom != null) { alarmUnit = alarmUnitCom.Default; } alarmTimeParam = null; if (alarmTimeCom != null) { alarmTimeParam = new DoubleParam() { Name = alarmTimeCom.DisplayName, Minimun = alarmTimeCom.Minimun, Maximun = alarmTimeCom.Maximun, Value = alarmTimeCom.Value.ToString() }; } alarmError = ""; if (alarmErrorCom != null) { alarmError = alarmErrorCom.Default; } alarmConditionAUX.AlertTempData = new TempData() { Type = CheckType.Alert, IsCheck = alarmIsCheck, DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "99" }, DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "11" }, Unit = alarmUnit, DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" }, Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = alarmTimeParam.DisplayName, Minimun = 0, Maximun = 99999, Value = "0" }, ErrorCommand = alarmError }; errorIsCheck = false; if (errorCom != null) { errorIsCheck = errorCom.Default == "ON" ? true : false; } errorDevParam = null; if (errorDevHighCom != null) { errorDevParam = new DoubleParam() { Name = errorDevHighCom.DisplayName, Minimun = errorDevHighCom.Minimun, Maximun = errorDevHighCom.Maximun, Value = errorDevHighCom.Value.ToString() }; } errorDevLowParam = null; if (errorDevLowCom != null) { errorDevLowParam = new DoubleParam() { Name = errorDevLowCom.DisplayName, Minimun = errorDevLowCom.Minimun, Maximun = errorDevLowCom.Maximun, Value = errorDevLowCom.Value.ToString() }; } errorUnit = "%fs"; if (errorUnitCom != null) { errorUnit = errorUnitCom.Default; } errorTimeParam = null; if (errorTimeCom != null) { errorTimeParam = new DoubleParam() { Name = errorTimeCom.DisplayName, Minimun = errorTimeCom.Minimun, Maximun = errorTimeCom.Maximun, Value = errorTimeCom.Value.ToString() }; } errorError = "Buzzer"; if (errorErrorCom != null) { errorError = errorErrorCom.Default; } alarmConditionAUX.AlarmTempData = new TempData() { Type = CheckType.Alarm, IsCheck = errorIsCheck, DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "33" }, DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "22" }, Unit = errorUnit, DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" }, Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" }, ErrorCommand = errorError }; ((AlarmConditionTable)step).AUXList.Add(alarmConditionAUX); break; case "HWILK": string[] strHWILKList = item.Key.Split('\t'); AlarmConditionHWILK alarmConditionHWILK = new AlarmConditionHWILK(); if (strHWILKList.Length == 3) { alarmConditionHWILK.Index = Convert.ToInt32(strHWILKList[1]); alarmConditionHWILK.InterLockName = strHWILKList[2]; } var ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault(); string error = "Monitor"; if (ErrorCom != null) { error = ErrorCom.Default; } alarmConditionHWILK.ErrorCommand = error; ((AlarmConditionTable)step).HWILKList.Add(alarmConditionHWILK); break; case "ValveILK": string[] strValveILKList = item.Key.Split('\t'); AlarmConditionValveILK alarmConditionValveILK = new AlarmConditionValveILK(); if (strValveILKList.Length == 3) { alarmConditionValveILK.Index = Convert.ToInt32(strValveILKList[1]); alarmConditionValveILK.InterLockName = strValveILKList[2]; } ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault(); error = "Monitor"; if (ErrorCom != null) { error = ErrorCom.Default; } alarmConditionValveILK.ErrorCommand = error; ((AlarmConditionTable)step).ValveIlkList.Add(alarmConditionValveILK); break; case "TempController": string[] strTempControlerList = item.Key.Split('\t'); AlarmConditionTempControler alarmConditionTempControler = new AlarmConditionTempControler(); if (strTempControlerList.Length == 3) { alarmConditionTempControler.Index = Convert.ToInt32(strTempControlerList[1]); alarmConditionTempControler.InterLockName = strTempControlerList[2]; } ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault(); error = "Monitor"; if (ErrorCom != null) { error = ErrorCom.Default; } alarmConditionTempControler.ErrorCommand = error; ((AlarmConditionTable)step).TempControlerList.Add(alarmConditionTempControler); break; case "APCController": string[] strAPCControlerList = item.Key.Split('\t'); AlarmConditionAPCControler alarmConditionAPCControler = new AlarmConditionAPCControler(); if (strAPCControlerList.Length == 3) { alarmConditionAPCControler.Index = Convert.ToInt32(strAPCControlerList[1]); alarmConditionAPCControler.InterLockName = strAPCControlerList[2]; } ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault(); error = "Monitor"; if (ErrorCom != null) { error = ErrorCom.Default; } alarmConditionAPCControler.ErrorCommand = error; ((AlarmConditionTable)step).APCControlerList.Add(alarmConditionAPCControler); break; case "CLNAlarm": string[] strCLNAlarmList = item.Key.Split('\t'); AlarmConditionCLNAlarm alarmConditionCLNAlarm = new AlarmConditionCLNAlarm(); if (strCLNAlarmList.Length == 3) { alarmConditionCLNAlarm.Index = Convert.ToInt32(strCLNAlarmList[1]); alarmConditionCLNAlarm.InterLockName = strCLNAlarmList[2]; } ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault(); error = "Monitor"; if (ErrorCom != null) { error = ErrorCom.Default; } alarmConditionCLNAlarm.ErrorCommand = error; ((AlarmConditionTable)step).CLNAlarmList.Add(alarmConditionCLNAlarm); break; case "TransferError": string[] strTransferErrorList = item.Key.Split('\t'); AlarmConditionTransferError alarmConditionTransferError = new AlarmConditionTransferError(); if (strTransferErrorList.Length == 3) { alarmConditionTransferError.Index = Convert.ToInt32(strTransferErrorList[1]); alarmConditionTransferError.InterLockName = strTransferErrorList[2]; } ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault(); error = "Monitor"; if (ErrorCom != null) { error = ErrorCom.Default; } alarmConditionTransferError.ErrorCommand = error; ((AlarmConditionTable)step).TransferErrorList.Add(alarmConditionTransferError); break; case "SerialLineDown": string[] strSerialLineDownList = item.Key.Split('\t'); AlarmConditionSerialLineDown alarmConditionSerialLineDown = new AlarmConditionSerialLineDown(); if (strSerialLineDownList.Length == 3) { alarmConditionSerialLineDown.Index = Convert.ToInt32(strSerialLineDownList[1]); alarmConditionSerialLineDown.InterLockName = strSerialLineDownList[2]; } ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault(); error = "Monitor"; if (ErrorCom != null) { error = ErrorCom.Default; } alarmConditionSerialLineDown.ErrorCommand = error; ((AlarmConditionTable)step).SerialLineDownList.Add(alarmConditionSerialLineDown); break; case "LanLineDown": string[] strLanLineDownList = item.Key.Split('\t'); AlarmConditionLanLineDown alarmConditionLanLineDown = new AlarmConditionLanLineDown(); if (strLanLineDownList.Length == 3) { alarmConditionLanLineDown.Index = Convert.ToInt32(strLanLineDownList[1]); alarmConditionLanLineDown.InterLockName = strLanLineDownList[2]; } ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault(); error = "Monitor"; if (ErrorCom != null) { error = ErrorCom.Default; } alarmConditionLanLineDown.ErrorCommand = error; ((AlarmConditionTable)step).LanLineDownList.Add(alarmConditionLanLineDown); break; case "Sensor": string[] sensorList = item.Key.Split('\t'); AlarmConditionSensor alarmConditionSensor = new AlarmConditionSensor(); if (sensorList.Length == 3) alarmConditionSensor.SensorName = sensorList[2]; alarmCom = item.Value.Where(x => x.ControlName == "AlarmCheck").FirstOrDefault(); alarmIsCheck = false; if (alarmCom != null) { alarmIsCheck = alarmCom.Default == "ON" ? true : false; } alarmDevHighCom = item.Value.Where(x => x.ControlName == "AlarmDevHigh").FirstOrDefault(); alarmDevParam = null; if (alarmDevHighCom != null) { alarmDevParam = new DoubleParam() { Name = alarmDevHighCom.DisplayName, Minimun = alarmDevHighCom.Minimun, Maximun = alarmDevHighCom.Maximun, Value = alarmDevHighCom.Value.ToString() }; } alarmDevLowCom = item.Value.Where(x => x.ControlName == "AlarmDevLow").FirstOrDefault(); alarmDevLowParam = null; if (alarmDevLowCom != null) { alarmDevLowParam = new DoubleParam() { Name = alarmDevLowCom.DisplayName, Minimun = alarmDevLowCom.Minimun, Maximun = alarmDevLowCom.Maximun, Value = alarmDevLowCom.Value.ToString() }; } alarmUnitCom = item.Value.Where(x => x.ControlName == "AlarmUnit").FirstOrDefault(); alarmUnit = "%fs"; if (alarmUnitCom != null) { alarmUnit = alarmUnitCom.Default; } alarmTimeCom = item.Value.Where(x => x.ControlName == "AlarmTime").FirstOrDefault(); alarmTimeParam = null; if (alarmTimeCom != null) { alarmTimeParam = new DoubleParam() { Name = alarmTimeCom.DisplayName, Minimun = alarmTimeCom.Minimun, Maximun = alarmTimeCom.Maximun, Value = alarmTimeCom.Value.ToString() }; } alarmErrorCom = item.Value.Where(x => x.ControlName == "AlarmErrorCommand").FirstOrDefault(); alarmError = ""; if (alarmErrorCom != null) { alarmError = alarmErrorCom.Default; } alarmConditionSensor.AlertTempData = new TempData() { Type = CheckType.Alert, IsCheck = alarmIsCheck, DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "99" }, DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "11" }, Unit = alarmUnit, DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" }, Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = alarmTimeParam.DisplayName, Minimun = 0, Maximun = 99999, Value = "0" }, ErrorCommand = alarmError }; errorCom = item.Value.Where(x => x.ControlName == "ErrorCheck").FirstOrDefault(); errorIsCheck = false; if (errorCom != null) { errorIsCheck = errorCom.Default == "ON" ? true : false; } errorDevHighCom = item.Value.Where(x => x.ControlName == "ErrorDevHigh").FirstOrDefault(); errorDevParam = null; if (errorDevHighCom != null) { errorDevParam = new DoubleParam() { Name = errorDevHighCom.DisplayName, Minimun = errorDevHighCom.Minimun, Maximun = errorDevHighCom.Maximun, Value = errorDevHighCom.Value.ToString() }; } errorDevLowCom = item.Value.Where(x => x.ControlName == "ErrorDevLow").FirstOrDefault(); errorDevLowParam = null; if (errorDevLowCom != null) { errorDevLowParam = new DoubleParam() { Name = errorDevLowCom.DisplayName, Minimun = errorDevLowCom.Minimun, Maximun = errorDevLowCom.Maximun, Value = errorDevLowCom.Value.ToString() }; } errorUnitCom = item.Value.Where(x => x.ControlName == "ErrorUnit").FirstOrDefault(); errorUnit = "%fs"; if (errorUnitCom != null) { errorUnit = errorUnitCom.Default; } errorTimeCom = item.Value.Where(x => x.ControlName == "ErrorTime").FirstOrDefault(); errorTimeParam = null; if (errorTimeCom != null) { errorTimeParam = new DoubleParam() { Name = errorTimeCom.DisplayName, Minimun = errorTimeCom.Minimun, Maximun = errorTimeCom.Maximun, Value = errorTimeCom.Value.ToString() }; } errorErrorCom = item.Value.Where(x => x.ControlName == "ErrorErrorCommand").FirstOrDefault(); errorError = "Buzzer"; if (errorErrorCom != null) { errorError = errorErrorCom.Default; } alarmConditionSensor.AlarmTempData = new TempData() { Type = CheckType.Alarm, IsCheck = errorIsCheck, DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "33" }, DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "22" }, Unit = errorUnit, DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" }, Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" }, ErrorCommand = errorError }; ((AlarmConditionTable)step).SensorList.Add(alarmConditionSensor); break; case "Other": string[] strOtherList = item.Key.Split('\t'); AlarmConditionOther alarmConditionOther = new AlarmConditionOther(); if (strOtherList.Length == 3) { alarmConditionOther.Index = Convert.ToInt32(strOtherList[1]); alarmConditionOther.InterLockName = strOtherList[2]; } ErrorCom = item.Value.FirstOrDefault(x => x.ControlName == "ErrorCommand"); error = "Monitor"; if (ErrorCom != null) { error = ErrorCom.Default; } alarmConditionOther.ErrorCommand = error; ((AlarmConditionTable)step).OtherList.Add(alarmConditionOther); break; default: break; } //if (item.Key.Contains("DeviceNetLineDown")) //{ // string[] strDeviceNetLineDownList = item.Key.Split('\t'); // AlarmConditionDeviceNetLineDown alarmConditionDeviceNetLineDown = new AlarmConditionDeviceNetLineDown(); // if (strDeviceNetLineDownList.Length == 3) // { // alarmConditionDeviceNetLineDown.Index = Convert.ToInt32(strDeviceNetLineDownList[1]); // alarmConditionDeviceNetLineDown.InterLockName = strDeviceNetLineDownList[2]; // } // var ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault(); // string error = "Monitor"; // if (ErrorCom != null) // { // error = ErrorCom.Default; // } // alarmConditionDeviceNetLineDown.ErrorCommand = error; // ((AlarmConditionTable)step).DeviceNetLineDownList.Add(alarmConditionDeviceNetLineDown); //} } } public override string GetXmlString() { XmlElement nodeData = _doc.SelectSingleNode($"Aitex/TableParameterData") as XmlElement; nodeData.SetAttribute("CreatedBy", Creator); nodeData.SetAttribute("CreationTime", CreateTime.ToString("yyyy-MM-dd HH:mm:ss")); nodeData.SetAttribute("LastRevisedBy", Revisor); nodeData.SetAttribute("LastRevisionTime", ReviseTime.ToString("yyyy-MM-dd HH:mm:ss")); nodeData.SetAttribute("Description", Description); nodeData.SetAttribute("ParameterChamberType", ChamberType); nodeData.SetAttribute("Version", Version); nodeData.SetAttribute("TableNumber", TableNumber.ToString()); nodeData.SetAttribute("Permission", Permission); nodeData.SetAttribute("ParameterLevel", Level); XmlNode nodeModule = _doc.SelectSingleNode($"Aitex/TableParameterData/Module[@Name='{_module}']"); if (nodeModule == null) { nodeModule = _doc.CreateElement("Module"); nodeData.AppendChild(nodeModule); } nodeModule.RemoveAll(); (nodeModule as XmlElement).SetAttribute("Name", _module); int i = 0; foreach (ParameterTable parameters in Steps) { XmlElement nodeStep = _doc.CreateElement("Step"); nodeStep.SetAttribute("StepNo", parameters.StepNo.ToString()); nodeStep.SetAttribute("Name", parameters.Name); // nodeStep.SetAttribute("UseTemp", parameters.UseTemp); var heaterDatas = ((AlarmConditionTable)parameters).HeaterTempList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"TempHeater", string.Join("|", heaterDatas)); var boatDatas = ((AlarmConditionTable)parameters).BoatTempList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"TempBoat", string.Join("|", boatDatas)); var flowDeviationDatas = ((AlarmConditionTable)parameters).MFCFlowDeviationList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"FlowDeviation", string.Join("|", flowDeviationDatas)); var pressDatas = ((AlarmConditionTable)parameters).PressList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"Press", string.Join("|", pressDatas)); var aUXDatas = ((AlarmConditionTable)parameters).AUXList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"AUX", string.Join("|", aUXDatas)); nodeModule.AppendChild(nodeStep); var strHWILKList = ((AlarmConditionTable)parameters).HWILKList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"HWILK", string.Join("|", strHWILKList)); var strValveILKList = ((AlarmConditionTable)parameters).ValveIlkList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"ValveILK", string.Join("|", strValveILKList)); var strTempControlerList = ((AlarmConditionTable)parameters).TempControlerList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"TempController", string.Join("|", strTempControlerList)); var strAPCControlerList = ((AlarmConditionTable)parameters).APCControlerList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"APCController", string.Join("|", strAPCControlerList)); var strCLNAlarmList = ((AlarmConditionTable)parameters).CLNAlarmList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"CLNAlarmList", string.Join("|", strCLNAlarmList)); var strTransferErrorList = ((AlarmConditionTable)parameters).TransferErrorList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"TransferError", string.Join("|", strTransferErrorList)); var strSerialLineDownList = ((AlarmConditionTable)parameters).SerialLineDownList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"SerialLineDown", string.Join("|", strSerialLineDownList)); var strLanLineDownList = ((AlarmConditionTable)parameters).LanLineDownList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"LanLineDown", string.Join("|", strLanLineDownList)); //var strDeviceNetLineDownList = ((AlarmConditionTable)parameters).DeviceNetLineDownList.Select(x => x.ToString()).ToArray(); //nodeStep.SetAttribute($"DeviceNetLineDown", string.Join("|", strDeviceNetLineDownList)); var strSensorList = ((AlarmConditionTable)parameters).SensorList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"Sensor", string.Join("|", strSensorList)); var strOtherList = ((AlarmConditionTable)parameters).OtherList.Select(x => x.ToString()).ToArray(); nodeStep.SetAttribute($"Other", string.Join("|", strOtherList)); nodeModule.AppendChild(nodeStep); i++; } return _doc.OuterXml; } public override void InitData(string prefixPath, string recipeName, string recipeContent, string module) { IsCompatibleWithCurrentFormat = false; _module = module; Name = recipeName; PrefixPath = prefixPath; try { _doc = new XmlDocument(); _doc.LoadXml(recipeContent); if (!LoadHeader(_doc.SelectSingleNode("Aitex/TableParameterData"))) return; XmlNodeList nodeSteps = _doc.SelectNodes($"Aitex/TableParameterData/Module[@Name='{module}']/Step"); if (nodeSteps == null) nodeSteps = _doc.SelectNodes($"Aitex/TableParameterData/Step"); LoadSteps(nodeSteps); var index = 1; foreach (ParameterTable parameters in Steps) { parameters.Value = index.ToString(); index++; } // ValidLoopData(); XmlNode nodeConfig = _doc.SelectSingleNode($"Aitex/TableParameterData/Module[@Name='{module}']/Config"); if (nodeSteps == null) nodeConfig = _doc.SelectSingleNode($"Aitex/TableParameterData/Config"); IsCompatibleWithCurrentFormat = true; } catch (Exception ex) { LOG.Write(ex); } } public override void LoadSteps(XmlNodeList steps) { Steps.Clear(); PopSettingSteps.Clear(); StepTolerances.Clear(); StepNos.Clear(); int index = 1; foreach (XmlNode nodeStep in steps) { ParameterTable stepTable = this.CreateStep(nodeStep); StepNos.Add(stepTable.StepNo); Steps.Add(stepTable); index++; } } } }