private void MakeProcess()
        {
            FAExtendECPart.ECResult ecResult = new FAExtendECPart.ECResult();

            var seq = Process;

            seq.Steps.Add("LoadJob", new StepInfo());
            seq.Steps.Add("RequestLabelIssue", new StepInfo());
            seq.Steps.Add("MovePusherToStandbyPos", new StepInfo());
            seq.Steps.Add("AddWork", new StepInfo());

            seq.AddItem(
                delegate(object obj)
                {
                    if (ProductInfo.VT5080ProductInfo.IsEmptyBox == false)
                        SmallBoxList.Add(ProductInfo.VT5080ProductInfo.SmallBoxID);
                });
            seq.AddItem(
                delegate(object sender)
                {
                    if (Equipment.RunMode == FAFramework.Equipment.RunModeTypes.DRY_RUN ||
                        Equipment.RunMode == FAFramework.Equipment.RunModeTypes.COLD_RUN)
                    {
                        ProductInfo.ECInfo.PackingMasterInfo.LOT_ID = "TEST LOT";
                        ProductInfo.ECInfo.PackingMasterInfo.PART_ID = "BRAND_BOX";
                        ProductInfo.ECInfo.PackingMasterInfo.S_BOX_MOQ = 10;
                        ProductInfo.ECInfo.PackingMasterInfo.L_BOX_MOQ = 6;
                    }
                });
            seq.Steps["LoadJob"].StepIndex = //seq.AddItem(LoadJob);
            seq.AddItem(
                delegate(FASequence actor, TimeSpan time)
                {
                    if (IsPreStackTerminated() == true)
                        actor.NextStep();
                    else
                    {
                        SkipPassToNextMachine = true;
                        actor.NextTerminate();
                    }
                });
            seq.AddItem(PushSmallBoxes);
            seq.AddItem(
                delegate(object obj)
                {
                    StackCount++;
                    PreStackCount = 0;
                });
            seq.AddItem(ConfirmStackCount);
            seq.AddItem(
                delegate(FASequence actor, TimeSpan time)
                {
                    if (Equipment.RunMode == FAFramework.Equipment.RunModeTypes.HOT_RUN)
                        actor.NextStep();
                    else
                        actor.NextStep("AddWork");
                });
            seq.Steps["RequestLabelIssue"].StepIndex = seq.AddItem(
                delegate(object obj)
                {
                    FAECInfo.LBOX_ISSUE_REQ command = new FAECInfo.LBOX_ISSUE_REQ();

                    string[] serials = null;
                    if (SmallBoxList.Count > 0)
                        serials = SmallBoxList.Select(x => x).Where(x => string.IsNullOrEmpty(x) == false).ToArray();
                    if (serials != null)
                        command.S_BOX_LABEL_SERIAL = string.Join(",", serials);
                    else
                        command.S_BOX_LABEL_SERIAL = string.Empty;

                    command.GATE = CurrentLotInfo.GATE;
                    command.LOT_ID = CurrentLotInfo.LOT_ID;
                    command.S_BOX_CNT = serials.Count();

                    TurnkeyBoxCount = command.S_BOX_CNT * CurrentLotInfo.S_BOX_MOQ;

                    ecResult.Clear();
                    InterfaceUnit.ECPart.AddCommand(command, ecResult);

                });
            seq.AddItem(
                delegate(FASequence actor, TimeSpan time)
                {
                    if (ecResult.ReceiveOk)
                    {
                        if (ecResult.ParsingSuccess)
                        {
                            if (ecResult.ECInfo.LargeBoxIssue.RESULT == FAECInfo.FAECResult.PASS)
                            {
                                ecResult.ECInfo.LargeBoxIssue.CopyTo(ProductInfo.ECInfo.LargeBoxIssue);
                                actor.NextStep();
                            }
                            else
                            {
                                RaiseAlarm(actor, AlarmLargeBoxIssueFail, string.Format("LARGE BOX ISSUE RESULT FAIL. MSG = {0}, Fail Message = {1}", ecResult.ECInfo.LargeBoxIssue.MSG, ecResult.ParsingFailMessage));
                                actor.NextStep("RequestLabelIssue");
                            }
                        }
                        else
                        {
                            RaiseAlarm(actor, AlarmLargeBoxIssueFail, string.Format("LARGE BOX ISSUE RESULT FAIL. MSG = {0}, Fail Message = {1}", ecResult.ECInfo.LargeBoxIssue.MSG, ecResult.ParsingFailMessage));
                            actor.NextStep("RequestLabelIssue");
                        }
                    }
                    else if (ecResult.LastAlarmNo != 0)
                    {
                        RaiseAlarm(actor, AlarmLargeBoxIssueFail, string.Format("Data Not Received From EC Server"));
                        actor.NextStep("RequestLabelIssue");
                    }
                });
            seq.Steps["AddWork"].StepIndex = seq.AddItem(
                delegate(object obj)
                {
                    if (Equipment.RunMode == FAFramework.Equipment.RunModeTypes.DRY_RUN ||
                        Equipment.RunMode == FAFramework.Equipment.RunModeTypes.COLD_RUN)
                    {
                        CuttingPrinterModule.AddWork(
                            new FALabelPrinterModule.ActionInfo(false,
                                ConfigClasses.GlobalConst.TEST_LABEL_FORMAT,
                                LargeBoxIndex,
                                ProductInfo.ECInfo.PackingMasterInfo.LOT_ID));
                        NormalPrinterModule.AddWork(
                            new FALabelPrinterModule.ActionInfo(false,
                                ConfigClasses.GlobalConst.TEST_LABEL_FORMAT,
                                LargeBoxIndex,
                                ProductInfo.ECInfo.PackingMasterInfo.LOT_ID));
                    }
                    else if (Equipment.RunMode == FAFramework.Equipment.RunModeTypes.HOT_RUN)
                    {
                        bool cuttingLabelSkip = false;
                        if (ProductInfo.ECInfo.LargeBoxIssue.LABEL_CNT == 1)
                            cuttingLabelSkip = true;

                        CuttingPrinterModule.AddWork(
                            new FALabelPrinterModule.ActionInfo(cuttingLabelSkip,
                                ProductInfo.ECInfo.LargeBoxIssue.FORMAT02,
                                LargeBoxIndex,
                                ProductInfo.ECInfo.PackingMasterInfo.LOT_ID));
                        NormalPrinterModule.AddWork(
                            new FALabelPrinterModule.ActionInfo(false,
                                ProductInfo.ECInfo.LargeBoxIssue.FORMAT01,
                                LargeBoxIndex,
                                ProductInfo.ECInfo.PackingMasterInfo.LOT_ID));
                    }
                });
            seq.AddItem(
                delegate(object obj)
                {
                    ProductInfo.VT5080ProductInfo.SmallBoxList.Clear();

                    foreach (var item in SmallBoxList)
                        ProductInfo.VT5080ProductInfo.SmallBoxList.Add(item);
                });
            seq.AddItem(Unloading);
            seq.Steps["MovePusherToStandbyPos"].StepIndex = seq.AddItem(SmallBoxPreStackUnit.SmallBoxPushServo.MoveStandbyPos.Sequence);
        }
        public LBoxIssueControl()
        {
            Command = new FAECInfo.LBOX_ISSUE_REQ();

            InitializeComponent();
        }