using System.Collections.ObjectModel; using VisionBuilder.UI.Common; using VisionBuilder.UI.Common.Commands; using VisionBuilder.UI.Common.ViewModel; using VisionBuilder.UI.Common.ViewModel.Classes; using VisionBuilder.UI.Common.ViewModel.Interfaces.UI; using VisionBuilder.UI.Windows.Settings; using System.Threading; using Hawkeye.VisionBuilder.UI.Sources.Emulation; using Inspectron.Settings; using Inspectron.Settings.Windows.Configuration; using Lindt.Colorballs.Duo.Utils; using Ninject; using OpenCvSharp; using VisionBuilder.UI.Common.RecipeProcessing; using VisionBuilder.UI.Recipes.HawkeyeRecipe; namespace VisionBuilder.UI.Windows.Test { internal static class Program { /// /// The main entry point for the application. /// [STAThread] static void Main() { // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); StandardKernel kernelCamera1 = new StandardKernel(); // SETTINGS // InspectronSettings settings = new InspectronSettings("..\\Config\\AppSettings.xml"); kernelCamera1.Bind().ToConstant(settings); kernelCamera1.Bind().ToConstant(new UIConfiguration()); kernelCamera1.Bind().ToConstant(new CameraSettings("Camera 1")); kernelCamera1.Bind().ToConstant(new EmulationSettings("Camera 1")); kernelCamera1.Bind().ToConstant(new HawkeyeRecognitionSettings("Camera 1")); kernelCamera1.Bind().ToConstant(new VisionBuilderRingbufferSettings("Camera 1")); kernelCamera1.RegisterSettings(); settings.LoadSettings(); // --- // // SOURCES // var cameraSettings = kernelCamera1.Get(); switch (cameraSettings.Camera1Source) { case CameraSettings.EImageSource.Emulation: kernelCamera1.Bind().To().InSingletonScope(); break; case CameraSettings.EImageSource.Hawkeye: break; case CameraSettings.EImageSource.IDS: break; case CameraSettings.EImageSource.Basler: break; default: throw new ArgumentOutOfRangeException(); } // --- // // SERVICES // kernelCamera1.Bind().To().InSingletonScope(); kernelCamera1.Bind().To().InSingletonScope(); kernelCamera1.Bind().ToSelf().InSingletonScope(); kernelCamera1.Bind().To().InSingletonScope(); kernelCamera1.Get(); // initialize the ringbuffer var mainWindowVm = new MainWindowVM(kernelCamera1.Get()) { SingleCameraVms = new ObservableCollection() { new SingleCameraVM(kernelCamera1.Get(),kernelCamera1.Get(),new RecipeSelectionDialogService(),kernelCamera1.Get(), new ImagePreviewService(), new NoLearning()) } }; settings.LoadSettings(); Application.Run(new Form1(mainWindowVm)); } } }