recipe name filter

This commit is contained in:
meelstorm
2025-07-28 09:52:29 +02:00
parent 71d59df0cd
commit f80b275ad8
58 changed files with 4066 additions and 79 deletions

View File

@@ -0,0 +1,56 @@
using VisionBuilder.UI.Common;
using VisionBuilder.UI.Common.RecipeProcessing;
namespace B24SiemensPlugin;
public class SiemensCameraModule: IVisionBuilderModule
{
private readonly SingleCameraVM _singleCameraVm;
private readonly B24SiemensSettings _settings;
private SiemensServer _server;
public SiemensCameraModule(SingleCameraVM singleCameraVm,B24SiemensSettings settings)
{
_singleCameraVm = singleCameraVm;
_settings = settings;
}
public void InitializeModule()
{
_server = new SiemensServer();
_server.OnPLCPacket += _server_OnPLCPacket;
_server.Start();
}
string? GetMapping(int material)
{
var mapping = _settings.RecipeMappings.FirstOrDefault(x => x.MaterialNumber == material);
if (mapping == null)
{
return null;
}
return mapping.RecipeName;
}
private PLCPacket _server_OnPLCPacket(PLCPacket packet)
{
packet.KameraStart= _singleCameraVm.IsRunning;
var recipe = GetMapping(packet.Materialnummer);
var selectedRecipe = _singleCameraVm.SelectedRecipe;
if (recipe != null && recipe != selectedRecipe?.RecipeName)
{
var vm = _singleCameraVm.GetRecipeSelectionVm();
vm.SelectedRecipe = vm.Recipes.FirstOrDefault(r => r.RecipeName == recipe);
if (vm.SelectedRecipe != null)
{
_singleCameraVm.SynchronizationContext!.Post((_) =>
{
_singleCameraVm.ProcessRecipeSelectionVm(vm);
}, null);
}
}
return packet;
}
}