public void HandleSecsMessage(SecsMessage secsMessage)
        {
            PrimaryMessage = secsMessage;
            switch (PrimaryMessage.GetSFString())
            {
            case "S10F1":    // operator sends textual
                var strs = GetTestMsg();
                if (strs != null)
                {
                    eqtTerminalService.ReceiveTestMessage(strs);
                }
                PrimaryMessage.S10F2(0);
                break;

            case "S10F5":    // host sends muiti-block message
                strs = GetTestMsg();
                if (strs != null)
                {
                    eqtTerminalService.ReceiveTestMessage(strs);
                }
                PrimaryMessage.S10F6(0);
                break;

            default:
                break;
            }
        }
        ///// <summary>
        ///// 保存Equipment当前基本信息
        ///// </summary>
        //public EquipmentBaseInfo EquipmentBaseInfo { get => _equipmentBaseInfo; set => _equipmentBaseInfo = value; }
        ///// <summary>
        ///// 保存设备当前的状态信息
        ///// </summary>
        //public EquipmentStatus EquipmentStatusInfo { get => _equipmentStatusInfo; set => _equipmentStatusInfo = value; }

        #endregion

        #region message handler methods
        /// <summary>
        /// handle online/offline request by host
        /// </summary>
        public void HandleSecsMessage(SecsMessage secsMessage)
        {
            PrimaryMessage = secsMessage;
            switch (PrimaryMessage.GetSFString())
            {
            case "S1F1":                                                                                                         // are you there request
                SubScenarioName = Resource.Intialize_Scenario_1;
                secsMessage.S1F2(this._equipmentBaseInfo.MDLN ?? String.Empty, this._equipmentBaseInfo.SOFTREV ?? String.Empty); // 作为unit端, 只考虑online的选项
                break;

            case "S1F13":    // estublish communication request
                handleS1F13();
                break;

            case "S1F17":    // request online by host
                handleS1F17();
                break;

            case "S1F15":    // request offline by host
                SubScenarioName = Resource.Intialize_Scenario_4;
                switch (this._equipmentStatusInfo.CRST)
                {
                case CRST.O:
                    //send equipment denies requests
                    S1F0();
                    break;

                case CRST.L:
                case CRST.R:
                    // send OFF_LINE Acknowledge
                    // 0: Accepted, 1: Not Accepted
                    secsMessage.S1F16("0");
                    // send Control State Change(OFF_LINE)
                    launchControlStateProcess((int)CRST.O);
                    break;

                default:
                    break;
                }
                break;

            case "S2F17":    // Date and Time Request
                string dataTime = DateTime.Now.ToString("yyyyMMddHHmmss");
                secsMessage.S2F18(dataTime);
                break;

            case "S6F11":    // Event Report Send (ERS)
                secsMessage.S6F12("0");
                break;

            default:
                break;
            }
        }
        public void HandleSecsMessage(SecsMessage secsMessage)
        {
            PrimaryMessage = secsMessage;
            switch (PrimaryMessage.GetSFString())
            {
            case "S2F41":    // host command
                int rcmd = PrimaryMessage.GetCommandValue();
                handleRCMDMessage(rcmd);
                break;

            default:
                break;
            }
        }
Exemplo n.º 4
0
        public void HandleSecsMessage(SecsMessage secsMessage)
        {
            PrimaryMessage = secsMessage;
            switch (PrimaryMessage.GetSFString())
            {
            case "S6F3":    //Discrete Variable Data Send
                SubScenarioName = Resource.DCS_Discrete_Variable_Data_Send;
                PrimaryMessage.S6F4(0);
                break;

            case "S2F23":    // trace data initialization request
                SubScenarioName = Resource.DCS_Host_Initiates_Trace_Report;
                PrimaryMessage.S2F24("0");
                TraceDataInitializationRequest traceDataInitializationRequest = new TraceDataInitializationRequest();
                traceDataInitializationRequest.Parse(PrimaryMessage.SecsItem);
                dataCollection.TraceDataInitializationRequestEvent(traceDataInitializationRequest);
                break;

            case "S6F1":
                break;

            case "S1F3":    // Selected Equipment Status Request
                SubScenarioName = Resource.DCS_Host_request_value_status;
                handleS1F3();
                break;

            case "S1F5":    // Request formatted status
                SubScenarioName = Resource.DCS_Host_request_Formatted_status;
                handleS1F5();
                break;

            case "S2F13":    // equipment constants request
                SubScenarioName = Resource.DCS_Equipment_Constants_Request;
                handleS2F13();
                break;

            case "S2F15":    // X
                break;

            case "S2F37":    // host request enable or disable events
                SubScenarioName = Resource.DCS_Host_Requests_Enable_Disable_Event;
                handleS2F37();
                break;

            default:
                break;
            }
        }
        public void HandleSecsMessage(SecsMessage secsMessage)
        {
            PrimaryMessage = secsMessage;
            switch (secsMessage.GetSFString())
            {
            case "S7F19":    // current EPPD request
                SubScenarioName = Resource.RMS_Host_Attempts_To_Recipe_Mnt;
                handleS7F19Message();
                break;

            case "S7F25":    // formatted process program request
                SubScenarioName = Resource.RMS_Host_Requests_formatted_Process_program;
                handleS7F25Message();
                break;

            default:
                break;
            }
        }
Exemplo n.º 6
0
        public void HandleSecsMessage(SecsMessage secsMessage)
        {
            switch (secsMessage.GetSFString())
            {
            case "S2F17":    // equipment requests host time
                             // 在initialize scenario中有处理此消息, 所以这里不再重复
                break;

            case "S2F31":    // host instructs equipment to set time
                SubScenarioName = Resource.CLKS_Host_Instructs_Time;
                string dateTimeStr = secsMessage.SecsItem.GetString();
                if (!String.IsNullOrEmpty(dateTimeStr))
                {
                    clock.UpdateDateTime(dateTimeStr);
                    secsMessage.S2F32("0");
                }
                break;

            default:
                break;
            }
        }
        public void HandleSecsMessage(SecsMessage secsMessage)
        {
            PrimaryMessage = secsMessage;
            switch (secsMessage.GetSFString())
            {
            case "S5F3":    // enable or disable alarm
                SubScenarioName = Resource.AMS_Enable_Disable_Alarm;
                AlarmEnableDisableRequest alarmEnableDisableJob = new AlarmEnableDisableRequest();
                alarmEnableDisableJob.Parse(PrimaryMessage.SecsItem);
                AMSCallBack.AlarmEnableDisableRequestEvent(alarmEnableDisableJob);
                secsMessage.S5F4(0);
                break;

            case "S5F103":    // current alarm set list request
                SubScenarioName = Resource.AMS_Alarm_List_Request;
                CurrentAlarmListRequest currentAlarmListJob = new CurrentAlarmListRequest();
                currentAlarmListJob.Parse(PrimaryMessage.SecsItem);
                AMSCallBack.CurrentAlarmListRequestEvent(currentAlarmListJob, true);
                break;

            default:
                break;
            }
        }