Compare commits

..

1 Commits

Author SHA1 Message Date
Emmanuele Sassi 88b9226bcb - gestione log macchina con timer
- aggiornamento log macchina durante produzione pezzi
2023-06-12 09:13:30 +02:00
24 changed files with 137 additions and 167 deletions
+2 -2
View File
@@ -35,5 +35,5 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.5.6.2")>
<Assembly: AssemblyFileVersion("2.5.6.2")>
<Assembly: AssemblyVersion("2.5.5.4")>
<Assembly: AssemblyFileVersion("2.5.5.4")>
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.5.6.2")]
[assembly: AssemblyFileVersion("2.5.6.2")]
[assembly: AssemblyVersion("2.5.5.4")]
[assembly: AssemblyFileVersion("2.5.5.4")]
@@ -40,7 +40,7 @@ Public Class LeftPanelVM
Return m_SelChannel
End Get
Set(ByVal value As IdNameStruct)
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETCHANNEL, value.Id))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETCHANNEL, value.Id))
m_SelChannel = value
End Set
End Property
@@ -86,7 +86,7 @@ Public Class LeftPanelVM
Return m_SelOPMode
End Get
Set(ByVal value As OPState)
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE, value.Id))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE, value.Id))
' se MDI
If value.Id = OPModes.Mdi Then
' mostro pagina comandi MDI
@@ -561,6 +561,8 @@ Public Class LeftPanelVM
If CurrentMachine.Flow = FlowTypes.ONEBYONE Then
MyMachGroupVM.UpdateProduceIsEnabledForAll()
End If
' aggiorno log macchina
Map.refMachineLogPageVM.UpdateMachineLogList(False)
End Sub
#End Region ' DoneRawPart
@@ -800,6 +802,8 @@ Public Class LeftPanelVM
Next
SetDonePart(SelMachGroup, SelMachGroup.SelPart)
Map.refProjectVM.SupervisorMachGroupPanelVM.SelectedMachGroup = SelMachGroup
' aggiorno log macchina
Map.refMachineLogPageVM.UpdateMachineLogList(False)
End Sub
Public Sub SetDonePart(MachGroup As MyMachGroupVM, Part As PartVM)
+1 -1
View File
@@ -163,7 +163,7 @@ Public Class MDIPageVM
''' </summary>
Friend Sub SendMDI()
If Not String.IsNullOrWhiteSpace(m_sMDICommand_Text) Then
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.MDI, m_sMDICommand_Text))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.MDI, m_sMDICommand_Text))
End If
End Sub
@@ -427,11 +427,11 @@ Public Class MachCommandMessagePanelVM
End Property
Public Sub Disconnect()
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT))
End Sub
Public Sub SetOPState(OpState As Integer)
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE))
End Sub
Public ReadOnly Property Start_Command As ICommand
@@ -442,7 +442,7 @@ Public Class MachCommandMessagePanelVM
End Property
Public Sub Start(ByVal param As Object)
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.START))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.START))
End Sub
Public ReadOnly Property Stop_Command As ICommand
@@ -453,7 +453,7 @@ Public Class MachCommandMessagePanelVM
End Property
Public Sub [Stop](ByVal param As Object)
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOP_))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOP_))
End Sub
Public ReadOnly Property Reset_Command As ICommand
@@ -464,7 +464,7 @@ Public Class MachCommandMessagePanelVM
End Property
Public Sub Reset(ByVal param As Object)
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.RESET))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.RESET))
' annullo stato di pronto ad essere lavorato di tutti i programmi
If Not IsNothing(Map.refProjectVM.SupervisorMachGroupPanelVM) Then Map.refProjectVM.SupervisorMachGroupPanelVM.ResetAllMachGroups()
End Sub
@@ -477,7 +477,7 @@ Public Class MachCommandMessagePanelVM
End Property
Public Sub [Step](ByVal param As Object)
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STEP_))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STEP_))
End Sub
Public ReadOnly Property SetPoint_Command As ICommand
@@ -488,7 +488,7 @@ Public Class MachCommandMessagePanelVM
End Property
Public Sub SetPoint(ByVal param As Object)
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETPOINT))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETPOINT))
End Sub
@@ -500,7 +500,7 @@ Public Class MachCommandMessagePanelVM
End Property
Public Sub DeleteAlarms(ByVal param As Object)
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.DELETEALARMS))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.DELETEALARMS))
End Sub
Public Function GetVarPathByName(Name As String) As String
@@ -10,9 +10,6 @@ Imports EgtBEAMWALL.Supervisor.CommVar
Public Class MachManaging
' lock per aggiunta elemento a lista MachGroup
Private Shared Lock_CommandList As New Object
Private m_bConnected As Boolean = False
Public ReadOnly Property bConnected As Boolean
Get
@@ -56,22 +53,6 @@ Public Class MachManaging
Return m_CommandList
End Get
End Property
Friend Shared Sub AddToCommandList(value As ThreadCommand)
SyncLock Lock_CommandList
' EgtOutLog("Inizio ciclo rimozioni")
For CommandIndex = m_CommandList.Count - 1 To 0 Step -1
Dim Command As ThreadCommand = m_CommandList(CommandIndex)
If Command.ProcessingStatus = ThreadCommand.ProcessingStatuses.DONE Then
' EgtOutLog("Inizio rimozione comando")
m_CommandList.Remove(Command)
' EgtOutLog("Fine rimozione comando")
End If
Next
' EgtOutLog("Fine ciclo rimozioni")
CommandList.Add(value)
' EgtOutLog("Count dopo aggiunta: " & CommandList.Count)
End SyncLock
End Sub
Private m_bStartPending As Boolean = False
Public ReadOnly Property StartPending As Boolean
@@ -588,6 +569,8 @@ Public Class MachManaging
' scrivo evento inizio MachGroup su DB
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachGroupStateLog(dtStart, nP_Prod, nP_Machgroup, nP_State, DbControllers.SupervisorId))
End If
' flag di aggiornamento log macchina
Map.refMachineLogPageVM.UpdateMachineLogList(False)
' attesa per essere sicuro che abbia scritto e riletto variabili
Threading.Thread.Sleep(300)
ElseIf nP_State = PartState.END_ Then
@@ -657,7 +640,7 @@ Public Class MachManaging
' se non impostata data start
If MachGroup.dtStartTime = DateTime.MinValue Then
' EgtOutLog("Start date not set on Prod " & nP_Prod & " Machgroup " & nP_Machgroup)
EgtOutLog("Start date not set on Prod " & nP_Prod & " Machgroup " & nP_Machgroup)
Dim dtStart As DateTime = MachGroup.dtEndTime - TimeSpan.FromSeconds(60)
' provo a recuperare tempo stimato
If MachGroup.nCALC_TIME > 0 Then
@@ -697,6 +680,8 @@ Public Class MachManaging
Map.refLeftPanelVM.PrintLabel(MachGroup, Part)
End If
End If
' flag di aggiornamento log macchina
Map.refMachineLogPageVM.UpdateMachineLogList(False)
' attesa per essere sicuro che abbia scritto e riletto variabili
Threading.Thread.Sleep(300)
End If
@@ -741,7 +726,7 @@ Public Class MachManaging
End Function
Private Function SendNextProgram() As Boolean
' EgtOutLog("Inizio SendNextProgram")
EgtOutLog("Inizio SendNextProgram")
Dim bSent As Boolean = False
If (CurrentMachine.NCType = NCTypes.TPA AndAlso Not m_bStartPending AndAlso Tpa.opState = MachineOperatingState.Pending) OrElse
(CurrentMachine.NCType = NCTypes.NUM_FLEXIUM AndAlso Not Num_Flexium.bIsTransferActive) OrElse
@@ -749,20 +734,20 @@ Public Class MachManaging
(CurrentMachine.NCType = NCTypes.NUM_AXIUM_PCTOOLKIT AndAlso Not Num_Axium_PCToolkit.bIsTransferActive) Then ' Or Tpa.opState = MachineOperatingState.Start) Then
' verifico se c'e' un programma da lanciare
If Not IsNothing(Map.refProjectVM.SupervisorMachGroupPanelVM) Then
' EgtOutLog("Start " & DateTime.Now())
EgtOutLog("Start " & DateTime.Now())
Dim bMachGroupNotReady As Boolean = False
SyncLock m_Lock_SendProgram
For Each MyMachGroup As MyMachGroupVM In Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList
' EgtOutLog("Ciclo su name: " & MyMachGroup.Name & " id: " & MyMachGroup.Id)
EgtOutLog("Ciclo su name: " & MyMachGroup.Name & " id: " & MyMachGroup.Id)
If Not MyMachGroup.bSentToMachine AndAlso (MyMachGroup.dtStartTime = DateTime.MinValue OrElse
(Map.refSupervisorManagerVM.CurrProd.nType = BWType.WALL AndAlso MyMachGroup.bResetWhileCutting)) Then
' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " è da fare")
EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " è da fare")
' verifico se ricalcolo finito
If MyMachGroup.bReadyForMachining AndAlso If(CurrentMachine.NCType = NCTypes.NUM_FLEXIUM Or CurrentMachine.NCType = NCTypes.NUM_AXIUM_APSERVER OrElse CurrentMachine.NCType = NCTypes.NUM_AXIUM_PCTOOLKIT, Not MyMachGroup.bSendingToMachine, True) Then
' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " pronto per essere lavorato")
EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " pronto per essere lavorato")
' lo lancio
bSent = SendProgram(MyMachGroup.CnFilePath(), MyMachGroup.Name)
' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " mandato " & DateTime.Now() & " " & MyMachGroup.Name & " " & bSent.ToString())
EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " mandato " & DateTime.Now() & " " & MyMachGroup.Name & " " & bSent.ToString())
Select Case CurrentMachine.NCType
Case NCTypes.TPA
MyMachGroup.SetSentToMachine(bSent)
@@ -774,7 +759,7 @@ Public Class MachManaging
Else
' programma non ancora pronto, esco per attendere
bMachGroupNotReady = True
' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " non ancora pronto per essere mandato")
EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " non ancora pronto per essere mandato")
Exit For
'Return False
End If
@@ -782,7 +767,7 @@ Public Class MachManaging
Next
End SyncLock
If bMachGroupNotReady Then Return False
' EgtOutLog("End " & DateTime.Now())
EgtOutLog("End " & DateTime.Now())
End If
End If
Return bSent
@@ -790,17 +775,10 @@ Public Class MachManaging
Private Sub CommandList_CollectionChanged(sender As Object, e As NotifyCollectionChangedEventArgs)
If Not IsNothing(e.NewItems) Then
' EgtOutLog("Inizio ciclo esecuzione comandi")
Dim nCommandCount As Integer = e.NewItems.Count
For CommandIndex = 0 To nCommandCount - 1
Dim Command As ThreadCommand = e.NewItems(CommandIndex)
If Command.ProcessingStatus = ThreadCommand.ProcessingStatuses.WAITING Then
Command.SetProcessingStatus(ThreadCommand.ProcessingStatuses.PROCESSING)
ExecuteCommand(DirectCast(Command, ThreadCommand))
Command.SetProcessingStatus(ThreadCommand.ProcessingStatuses.DONE)
End If
For Each Command In e.NewItems
ExecuteCommand(DirectCast(Command, ThreadCommand))
m_CommandList.Remove(Command)
Next
' EgtOutLog("Fine ciclo esecuzione di " & nCommandCount & " comandi")
End If
End Sub
@@ -1070,7 +1048,7 @@ Public Class MachManaging
Num_Axium_APServer.StartTransfer()
Return True
Case NCTypes.NUM_AXIUM_PCTOOLKIT
' EgtOutLog("Pre Download")
EgtOutLog("Pre Download")
Dim nFileType As Integer = 0
If Integer.TryParse(ProgramId, nFileType) AndAlso nFileType > 0 Then
Num_Axium_PCToolkit.FileDownload(nFileType * 10, ProgramPath)
@@ -54,12 +54,6 @@ End Class
Public Class ThreadCommand
Public Enum ProcessingStatuses
WAITING = 1
PROCESSING = 2
DONE = 3
End Enum
Private m_CommandType As CommandTypes
Public ReadOnly Property CommandType As CommandTypes
Get
@@ -101,16 +95,6 @@ Public Class ThreadCommand
End Get
End Property
Private m_ProcessingStatus As ProcessingStatuses = ProcessingStatuses.WAITING
Public ReadOnly Property ProcessingStatus As ProcessingStatuses
Get
Return m_ProcessingStatus
End Get
End Property
Friend Sub SetProcessingStatus(value As ProcessingStatuses)
m_ProcessingStatus = value
End Sub
Protected Sub New()
End Sub
@@ -25,21 +25,21 @@
</Grid>
<StackPanel Orientation="Horizontal" Height="30">
<TextBlock Text="{Binding Entity_Msg}"
<TextBlock Text="Entità"
Style="{StaticResource Log_TextBlock}"/>
<ComboBox ItemsSource="{Binding EntityTypeList}"
SelectedIndex="{Binding SelEntityType}"
Width="70"
Margin="0,0,2.5,0"
Style="{StaticResource PartParam_ComboBox}"/>
<TextBlock Text="{Binding Event_Msg}"
<TextBlock Text="Evento"
Style="{StaticResource Log_TextBlock}"/>
<ComboBox ItemsSource="{Binding PartEventTypeList}"
SelectedIndex="{Binding SelPartEventType}"
Width="70"
Margin="0,0,2.5,0"
Style="{StaticResource PartParam_ComboBox}"/>
<TextBlock Text="{Binding Date_Msg}"
<TextBlock Text="Data"
Style="{StaticResource Log_TextBlock}"/>
<ComboBox ItemsSource="{Binding DayTypeList}"
SelectedIndex="{Binding SelDayType}"
@@ -47,11 +47,11 @@
Margin="0,0,2.5,0"
Style="{StaticResource PartParam_ComboBox}"/>
<StackPanel Orientation="Horizontal" Visibility="{Binding Date_Visibility}">
<TextBlock Text="{Binding From_Msg}"
<TextBlock Text="Dal"
Style="{StaticResource Log_TextBlock}"/>
<DatePicker SelectedDate="{Binding dtStartDate}"
Style="{StaticResource Log_DatePicker}"/>
<TextBlock Text="{Binding To_Msg}"
<TextBlock Text="Al"
Style="{StaticResource Log_TextBlock}"/>
<DatePicker SelectedDate="{Binding dtEndDate}"
Style="{StaticResource Log_DatePicker}"/>
@@ -9,6 +9,10 @@ Imports EgtBEAMWALL.Core.MachLog
Public Class MachineLogPageVM
Inherits VMBase
Private m_Lock_LogList As New Object
Private m_MachineLog_Timer As New DispatcherTimer
Private Enum DayTypes As Integer
TODAY = 0
YESTERDAY = 1
@@ -68,7 +72,7 @@ Public Class MachineLogPageVM
End Set
End Property
Private m_PartEventTypeList As New List(Of String)({"", EgtMsg(62527), EgtMsg(62528)})
Private m_PartEventTypeList As New List(Of String)({"", "Inizio", "Fine"})
Public ReadOnly Property PartEventTypeList As List(Of String)
Get
Return m_PartEventTypeList
@@ -87,7 +91,7 @@ Public Class MachineLogPageVM
End Set
End Property
Private m_EntityTypeList As New List(Of String)({"", EgtMsg(62525), EgtMsg(62526)})
Private m_EntityTypeList As New List(Of String)({"", "Pezzo", "Barra"})
Public ReadOnly Property EntityTypeList As List(Of String)
Get
Return m_EntityTypeList
@@ -106,7 +110,7 @@ Public Class MachineLogPageVM
End Set
End Property
Private m_DayTypeList As New List(Of String)({EgtMsg(62529), EgtMsg(62530), EgtMsg(62531)})
Private m_DayTypeList As New List(Of String)({"Oggi", "Ieri", "Periodo"})
Public ReadOnly Property DayTypeList As List(Of String)
Get
Return m_DayTypeList
@@ -131,7 +135,7 @@ Public Class MachineLogPageVM
End If
NotifyPropertyChanged(NameOf(Date_Visibility))
' aggiorno lista da Db
UpdateMachineLogList()
UpdateMachineLogList(True)
End Set
End Property
@@ -145,7 +149,7 @@ Public Class MachineLogPageVM
Dim lStartDate As Long = m_dtStartDate.ToFileTimeUtc()
WriteMainPrivateProfileString(S_MACHINELOGFILTER, K_STARTDATE, lStartDate.ToString())
' aggiorno lista da Db
UpdateMachineLogList()
UpdateMachineLogList(True)
End Set
End Property
@@ -159,7 +163,7 @@ Public Class MachineLogPageVM
Dim lEndDate As Long = m_dtEndDate.ToFileTimeUtc()
WriteMainPrivateProfileString(S_MACHINELOGFILTER, K_ENDDATE, lEndDate.ToString())
' aggiorno lista da Db
UpdateMachineLogList()
UpdateMachineLogList(True)
End Set
End Property
@@ -223,35 +227,6 @@ Public Class MachineLogPageVM
End Get
End Property
Public ReadOnly Property Entity_Msg As String
Get
Return EgtMsg(62520)
End Get
End Property
Public ReadOnly Property Event_Msg As String
Get
Return EgtMsg(62521)
End Get
End Property
Public ReadOnly Property Date_Msg As String
Get
Return EgtMsg(62522)
End Get
End Property
Public ReadOnly Property From_Msg As String
Get
Return EgtMsg(62523)
End Get
End Property
Public ReadOnly Property To_Msg As String
Get
Return EgtMsg(62524)
End Get
End Property
#End Region ' Messages
@@ -292,6 +267,9 @@ Public Class MachineLogPageVM
m_dtEndDate = If(lEndDate > 0, DateTime.FromFileTimeUtc(lEndDate), DateTime.Today)
m_Date_Visibility = Visibility.Visible
End Select
m_MachineLog_Timer.Interval = TimeSpan.FromMilliseconds(100)
AddHandler m_MachineLog_Timer.Tick, AddressOf MachineLog_Timer_Tick
m_MachineLog_Timer.Start()
End Sub
#End Region ' CONSTRUCTORS
@@ -334,21 +312,69 @@ Public Class MachineLogPageVM
m_colMachineLog_Description.ColumnVisibility = Visibility.Collapsed
m_colMachineLog_SupervisorId.ColumnVisibility = Visibility.Collapsed
End If
UpdateMachineLogList()
UpdateMachineLogList(True)
m_MachineLogList_View = CollectionViewSource.GetDefaultView(m_MachineLogList)
m_MachineLogList_View.Filter = AddressOf MachineLogFilter
End Sub
Friend Sub UpdateMachineLogList()
' indice di aggiornamento della lista rispetto a Db
Private m_nUpdateIndex As Integer
' indice di ricaricamento completo della lista dal Db
Private m_nRefreshIndex As Integer
' indice dell'ultimo update/refresh
Private m_nLastLogUpdate As Integer
Friend Sub UpdateMachineLogList(bRefresh As Boolean)
Dim nMaxIndex As Integer = Math.Max(m_nUpdateIndex, m_nRefreshIndex)
If bRefresh Then
m_nRefreshIndex = nMaxIndex + 1
Else
m_nUpdateIndex = nMaxIndex + 1
End If
End Sub
Private Sub MachineLog_Timer_Tick(sender As Object, e As EventArgs)
SyncLock m_Lock_LogList
Dim nRefresh As Integer = m_nRefreshIndex
Dim nUpdate As Integer = m_nUpdateIndex
If nRefresh > m_nLastLogUpdate Then
m_nLastLogUpdate = nRefresh
UpdateFromDb(True)
ElseIf nUpdate > m_nLastLogUpdate Then
m_nLastLogUpdate = nUpdate
UpdateFromDb(False)
End If
End SyncLock
End Sub
Friend Sub UpdateFromDb(bRefresh As Boolean)
'm_MachineLogList = New ObservableCollection(Of LogEvent)(DbControllers.m_LogMachineController.GetCoreDesc(DateTime.Now - TimeSpan.FromDays(300), DateTime.Now).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList())
Dim DbList As List(Of LogEvent)
Select Case m_SelDayType
Case DayTypes.TODAY
m_MachineLogList = New ObservableCollection(Of LogEvent)(DbControllers.m_LogMachineController.GetCoreDesc(DateTime.Today, DateTime.Today + TimeSpan.FromDays(1)).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList())
Case DayTypes.YESTERDAY
m_MachineLogList = New ObservableCollection(Of LogEvent)(DbControllers.m_LogMachineController.GetCoreDesc(DateTime.Today - TimeSpan.FromDays(1), DateTime.Today).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList())
Case DayTypes.PERIOD
m_MachineLogList = New ObservableCollection(Of LogEvent)(DbControllers.m_LogMachineController.GetCoreDesc(m_dtStartDate, m_dtEndDate + TimeSpan.FromDays(1)).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList())
DbList = DbControllers.m_LogMachineController.GetCoreDesc(m_dtStartDate, m_dtEndDate + TimeSpan.FromDays(1)).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList()
Case DayTypes.YESTERDAY
DbList = DbControllers.m_LogMachineController.GetCoreDesc(DateTime.Today - TimeSpan.FromDays(1), DateTime.Today).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList()
Case Else ' DayTypes.TODAY
DbList = DbControllers.m_LogMachineController.GetCoreDesc(DateTime.Today, DateTime.Today + TimeSpan.FromDays(1)).Select(Of LogEvent)(Function(x) New LogEvent(x)).ToList()
End Select
If bRefresh OrElse m_MachineLogList.Count < 1 Then
m_MachineLogList = New ObservableCollection(Of LogEvent)(DbList)
Else
' cerco in lista Db ultimo elemento della mia lista
Dim LastItem As LogEvent = m_MachineLogList(0)
Dim CommonItem As LogEvent = DbList.FirstOrDefault(Function(x) x.EventDateTime = LastItem.EventDateTime AndAlso x.EventType = LastItem.EventType AndAlso x.SupervisorId = LastItem.SupervisorId AndAlso x.Value = LastItem.Value)
Dim nCommonItemIndex As Integer
If Not IsNothing(CommonItem) Then
nCommonItemIndex = DbList.IndexOf(CommonItem)
End If
' aggiorno i successivi
If nCommonItemIndex >= 0 Then
For Index = nCommonItemIndex - 1 To 0 Step -1
m_MachineLogList.Insert(0, DbList(Index))
Next
End If
End If
NotifyPropertyChanged(NameOf(MachineLogList))
m_MachineLogList_View = CollectionViewSource.GetDefaultView(m_MachineLogList)
m_MachineLogList_View.Filter = AddressOf MachineLogFilter
@@ -376,7 +402,7 @@ Public Class MachineLogPageVM
''' Execute the Open. This method is invoked by the OpenCommand.
''' </summary>
Friend Sub Refresh()
UpdateMachineLogList()
UpdateMachineLogList(False)
End Sub
#End Region ' Refresh
@@ -277,31 +277,31 @@ Public Class MainMenuVM
Private Function InitINPUTS() As Boolean
' fermo e riavvio lettura variabili per includere quelle della pagina input
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
Map.refMainWindowVM.NotifyPropertyChanged(NameOf(Map.refMainWindowVM.nSelTabPage))
Return True
End Function
Private Function ExitINPUTS() As Boolean
' fermo e riavvio lettura variabili per includere quelle della pagina input
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
Return True
End Function
Private Function InitOUTPUTS() As Boolean
' fermo e riavvio lettura variabili per includere quelle della pagina input
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
Map.refMainWindowVM.NotifyPropertyChanged(NameOf(Map.refMainWindowVM.nSelTabPage))
Return True
End Function
Private Function ExitOUTPUTS() As Boolean
' fermo e riavvio lettura variabili per includere quelle della pagina input
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM))
Return True
End Function
@@ -248,8 +248,8 @@ Public Class MainWindowM
EgtSetLockId( sLockId)
End If
' Recupero livello e opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2506, 1, m_nKeyLevel) And
EgtGetKeyOptions(5327, 2506, 1, m_nKeyOptions)
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2505, 1, m_nKeyLevel) And
EgtGetKeyOptions(5327, 2505, 1, m_nKeyOptions)
' Inizializzazione generale di EgtInterface
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
m_sLogFile = m_sTempDir & "\" & SUPGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
@@ -234,7 +234,7 @@ Public Class MainWindowVM
Return
End If
' disconnetto comunicazione con macchina
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT))
' termino thread di comunicazione con Db ed altri programmi
ViewerOptimizerCommThread.StopThread()
' Verifico modifica parametri in Configurazione e chiedo il salvataggio
@@ -70,5 +70,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.5.6.2")>
<Assembly: AssemblyFileVersion("2.5.6.2")>
<Assembly: AssemblyVersion("2.5.5.4")>
<Assembly: AssemblyFileVersion("2.5.5.4")>
+3 -4
View File
@@ -1,5 +1,4 @@
Imports EgtUILib
Imports EgtWPFLib5
Imports EgtWPFLib5
Imports EgtBEAMWALL.Core
Public Class LogEvent
@@ -78,9 +77,9 @@ Public Class LogEvent
Get
Select Case m_Status
Case 1
Return EgtMsg(62527)
Return "Inizio"
Case 2
Return EgtMsg(62528)
Return "Fine"
Case Else
Return ""
End Select
@@ -64,7 +64,7 @@ Public Class Variable
Return CommVar.sValue
End Get
Set(value As String)
MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.WRITE, {CommVar.nType}, Nothing, {CommVar.sAddress, value}))
MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.WRITE, {CommVar.nType}, Nothing, {CommVar.sAddress, value}))
NotifyPropertyChanged(NameOf(sValue))
End Set
End Property
@@ -120,17 +120,9 @@ Public Class BTLFeatureVM
End Get
Set(value As String)
Dim nTemp As Integer = 0
If Integer.TryParse(value, nTemp) Then
If EgtSetInfo(nFeatureId, BTL_FTR_PRIORITY, nTemp) Then
m_BTLFeatureM.nPriority = nTemp
' setto feature da ricalcolare
ResetCalcFeature()
' se in View
If Map.refMainMenuVM.SelPage = Pages.VIEW Then
' imposto modificato per copie
EgtDuploSetModified(m_BTLPartM.nPartId)
End If
End If
If Integer.TryParse(value, nTemp) Then
m_BTLFeatureM.nPriority = nTemp
EgtSetInfo( nFeatureId, BTL_FTR_PRIORITY, m_BTLFeatureM.nPriority)
End If
NotifyPropertyChanged(NameOf(sPriority))
End Set
@@ -2164,7 +2164,7 @@ Public Class BTLPartVM
' imposto path disegno da mostrare in BottomPanel
Dim SelPBTLParam As BTLParamVM = Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM.SelPBTLParam
If Not IsNothing(SelPBTLParam) Then Map.refBottomPanelVM.SetCurrDraw(SelPBTLParam.sDrawPath)
Case NameOf(sender.bDO), NameOf(sender.sPriority)
Case NameOf(sender.bDO)
NotifyPropertyChanged(NameOf(bDOALL))
' setto pezzo da ricalcolare
'ResetCalcTotalPart()
@@ -29,7 +29,7 @@ Public Class FeatureManagerVM
Public ReadOnly Property Priority_Visibility As Visibility
Get
Return If(CurrentMachine.nType = Core.ConstBeam.MachineType.WALL AndAlso CurrentMachine.bIsEnabledPriority, Visibility.Visible, Visibility.Collapsed)
Return if(CurrentMachine.nType = Core.ConstBeam.MachineType.WALL, Visibility.Visible, Visibility.Collapsed)
End Get
End Property
@@ -62,7 +62,7 @@ Public Class FeatureInPartInRawPartListVM
Friend Sub UpdateColumns(nMachType As MachineType)
If Not IsNothing(m_colFeatureInPartInRawPart_Priority) Then
m_colFeatureInPartInRawPart_Priority.Visible = (nMachType = MachineType.WALL AndAlso CurrentMachine.bIsEnabledPriority)
m_colFeatureInPartInRawPart_Priority.Visible = (nMachType=MachineType.WALL)
End If
End Sub
@@ -235,8 +235,8 @@ Public Class MainWindowM
EgtSetLockId( sLockId)
End If
' Recupero livello e opzioni della chiave
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2506, 1, m_nKeyLevel) And
EgtGetKeyOptions(5327, 2506, 1, m_nKeyOptions)
Dim bKey As Boolean = EgtGetKeyLevel(5327, 2505, 1, m_nKeyLevel) And
EgtGetKeyOptions(5327, 2505, 1, m_nKeyOptions)
' Inizializzazione generale di EgtInterface
m_nDebug = GetMainPrivateProfileInt(S_GENERAL, K_DEBUG, 0)
m_sLogFile = m_sTempDir & "\" & VWOPTGENLOG_FILE_NAME.Replace("#", m_nInstance.ToString())
@@ -70,5 +70,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.5.6.2")>
<Assembly: AssemblyFileVersion("2.5.6.2")>
<Assembly: AssemblyVersion("2.5.5.4")>
<Assembly: AssemblyFileVersion("2.5.5.4")>
@@ -87,13 +87,6 @@ Public Module CurrentMachine
Return m_dMinOffset
End Get
End Property
' Attivazione Priority pareti
Private m_bIsEnabledPriority As Boolean = 0
Public ReadOnly Property bIsEnabledPriority As Boolean
Get
Return m_bIsEnabledPriority
End Get
End Property
#Region "Proprietà che leggono e scrivono i valori anche da o su file ini"
@@ -307,11 +300,6 @@ Public Module CurrentMachine
End Select
EgtLuaGetGlobNumVar("GWD.MIN_HEIGHT", m_dMinRawH)
EgtLuaGetGlobNumVar("GWD.MAX_HEIGHT", m_dMaxRawH)
If EgtLuaGetGlobNumVar("GWD.BTL_PRIORITY", nTemp) Then
m_bIsEnabledPriority = nTemp > 0
Else
m_bIsEnabledPriority = False
End If
Else
m_nViewDir = VT.ISO_SW
m_OrigCorner = MCH_CR.BR
@@ -320,7 +308,6 @@ Public Module CurrentMachine
m_NestingCorner = MCH_CR.BR
m_dMinRawH = 5
m_dMaxRawH = 500
m_bIsEnabledPriority = False
End If
' Cancello tavola globale
EgtLuaResetGlobVar("GWD")
Binary file not shown.
Binary file not shown.