ringbuffer and statistics

This commit is contained in:
meelstorm
2025-07-18 10:13:46 +02:00
parent d3cb790bd9
commit 40d74d6da6
41 changed files with 1188 additions and 180 deletions

View File

@@ -11,14 +11,19 @@ using Inspectron.Settings;
using Inspectron.Settings.Windows.Configuration;
using Lindt.Colorballs.Duo.Utils;
using Ninject;
using Ninject.Extensions.ChildKernel;
using OpenCvSharp;
using VisionBuilder.UI.Common.RecipeProcessing;
using VisionBuilder.UI.Console;
using VisionBuilder.UI.Recipes.HawkeyeRecipe;
using VisionBuilder.UI.Ringbuffer;
using VisionBuilder.UI.Statistics;
namespace VisionBuilder.UI.Windows.Test
{
internal static class Program
{
private const string CAMERA1 = "Camera 1";
/// <summary>
/// The main entry point for the application.
/// </summary>
@@ -29,59 +34,43 @@ namespace VisionBuilder.UI.Windows.Test
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
InspectronSettings settings = new InspectronSettings("..\\Config\\AppSettings.xml");
StandardKernel kernelCamera1 = new StandardKernel();
var mainKernel = Common.VisionBuilder.CreateMainKernel(settings);
// CAMERA 1 //
ChildKernel kernelCamera1 = new ChildKernel(mainKernel);
mainKernel.UseWindowsServices();
// MODULES //
kernelCamera1
.RegisterCamera(CAMERA1)
.UseStatistics(CAMERA1)
.UseRingbuffer(CAMERA1)
.UseHawkeyeRecipes(CAMERA1)
.UseConsole();
// 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"));
// LOAD SETTINGS //
kernelCamera1.RegisterSettings();
settings.LoadSettings();
// Create camera and bind it
// Must be done after settings are loaded
kernelCamera1.UseCamera();
kernelCamera1.InitializeModules();
var mainWindowVm = mainKernel.Get<MainWindowVM>();
mainWindowVm.SingleCameraVms = [
kernelCamera1.Get<SingleCameraVM>()
];
// --- //
// 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));
}

View File

@@ -9,6 +9,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Ninject.Extensions.ChildKernel" Version="3.3.0" />
<PackageReference Include="OpenCvSharp4.runtime.win" Version="4.6.0.20220608" />
</ItemGroup>
@@ -17,9 +18,12 @@
<ProjectReference Include="..\framework\Inspectron.Settings\Inspectron.Settings.csproj" />
<ProjectReference Include="..\framework\MaterialSkin.Core\MaterialSkin.Core.csproj" />
<ProjectReference Include="..\Hawkeye.VisionBuilder.UI.Sources.Emulation\Hawkeye.VisionBuilder.UI.Sources.Emulation.csproj" />
<ProjectReference Include="..\VisionBuilder.UI.Camera\VisionBuilder.UI.Camera.csproj" />
<ProjectReference Include="..\VisionBuilder.UI.Common\VisionBuilder.UI.Common.csproj" />
<ProjectReference Include="..\VisionBuilder.UI.Console\VisionBuilder.UI.Console.csproj" />
<ProjectReference Include="..\VisionBuilder.UI.Recipes.HawkeyeRecipe\VisionBuilder.UI.Recipes.HawkeyeRecipe.csproj" />
<ProjectReference Include="..\VisionBuilder.UI.Ringbuffer\VisionBuilder.UI.Ringbuffer.csproj" />
<ProjectReference Include="..\VisionBuilder.UI.Statistics\VisionBuilder.UI.Statistics.csproj" />
<ProjectReference Include="..\VisionBuilder.UI.Windows\VisionBuilder.UI.Windows.csproj" />
</ItemGroup>