Files
OmagCUT/MachineStatusUC.xaml.vb
T
Emmanuele Sassi 13ce4d11dc OmagCUT :
- Aggiuna comunicazione CN e visualizzazione parametri macchina.
2015-09-17 13:06:18 +00:00

222 lines
5.7 KiB
VB.net

Imports System.Windows.Threading
Imports System.Globalization
Imports EgtUILib
Public Class MachineStatusUC
'Const
Private Const MAX_AXES As Integer = 9
' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = Application.Current.MainWindow
'Variabile per presenza collegamento al CN
Dim m_bNCLink As Integer
'Variabile per stato CN
Private b_Nc_simulation As Boolean = False
'Classe del CN
Public WithEvents cn As Num.NumNC
Private b_new_pos_data As Boolean = False
Private b_new_delta_data As Boolean = False
Private b_new_var_data As Boolean = False
Private b_timer_busy As Boolean = False
'Creazione timer
Dim RefreshTimer As New DispatcherTimer
Private Sub MachineStatus_Initialized(sender As Object, e As EventArgs)
'Verifico presenza del collegamento al CN
m_bNCLink = GetPrivateProfileInt("General", "CNLink", 0, m_MainWindow.GetIniFile())
If m_bNCLink Then
AddHandler RefreshTimer.Tick, AddressOf RefreshTimer_tick
RefreshTimer.Interval = TimeSpan.FromMilliseconds(100)
RefreshTimer.Start()
Call InitCn()
End If
End Sub
Private Sub RefreshTimer_tick()
If Not b_timer_busy Then
b_timer_busy = True
RefreshTimer.Stop()
Call refresh()
b_timer_busy = False
RefreshTimer.Start()
Else
Dim x As Integer = 10
End If
End Sub
Private Sub InitCn()
If (Not b_Nc_simulation) Then
MachineStatusGrid.Background = Brushes.Tomato
' istanzio l'oggetto CN
Try
cn = New Num.NumNC()
Catch ex As Exception
' set status to statusbar
MsgBox(ex.Message)
End Try
While cn.n_state < 2
System.Threading.Thread.Sleep(500) ' 0.5 sec wait!!!!!!!!
End While
cn.b_axis_events_enable = True
MachineStatusGrid.Background = Brushes.Gray
Else ' se in debug
MachineStatusGrid.Background = Brushes.Gold
End If
End Sub
Private Sub NewVarChanged_handler(ByVal nst As Object) Handles cn.NewVarChanged
b_new_var_data = True
End Sub
Private Sub NewPositionData_handler(ByVal nst As Short) Handles cn.NewPositionData
b_new_pos_data = True
End Sub
Private Sub NewPosDeltaData_handler(ByVal nst As Short) Handles cn.NewPosDeltaData
b_new_delta_data = True
End Sub
Sub refresh()
If b_new_pos_data Then
b_new_pos_data = False
Call DisplayPosition()
End If
If b_new_delta_data Then
b_new_delta_data = False
Call DisplayDeltaPosition()
End If
If b_new_var_data Then
b_new_var_data = False
Call DisplayVar()
End If
If cn.b_feed_override_changed Then
cn.b_feed_override_changed = False
FeedOverrideLbl.Content = cn.d_DInterpo_Feed_override.ToString & "%"
FeedLbl.Content = cn.d_DInterpo_Prog_Feed.ToString
End If
If cn.b_spindle_data_changed Then
cn.b_spindle_data_changed = False
SpeedOverrideLbl.Content = cn.n_spindle_override(0).ToString
SpeedLbl.Content = cn.d_spindle_prog(0).ToString
End If
If cn.b_Tool_data_changed Then
cn.b_Tool_data_changed = False
'FrmMain.LblToolLen.Text = cn.Tools(0).lenght.ToString
'FrmMain.LblToolRad.Text = cn.Tools(0).radius.ToString
'FrmMain.LblToolComp.Text = cn.Tools(0).comp_num.ToString
End If
End Sub
Sub DisplayPosition()
For n As Short = 0 To MAX_AXES - 1
Select Case n
Case 0 'X
Axis1Lbl.Content = cn.d_axis_position(n).ToString("F3", CultureInfo.InvariantCulture)
Case 1
Axis2Lbl.Content = cn.d_axis_position(n).ToString("F3", CultureInfo.InvariantCulture)
Case 2
Axis3Lbl.Content = cn.d_axis_position(n).ToString("F3", CultureInfo.InvariantCulture)
Case 7
Axis5Lbl.Content = cn.d_axis_position(n).ToString("F3", CultureInfo.InvariantCulture)
Case 8
Axis4Lbl.Content = cn.d_axis_position(n).ToString("F3", CultureInfo.InvariantCulture)
End Select
Next
End Sub
Sub DisplayDeltaPosition()
For n As Short = 0 To MAX_AXES - 1
Select Case n
Case 0 'X
DeltaAxis1Lbl.Content = cn.d_axis_delta(n).ToString("F3", CultureInfo.InvariantCulture)
Case 1
DeltaAxis2Lbl.Content = cn.d_axis_delta(n).ToString("F3", CultureInfo.InvariantCulture)
Case 2
DeltaAxis3Lbl.Content = cn.d_axis_delta(n).ToString("F3", CultureInfo.InvariantCulture)
Case 7
DeltaAxis4Lbl.Content = cn.d_axis_delta(n).ToString("F3", CultureInfo.InvariantCulture)
Case 8
DeltaAxis5Lbl.Content = cn.d_axis_delta(n).ToString("F3", CultureInfo.InvariantCulture)
End Select
Next
End Sub
Sub DisplayVar()
'For n As Short = 0 To FrmMain.MAX_AXES - 1
' lbl_var_values(n).Text = cn.d_Dvariable_values(n * 10).ToString
'Next
End Sub
End Class