using Hawkeye.VisionBuilder.UI.Sources.Emulation; using Inspectron.Settings; using Inspectron.Settings.Windows.Configuration; using Lindt.Colorballs.Duo.Utils; using Ninject; using Ninject.Extensions.ChildKernel; using OpenCvSharp; using System.Collections.ObjectModel; using System.ComponentModel; using System.Threading; using VisionBuilder.UI.Common; using VisionBuilder.UI.Common.Commands; using VisionBuilder.UI.Common.RecipeProcessing; using VisionBuilder.UI.Common.ViewModel; using VisionBuilder.UI.Common.ViewModel.Classes; using VisionBuilder.UI.Common.ViewModel.Interfaces.UI; using VisionBuilder.UI.Console; using VisionBuilder.UI.IOCommander; using VisionBuilder.UI.Recipes.HawkeyeRecipe; using VisionBuilder.UI.Ringbuffer; using VisionBuilder.UI.Statistics; using VisionBuilder.UI.Windows.Settings; namespace VisionBuilder.UI.Windows.Test { internal static class Program { private const string CAMERA1 = "Camera 1"; /// /// 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(); // In your application startup code MaterialSkin.MaterialSkinManager.ConfigureForInspectron(); InspectronSettings settings = new InspectronSettings("..\\Config"); var mainKernel = Common.VisionBuilder.CreateMainKernel(settings); mainKernel .UseConsole() .UseIOCommander([CAMERA1]) .UseIOCommanderWindowsDebug() .UseIOCommanderVirtualInput() .UseWindowsServices() .UsePlugins() ; mainKernel.Get().StartLoading("Camera initialization"); // CAMERA 1 // ChildKernel kernelCamera1 = new ChildKernel(mainKernel); // MODULES // kernelCamera1 .RegisterCamera(CAMERA1) .UseStatistics(CAMERA1) .UseRingbuffer(CAMERA1) .UseHawkeyeRecipes(CAMERA1) .UseCameraIOCommander(CAMERA1) ; // LOAD SETTINGS // mainKernel.RegisterSettings(); kernelCamera1.RegisterSettings(); settings.LoadSettings(); // Create camera and bind it // Must be done after settings are loaded kernelCamera1.UseCamera(); // initialize modules mainKernel.InitializeModules(); kernelCamera1.InitializeModules(); settings.LoadSettings(); // load settings for plugins as they are loaded after modules mainKernel.InitializeGlobalPlugins(); kernelCamera1.InitializeCameraPlugins(CAMERA1); // initialize plugins the same way as modules(loaded modules are skipped) mainKernel.InitializeModules(); kernelCamera1.InitializeModules(); mainKernel.Get().StopLoading("Camera initialization"); var mainWindowVm = mainKernel.Get(); mainWindowVm.SingleCameraVms = [ kernelCamera1.Get() ]; settings.LoadSettings(); Application.Run(new Form1(mainWindowVm)); } } }