| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433 | 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<string, ObservableCollection<ParameterTemplateColumnBase>> 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["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 "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 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++;            }        }    }}
 |