Пример #1
0
        private void ProcessingLoop(object s, EventArgs ea)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();

            using (Mat imgCap = new Mat())
                using (Mat imgMat = new Mat())
                {
                    DateTime now = DateTime.Now;
                    vc.Retrieve(imgCap, CameraChannels.Zero);
                    ProjectionTransform.Transform(imgMat, imgCap, vtArray);

                    EnterButton.Process(imgMat, now);
                    ScrollBar.Thumb.Process(imgMat, now);

                    DebugImShow(imgCap, imgMat);

                    if (input.AT && (DateTime.Now - ChangedDisplayInfomationTime) >= InformationDisplayInterval)
                    {
                        switch (StatusInfoIndicator.Visibility)
                        {
                        case System.Windows.Visibility.Visible:
                            StatusInfoIndicator.Visibility = System.Windows.Visibility.Hidden;
                            break;

                        case System.Windows.Visibility.Hidden:
                            StatusInfoIndicator.Visibility = System.Windows.Visibility.Visible;
                            break;
                        }

                        ChangedDisplayInfomationTime = DateTime.Now;
                    }
                    else if (input.AT)
                    {
                    }
                    else
                    {
                        StatusInfoIndicator.Visibility = System.Windows.Visibility.Hidden;
                    }

                    sw.Stop();
                }

            int key = Cv.WaitKey(1);

            if (key == 0x1b)
            {
                Close();
            }
        }
Пример #2
0
        private void RetrieveButtonBackground(object ss, EventArgs e)
        {
            using (Mat imgMat = new Mat())
                using (Mat imgCap = new Mat())
                {
                    vc.Retrieve(imgCap, CameraChannels.Zero);
                    ProjectionTransform.Transform(imgMat, imgCap, vtArray);

                    try
                    {
                        switch (StageRetrieveingScrollArea)
                        {
                        case 0:
                            if (EnterButton.SetReferenceImageIfThatIsNull(imgMat, SecondToWaitForAppearingTouchButton))
                            {
                                StageRetrieveingScrollArea = 1;
                                ScrollBar.Thumb.Visibility = System.Windows.Visibility.Hidden;
                                ScrollBar.PaintScrollAreaBy(ScrollBar.Thumb.ProjectionColor);
                                ScrollBar.Thumb.ReferenceImageAdjustedTime = DateTime.Now;
                            }
                            break;

                        case 1:
                            if (ScrollBar.SetThumbReferenceImageIfThatIsNull(imgMat, SecondToWaitForAppearingTouchButton))
                            {
                                StageRetrieveingScrollArea = 2;
                                ScrollBar.SetSinceChangingScrollAreaColorNow();
                            }
                            break;

                        case 2:
                            if (ScrollBar.SetButtonColorBackgroundIfThatIsNull(imgMat, SecondToWaitForAppearingTouchButton))
                            {
                                StageRetrieveingScrollArea = 3;
                                ScrollBar.PaintScrollAreaBy(ScrollBar.ScrollAreaColor);
                                ScrollBar.SetSinceChangingScrollAreaColorNow();
                            }
                            break;

                        case 3:
                            if (ScrollBar.SetScrollAreaBackgroundIfThatIsNull(imgMat, SecondToWaitForAppearingTouchButton))
                            {
                                timerToRetrieveBackground.Stop();

                                ScrollBar.Thumb.Visibility      = System.Windows.Visibility.Visible;
                                ScrollBar.Thumb.ButtonTouching += (s, ea) => ScrollBar.ScrollProcess(s, ea);
                                ScrollBar.ValueChanged         += (s, ea) => Move();

                                EnterButton.ButtonHandDown += (s, ea) => blockCrashView.KeyDownEnterButton();
                                EnterButton.ButtonHandUp   += (s, ea) => blockCrashView.KeyUpEnterButton();

                                int ThumbValidPixels = ScrollBar.Thumb.ValidateArea.Width * ScrollBar.Thumb.ValidateArea.Height;

                                blockCrashView.Initialize(WPFBlockCrash.BlockCrashView.EOperatingType.VIRTOS_SLIDER);
                                blockCrashView.IsAuto = false;
                                blockCrashView.RunGame();

                                timerToProcess          = new DispatcherTimer();
                                timerToProcess.Tick    += (s, ea) => ProcessingLoop(s, ea);
                                timerToProcess.Interval = TimeSpan.FromMilliseconds(1);
                                timerToProcess.Start();
                            }
                            break;
                        }
                    }
                    catch (Exception)
                    {
                        //!?
                        throw;
                    }
                }
        }