示例#1
0
        public void Notify(Exam.Exam exam)
        {
            if (!exam.Passed)
            {
                //若要改变出错时模型车位置,请调整此处代码。
                //可再为每种ResultType添加switch(exam.Message.Index),
                //以细化针对不同杆线错误时,模型车的位置
                switch (exam.Message.TypeOfResult)
                {
                case ResultType.Gan:
                    che.SetWeizhi(gan[exam.Message.Index].X, gan[exam.Message.Index].Y);
                    break;

                case ResultType.Xian:
                    switch (exam.Message.Index)
                    {
                    case 0:
                    case 2:
                        che.SetWeizhi(xian[exam.Message.Index].X1, che.Y);
                        break;

                    case 1:
                    case 3:
                    case 4:
                        che.SetWeizhi(che.X, xian[exam.Message.Index].Y1);
                        break;
                    }
                    break;

                case ResultType.ZT:
                    che.SetWeizhi(che.X, che.Y);
                    break;

                case ResultType.XH:
                    che.SetWeizhi(che.X, che.Y);
                    break;

                case ResultType.LXC:
                    che.SetWeizhi(che.X, che.Y);
                    break;

                case ResultType.TimeOut:
                    che.SetWeizhi(che.X, che.Y);
                    break;

                default:
                    break;
                }
            }
        }
        public void Notify(Exam.Exam exam)
        {
            if (!exam.Passed)
            {
                //若要改变出错时模型车位置,请调整此处代码。
                //可再为每种ResultType添加switch(exam.Message.Index),
                //以细化针对不同杆线错误时,模型车的位置
                switch (exam.Message.TypeOfResult)
                {
                case ResultType.Gan:
                    che.SetWeizhi(gan[exam.Message.Index].X, gan[exam.Message.Index].Y);
                    break;

                case ResultType.Xian:
                    switch (exam.Message.Index)
                    {
                    case 0:
                    case 2:
                        che.SetWeizhi(xian[exam.Message.Index].X1, che.Y);
                        break;

                    case 1:
                    case 3:
                    case 4:
                        che.SetWeizhi(che.X, xian[exam.Message.Index].Y1);
                        break;
                    }
                    break;

                case ResultType.ZT:
                    che.SetWeizhi(che.X, che.Y);
                    break;

                case ResultType.XH:
                    che.SetWeizhi(che.X, che.Y);
                    break;

                case ResultType.LXC:
                    che.SetWeizhi(che.X, che.Y);
                    break;

                case ResultType.TimeOut:
                    che.SetWeizhi(che.X, che.Y);
                    break;

                default:
                    break;
                }
            }
            CMonData data = monitor.CurrData;
            CSignals g    = data.GetSignals(SignalType.GAN);

            for (int i = 0; i < 5; i++)
            {
                gan[i].Stat = g[i];
            }

            CSignals x = data.GetSignals(SignalType.XIAN);

            for (int i = 0; i < 5; i++)
            {
                xian[i].Stat = x[i];
            }

            if (this.picBoxModelBackGround.InvokeRequired)
            {
                NotifyDelegate doNotify = new NotifyDelegate(DoNotify);
                this.picBoxModelBackGround.Invoke(doNotify);
            }
            else
            {
                DoNotify();
            }
        }