/// <summary>
        /// Image Processing Tool Window Constructor
        /// </summary>
        /// <param name="imagePack">Image processing pack to work with</param>
        public ImageProcessingTool(ImageProcessPack imagePack)
        {
            InitializeComponent();
            _imagePack = imagePack;

            Loaded += OnWindowLoaded;
            Closing += OnWindowClosing;
        }
Example #2
0
        /// <summary>
        /// On window loaded - Start  Foosbot Application and Threads
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void OnWindowLoaded(object sender, RoutedEventArgs e)
        {
            try
            {
                InitializeStatistics();

                //Start Diagnostics - Processor and Memory Usage
                StartDiagnostics();

                _imageProcessingPack = ImageProcessPack.Create(Dispatcher, _guiImage);
                _imageProcessingPack.Start();

                VectorCalculationUnit vectorCalcullationUnit =
                    new VectorCalculationUnit(_imageProcessingPack.ImageProcessUnit.BallLocationUpdater,
                                                _imageProcessingPack.ImageProcessUnit.ImagingData);
                vectorCalcullationUnit.Start();

                _decisionUnit = new MainDecisionUnit(vectorCalcullationUnit.LastBallLocationPublisher);
                _decisionUnit.Start();

                CommunicationFactory.Create(_decisionUnit.RodActionPublishers, _decisionUnit.UpdateRealTimeState);
                CommunicationFactory.Start();
            }
            catch(Exception ex)
            {
                MessageBox.Show("Application can not start. Reason: " + ex.Message);
                Close();
            }
        }