Files
HawkeyeVision/VisionBuilder.UI.Windows.Test/Program.cs
2025-07-14 12:03:59 +02:00

93 lines
3.7 KiB
C#

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
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[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<InspectronSettings>().ToConstant(settings);
kernelCamera1.Bind<UIConfiguration,ISettings>().ToConstant(new UIConfiguration());
kernelCamera1.Bind<CameraSettings, ISettings>().ToConstant(new CameraSettings("Camera 1"));
kernelCamera1.Bind<EmulationSettings, ISettings>().ToConstant(new EmulationSettings("Camera 1"));
kernelCamera1.Bind<HawkeyeRecognitionSettings, ISettings>().ToConstant(new HawkeyeRecognitionSettings("Camera 1"));
kernelCamera1.Bind<VisionBuilderRingbufferSettings, ISettings>().ToConstant(new VisionBuilderRingbufferSettings("Camera 1"));
kernelCamera1.RegisterSettings();
settings.LoadSettings();
// --- //
// SOURCES //
var cameraSettings = kernelCamera1.Get<CameraSettings>();
switch (cameraSettings.Camera1Source)
{
case CameraSettings.EImageSource.Emulation:
kernelCamera1.Bind<IImageSource>().To<EmulationCameraImageSource>().InSingletonScope();
break;
case CameraSettings.EImageSource.Hawkeye:
break;
case CameraSettings.EImageSource.IDS:
break;
case CameraSettings.EImageSource.Basler:
break;
default:
throw new ArgumentOutOfRangeException();
}
// --- //
// SERVICES //
kernelCamera1.Bind<ISettingsService>().To<SettingsService>().InSingletonScope();
kernelCamera1.Bind<IRecognitionControl>().To<HawkeyeRecognitionControl>().InSingletonScope();
kernelCamera1.Bind<VisionBuilderRingbuffer>().ToSelf().InSingletonScope();
kernelCamera1.Bind<ILoadingService>().To<LoadingService>().InSingletonScope();
kernelCamera1.Get<VisionBuilderRingbuffer>(); // initialize the ringbuffer
var mainWindowVm = new MainWindowVM(kernelCamera1.Get<ISettingsService>())
{
SingleCameraVms = new ObservableCollection<SingleCameraVM>()
{
new SingleCameraVM(kernelCamera1.Get<CameraSettings>(),kernelCamera1.Get<UIConfiguration>(),new RecipeSelectionDialogService(),kernelCamera1.Get<IRecognitionControl>(), new ImagePreviewService(), new NoLearning())
}
};
settings.LoadSettings();
Application.Run(new Form1(mainWindowVm));
}
}
}