/// <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; }
/// <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(); } }