diff --git a/Lux.API/ExtLib/EgwMultiEngineManager.deps.json b/Lux.API/ExtLib/EgwMultiEngineManager.deps.json new file mode 100644 index 00000000..d97fa9f9 --- /dev/null +++ b/Lux.API/ExtLib/EgwMultiEngineManager.deps.json @@ -0,0 +1,63 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "EgwMultiEngineManager/1.0.0": { + "dependencies": { + "NETStandard.Library": "2.0.3", + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "EgwMultiEngineManager.dll": {} + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Newtonsoft.Json/13.0.3": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + } + } + } + } + }, + "libraries": { + "EgwMultiEngineManager/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Lux.API/ExtLib/EgwMultiEngineManager.dll b/Lux.API/ExtLib/EgwMultiEngineManager.dll index 3cf51d27..7276ed64 100644 Binary files a/Lux.API/ExtLib/EgwMultiEngineManager.dll and b/Lux.API/ExtLib/EgwMultiEngineManager.dll differ diff --git a/Lux.API/Program.cs b/Lux.API/Program.cs index c5ab87f7..043ade18 100644 --- a/Lux.API/Program.cs +++ b/Lux.API/Program.cs @@ -21,13 +21,16 @@ builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); +ExecProcessManager? myExecProcessManager = null; + // solo se abilitato da conf if (enableEgwEng) { // aggiungo rif libreria EgwManager string sCamExePath = @"c:\EgtProg\EgtEngine\EgtEngineR32.exe"; string sMainLuaPath = @"c:\Temp\EgwMultiEngineManager\Pipe.lua"; - ExecProcessManager myExecProcessManager = new ExecProcessManager(sCamExePath, sMainLuaPath, 1, ExecProcessManager.ReturnModes.EVENT_); + myExecProcessManager = new ExecProcessManager(sCamExePath, sMainLuaPath, 1, ExecProcessManager.ReturnModes.EVENT_); + myExecProcessManager.StartExecutionThread(); builder.Services.AddSingleton(myExecProcessManager); } builder.Services.AddSingleton(); @@ -52,4 +55,16 @@ app.UseAuthorization(); app.MapControllers(); -app.Run(); +// inserisco evento in chiusura x fermare i thread di calcolo sottostanti: +// https://shazwazza.com/post/aspnet-core-application-shutdown-events/ +// https://dotnetblog.asphostportal.com/how-to-handle-application-shutdown-in-asp-net-core/ +app.Lifetime.ApplicationStopping.Register(() => +{ + if (myExecProcessManager != null) + { + myExecProcessManager.StopExecutionThread(); + } +}); + +// avvio app +app.Run(); \ No newline at end of file diff --git a/Lux.API/appsettings.json b/Lux.API/appsettings.json index 92840c90..2843b501 100644 --- a/Lux.API/appsettings.json +++ b/Lux.API/appsettings.json @@ -57,7 +57,7 @@ "Redis": "redis.ufficio:26379, serviceName=devel, DefaultDatabase=6, keepAlive=180, connectTimeout=15000, syncTimeout=15000, asyncTimeout=15000, abortConnect=false, ssl=false, allowAdmin=true" }, "ServerConf": { - "EgwEngineEnab": false, + "EgwEngineEnab": true, "BaseUrl": "/Lux/srv/" } }