Example #1
0
        private void btn_r_process_control_Click(object sender, EventArgs e)
        {
            ProcessLaunchReport processLaunchReport = new ProcessLaunchReport()
            {
                CSTID     = "CST001",
                LOTID     = "20180418",
                PPID      = "Test Recipe",
                PTID      = "P01",
                PTTYPE    = PTTYPE.PTTYPELIST["Load Port"],
                PTUSETYPE = PTUSETYPE.PTUSETYPELIST["Good"],
            };

            cimClient?.LaunchProcessReport(RCMD.START, processLaunchReport, this._equipmentInfo);
        }
        /// <summary>
        /// Remote Control Scenario:
        /// Process (Start/Cancel/Abort/Pause/Resume/Operator Call)
        /// Report
        /// </summary>
        /// <param name="rcmd"></param>
        /// <param name="processLaunchReport"></param>
        /// <param name="equipmentInfo"></param>
        /// <returns></returns>
        public bool LaunchProcessReport(RCMD rcmd, ProcessLaunchReport processLaunchReport, EquipmentInfo equipmentInfo)
        {
            var rc = scenarioControllers[Scenarios.Remote_Control] as RemoteControl;

            return(rc.LaunchProcessReport(rcmd, processLaunchReport, equipmentInfo.EquipmentStatus));
        }
        /// <summary>
        /// Process Report
        /// CEID: 301=>start, 304=>cancel, 305=>abort, 306=>pause, 307=>resume
        /// </summary>
        /// <returns></returns>
        public bool LaunchProcessReport(RCMD rcmd,
                                        ProcessLaunchReport processLaunchReport,
                                        EquipmentStatus equipmentStatus)
        {
            int ceid = 0;

            switch (rcmd)
            {
            case RCMD.START:
                ceid = 301;
                break;

            case RCMD.CANCEL:
                ceid = 304;
                break;

            case RCMD.ABORT:
                ceid = 305;
                break;

            case RCMD.PAUSE:
                ceid = 306;
                break;

            case RCMD.RESUME:
                ceid = 307;
                break;

            case RCMD.OPERATOR_CALL:
            default:
                break;
            }
            if (ceid <= 0)
            {
                CIMBASE.WriteLog(AATS.Log.LogLevel.ERROR, "CEID value is out of range. CEID: " + ceid);
                return(false);
            }
            ProcessLaunchReport newReport = new ProcessLaunchReport(0, ceid, 100, equipmentStatus, 301)
            {
                LOTID     = processLaunchReport.LOTID,
                PTID      = processLaunchReport.PTID,
                PTTYPE    = processLaunchReport.PTTYPE,
                PTUSETYPE = processLaunchReport.PTUSETYPE,
                CSTID     = processLaunchReport.CSTID,
                PPID      = processLaunchReport.PPID,
            };
            var replyMsg = S6F11(newReport.SecsItem, (int)ceid);

            if (replyMsg != null && replyMsg.GetSFString() == "S6F12")
            {
                try
                {
                    int ack = replyMsg.GetCommandValue();
                    if (ack == 0)
                    {
                        return(true);
                    }
                }
                catch (InvalidOperationException ex)
                {
                    CIMBASE.WriteLog(AATS.Log.LogLevel.ERROR, "", ex);
                    return(false);
                }
            }
            CIMBASE.WriteLog(AATS.Log.LogLevel.ERROR, "something wrong was happened when send process report");
            return(false);
        }