Exemple #1
0
        public void ReciveMessage(object message)
        {
            if (message.GetType() == typeof(ConveyorControlMsg))
            {
                this.DisposeFromControl((ConveyorControlMsg)message);
            }
            else if (message.GetType() == typeof(FluProgramMsg))
            {
                FluProgramMsg msg = (FluProgramMsg)message;

                if (msg == FluProgramMsg.轨道状态机启动)
                {
                    ConveyorMgr.Instance.Setup();
                }
                else if (msg == FluProgramMsg.轨道状态机停止)
                {
                    ConveyorMgr.Instance.Unload();
                }
                else if (msg == FluProgramMsg.进入轨道参数界面)
                {
                    new ConveyorSettingForm(2).ShowDialog();
                }

                else
                {
                    switch (ConveyorMsgCenter.Instance.ConveyorState)
                    {
                    case ConveyorControlMsg.轨道1启用:
                        this.DisposeFromFluProgram(msg, 0);
                        break;

                    case ConveyorControlMsg.轨道2启用:
                        this.DisposeFromFluProgram(msg, 1);
                        break;

                    case ConveyorControlMsg.轨道1和轨道2同时启用:
                        this.DisposeFromFluProgram(msg, 0);
                        this.DisposeFromFluProgram(msg, 1);
                        break;
                    }
                }
            }
        }
Exemple #2
0
 public void SendMessage(FluProgramMsg message)
 {
     ConveyorMsgCenter.Instance.PassMessage(this, message);
 }
Exemple #3
0
        private void DisposeFromFluProgram(FluProgramMsg message, int conveyorNo)
        {
            switch (message)
            {
            case FluProgramMsg.进入编程界面:
                FlagBitMgr.Instance.FindBy(0).UILevel.EnterEditForm = true;
                FlagBitMgr.Instance.FindBy(1).UILevel.EnterEditForm = true;
                break;

            case FluProgramMsg.退出编程界面:
                FlagBitMgr.Instance.FindBy(0).UILevel.ExitEditForm = true;
                FlagBitMgr.Instance.FindBy(1).UILevel.ExitEditForm = true;
                break;

            case FluProgramMsg.启动按钮按下:
                if (FlagBitMgr.Instance.FindBy(conveyorNo).UILevel.SelectedMode == UILevel.RunMode.Auto)
                {
                    FlagBitMgr.Instance.FindBy(conveyorNo).UILevel.AutoRun = true;
                }
                if (FlagBitMgr.Instance.FindBy(conveyorNo).UILevel.SelectedMode == UILevel.RunMode.Demo)
                {
                    FlagBitMgr.Instance.FindBy(conveyorNo).UILevel.DemoRun = true;
                }
                if (FlagBitMgr.Instance.FindBy(conveyorNo).UILevel.SelectedMode == UILevel.RunMode.PassThrough)
                {
                    FlagBitMgr.Instance.FindBy(conveyorNo).UILevel.PassRun = true;
                }
                break;

            case FluProgramMsg.停止按钮按下:
                FlagBitMgr.Instance.FindBy(0).UILevel.Terminate = true;
                FlagBitMgr.Instance.FindBy(1).UILevel.Terminate = true;
                break;

            case FluProgramMsg.轨道1点胶动作开始:
                FlagBitMgr.Instance.FindBy(0).ModelLevel.Auto.DispenseStart = true;
                break;

            case FluProgramMsg.轨道1点胶完成:
                FlagBitMgr.Instance.FindBy(0).ModelLevel.Auto.DispenseDone = true;
                break;

            case FluProgramMsg.轨道2点胶动作开始:
                FlagBitMgr.Instance.FindBy(1).ModelLevel.Auto.DispenseStart = true;
                break;

            case FluProgramMsg.轨道2点胶完成:
                FlagBitMgr.Instance.FindBy(1).ModelLevel.Auto.DispenseDone = true;
                break;

            case FluProgramMsg.轨道1手动进板:
                new ManualEnterBoard().Execute(0);
                break;

            case FluProgramMsg.轨道1手动出板:
                new ManualOutBoard().Execute(0);
                break;

            case FluProgramMsg.轨道1手动SMEMA进板:
                new ManualSMEMAEnterBoard().Execute(0);
                break;

            case FluProgramMsg.轨道1手动SMEMA出板:
                new ManualSMEMAOutBoard().Execute(0);
                break;

            case FluProgramMsg.轨道2手动进板:
                new ManualEnterBoard().Execute(1);
                break;

            case FluProgramMsg.轨道2手动出板:
                new ManualOutBoard().Execute(1);
                break;

            case FluProgramMsg.轨道2手动SMEMA进板:
                new ManualSMEMAEnterBoard().Execute(1);
                break;

            case FluProgramMsg.轨道2手动SMEMA出板:
                new ManualSMEMAOutBoard().Execute(1);
                break;
            }
        }