Files
egtbeamwall/EgtBEAMWALL.Optimizer/ExecProcessManager/MyExecProcessManager.vb
T
Demetrio Cassarino b10cfb3913 Optmizer 3.0.1.5
-sistemata grafica progressbar per verifica
-aggiunto creazione btlinfo nuovo progetto
-aggiunto reset feature
-sistemato creazione pdf
2026-01-23 11:18:35 +01:00

126 lines
5.6 KiB
VB.net

Imports System.IO
Imports EgtBEAMWALL.Core.ConstBeam
Imports EgtBEAMWALL.Core.ConstIni
Imports EgtUILib
Imports EgtWPFLib5
Imports EgwMultiEngineManager.Core
Imports EgwMultiEngineManager.Data
Imports EgwMultiEngineManager.Data.Constants
Module MyExecProcessManager
Friend nProjIndex As Integer = 0
Friend nProdIndex As Integer = 0
Private m_ExecProcessManagerList As New Dictionary(Of EXECENVIRONMENTS, ExecProcessManager)
Public ReadOnly Property ExecProcessManagerList As Dictionary(Of EXECENVIRONMENTS, ExecProcessManager)
Get
Return m_ExecProcessManagerList
End Get
End Property
Friend Function Init() As Boolean
' creazione manager dei processi
Dim sCamExePath As String = ""
GetMainPrivateProfileString(S_GENERAL, K_CAMEXEPATH, "", sCamExePath)
EgtOutLog("CAMExePath = " & sCamExePath)
If Not File.Exists(sCamExePath) Then
Dim sMsg As String = "CAMExePath not found!"
EgtOutLog(sMsg)
Return False
End If
Dim sPipeLuaDir As String = ""
GetMainPrivateProfileString(S_GENERAL, K_PIPELUADIR, "", sPipeLuaDir)
EgtOutLog("PipeLuaDir = " & sPipeLuaDir)
If Not File.Exists(sCamExePath) Then
Dim sMsg As String = "PipeLuaDir not found!"
EgtOutLog(sMsg)
Return False
End If
Dim nGroupIndex As Integer = 1
Dim sEnvironment As String = ""
Dim sPipeLuaFile As String = ""
Dim nMaxCamInstances As Integer = 0
While GetMainPrivateProfileString(S_EXECGROUP & nGroupIndex.ToString(), K_ENVIRONMENT, "", sEnvironment) > 0 AndAlso
GetMainPrivateProfileString(S_EXECGROUP & nGroupIndex.ToString(), K_PIPELUAFILE, "", sPipeLuaFile) AndAlso
GetMainPrivateProfileString(S_EXECGROUP & nGroupIndex.ToString(), K_MAXCAMINSTANCES, "", nMaxCamInstances)
System.Console.WriteLine("Group" & nGroupIndex.ToString())
System.Console.WriteLine("Environment = " & sEnvironment)
System.Console.WriteLine("PipeLuaFile = " & sPipeLuaFile)
System.Console.WriteLine("MaxCAMInstances = " & nMaxCamInstances)
Dim Environment As EXECENVIRONMENTS = EXECENVIRONMENTS.NULL
Select Case sEnvironment
Case "BEAM"
Environment = EXECENVIRONMENTS.BEAM
Case "WALL"
Environment = EXECENVIRONMENTS.WALL
End Select
Dim PipeLuaPath As String = sPipeLuaDir & "\" & sPipeLuaFile
If nMaxCamInstances <= 0 OrElse Environment = EXECENVIRONMENTS.NULL OrElse Not File.Exists(PipeLuaPath) Then
System.Console.WriteLine(String.Format("Group{0} not created!", nGroupIndex.ToString()))
nGroupIndex += 1
Continue While
End If
Dim NewExecProcessManager As New ExecProcessManager(nGroupIndex, Environment, sCamExePath, PipeLuaPath, nMaxCamInstances, ExecProcessManager.ReturnModes.EVENT_, False)
AddHandler NewExecProcessManager.m_AnswerReceived, AddressOf ExecProcessManager_AnswerReceived
NewExecProcessManager.StartExecutionThread()
m_ExecProcessManagerList.Add(Environment, NewExecProcessManager)
nGroupIndex += 1
End While
Return True
End Function
Private Sub ExecProcessManager_AnswerReceived(Answer As AnswerDTO)
Map.refMyStatusBarVM.SetLoadingProgress_Visibility(True)
Dim sBarPath As String = Answer.Args("BarPath")
Dim nProgramPage As Integer = -1
Integer.TryParse(Answer.Args("ProgramPage"), nProgramPage)
Dim nBarId As Integer = -1
Integer.TryParse(Answer.Args("BarId"), nBarId)
EgtOutLog("Risultato progetto " & nBarId)
Map.refCALCPanelVM.ProcessResults(sBarPath, nProgramPage, nBarId)
' Gestione progressbar per verificare l'inizio e la fine della verifica
If nProgramPage = ProjectType.PROJ Then
If nProjIndex = -1 Then
Map.refMyStatusBarVM.MaximumValue = 1
Map.refMyStatusBarVM.SetLoadingProgress(1)
Map.refMyStatusBarVM.SetOutputMessage("Verifica Completata")
Else
Map.refMyStatusBarVM.MaximumValue = Map.refProjectVM.BTLStructureVM.BTLPartVMList.Count - 1
Map.refMyStatusBarVM.SetLoadingProgress(nProjIndex)
nProjIndex += 1
End If
If nProjIndex = Map.refProjectVM.BTLStructureVM.BTLPartVMList.Count - 1 Then
Map.refMyStatusBarVM.SetOutputMessage("Verifica Completata")
Map.refSceneShowBuldingVM.SceneShowBulding.Enable(True)
Map.refSceneBuildingVM.SetViewPanel_IsEnable(True)
Map.refShowBeamPanelVM.ShowBuilding_IsEnabled = True
End If
Else
If nProdIndex = -1 Then
Map.refMyStatusBarVM.MaximumValue = 1
Map.refMyStatusBarVM.SetLoadingProgress(1)
Map.refMyStatusBarVM.SetOutputMessage("Verifica Completata")
Else
Map.refMyStatusBarVM.MaximumValue = Map.refMachGroupPanelVM.MachGroupVMList.Count - 1
Map.refMyStatusBarVM.SetLoadingProgress(nProdIndex)
nProdIndex += 1
End If
If nProdIndex = Map.refMachGroupPanelVM.MachGroupVMList.Count - 1 Then
Map.refMyStatusBarVM.SetOutputMessage("Verifica Completata")
Map.refSceneShowBuldingVM.SceneShowBulding.Enable(True)
Map.refSceneBuildingVM.SetViewPanel_IsEnable(True)
Map.refShowBeamPanelVM.ShowBuilding_IsEnabled = True
End If
End If
End Sub
Friend Function Close()
For Each Key In m_ExecProcessManagerList.Keys
m_ExecProcessManagerList(Key).Dispose()
Next
Return True
End Function
End Module