📄 frmmain.vb
字号:
Option Strict Off
Option Explicit On
Friend Class frmMain
Inherits System.Windows.Forms.Form
Dim ComputerName, ServerClassID As String
Dim temp1 As New ServerDataChangeProcProxy(AddressOf ServerDataChangeProc)
Dim temp2 As New ServerShutdownProcProxy(AddressOf ServerShutdownProc)
Dim temp3 As New AddProcessProxy(AddressOf AddProcess)
Dim temp4 As New ServerDataChangeProcProxyEx(AddressOf ServerDataChangeProcEx)
Public Sub Disconnect()
If ServerHandle = 0 Then Exit Sub
If GroupHandle > 0 Then
lvListView.Items.Clear()
Dim ret As Boolean
ret = OPC_RemoveGroup(ServerHandle, GroupHandle)
GroupHandle = 0
End If
If OPC_Disconnect(ServerHandle) Then
ServerHandle = 0
mnuConnect.Enabled = True
mnuDisconnect.Enabled = False
mnuServerStatus.Enabled = False
mnuGroupStatus.Enabled = False
mnuGroupRefresh.Enabled = False
mnuAddItem.Enabled = False
mnuAddItem.Enabled = False
mnuRemoveItem.Enabled = False
mnuReadItem.Enabled = False
mnuWriteItem.Enabled = False
mnuItemStatus.Enabled = False
End If
End Sub
Private Sub frmMain_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
ServerHandle = 0
GroupHandle = 0
Dim s As New Random()
GroupName = "GROUP" & s.NextDouble()
Call OPC_Init()
OPC_SetProcessTiggerProcA(temp3)
End Sub
Private Sub frmMain_FormClosed(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
If ServerHandle > -1 Then
OPC_Disconnect(ServerHandle)
End If
OPC_Uninit()
End Sub
Private Sub frmMain_Resize(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Resize
On Error Resume Next
lvListView.Height = Me.Height - lstProcess.Height - 80
lstProcess.Width = lvListView.Width
End Sub
Private Sub lvListView_ItemClick(ByVal Item As System.Windows.Forms.ListViewItem)
If lvListView.FocusedItem Is Nothing Then Exit Sub
mnuReadItem.Enabled = True
mnuWriteItem.Enabled = True
mnuItemStatus.Enabled = True
mnuRemoveItem.Enabled = True
End Sub
Public Sub menuOpen_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles menuOpen.Click
Dim fn As String
Dim I, Count As Integer ' "txt files (*.txt)|*.txt|All files (*.*)|*.*"
dlgCommonDialogOpen.Filter = "OPC client Files(*.opc)|*.opc|All Files(*.*)|*.*"
dlgCommonDialogOpen.FileName = "opcclient.opc"
On Error GoTo out1
dlgCommonDialogOpen.ShowDialog()
Call Disconnect()
ComputerName = ReadInIFiles("PUBLIC", "HOST", "", (dlgCommonDialogOpen.FileName))
ServerClassID = ReadInIFiles("PUBLIC", "CLSID", "", (dlgCommonDialogOpen.FileName))
GroupName = ReadInIFiles("PUBLIC", "GROUP", "GROUP1", (dlgCommonDialogOpen.FileName))
Count = Integer.Parse(ReadInIFiles("PUBLIC", "COUNT", "0", (dlgCommonDialogOpen.FileName)))
ServerHandle = OPC_Connect(ComputerName, ServerClassID, 1)
If ServerHandle > 0 Then
'OPC_SetDataChangeProc(ServerHandle, temp1)
OPC_SetDataChangeProcEx(ServerHandle, temp4)
OPC_SetShutdownProc(ServerHandle, temp2)
GroupHandle = OPC_AddGroup(ServerHandle, GroupName, True, 500, 0, 0, 0)
If GroupHandle > 0 Then
mnuConnect.Enabled = False
mnuDisconnect.Enabled = True
mnuServerStatus.Enabled = True
mnuGroupStatus.Enabled = True
mnuGroupRefresh.Enabled = True
mnuAddItem.Enabled = True
menuSaveAs.Enabled = True
End If
For I = 0 To Count - 1
AddItem(ReadInIFiles("ITEM", "item" & (Count - I).ToString(), "", (dlgCommonDialogOpen.FileName)))
Next
End If
Exit Sub
out1:
'MessageBox.Show(Err.)
End Sub
Public Sub menuSaveAs_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles menuSaveAs.Click
Dim fn As String
Dim I As Integer
dlgCommonDialogSave.Filter = "OPC client Files(*.opc)|*.opc|All Files(*.*)|*.*"
dlgCommonDialogSave.FileName = "opcclient.opc"
On Error GoTo out1
dlgCommonDialogSave.ShowDialog()
WritePrivateProfileString("PUBLIC", "HOST", ComputerName, dlgCommonDialogSave.FileName)
WritePrivateProfileString("PUBLIC", "CLSID", ServerClassID, dlgCommonDialogSave.FileName)
WritePrivateProfileString("PUBLIC", "GROUP", GroupName, dlgCommonDialogSave.FileName)
WritePrivateProfileString("PUBLIC", "COUNT", lvListView.Items.Count.ToString(), dlgCommonDialogSave.FileName)
For I = 0 To lvListView.Items.Count - 1
WritePrivateProfileString("ITEM", "item" & (I + 1).ToString(), lvListView.Items.Item(I + 1).Text, dlgCommonDialogSave.FileName)
Next
Exit Sub
out1:
' MsgBox dlgCommonDialog.FileName
End Sub
Public Sub mnuAddItem_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles mnuAddItem.Click
frmItemBrowser.ShowDialog()
End Sub
Public Sub mnuConnect_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles mnuConnect.Click
If frmServerBrowser.ShowDialog() = Windows.Forms.DialogResult.OK And frmServerBrowser.ServerClassID.Length > 1 Then
ServerHandle = 0
GroupHandle = 0
Dim s As New Random()
GroupName = "GROUP" & s.NextDouble()
lstProcess.Items.Clear()
ServerHandle = OPC_Connect(frmServerBrowser.cbHost.Text, frmServerBrowser.ServerClassID, frmServerBrowser.Version)
If ServerHandle > 0 Then
'OPC_SetDataChangeProc(ServerHandle, temp1)
OPC_SetDataChangeProcEx(ServerHandle, temp4)
OPC_SetShutdownProc(ServerHandle, temp2)
GroupHandle = OPC_AddGroup(ServerHandle, GroupName, True, 500, 0, 0, 0)
If GroupHandle > 0 Then
mnuConnect.Enabled = False
mnuDisconnect.Enabled = True
mnuServerStatus.Enabled = True
mnuGroupStatus.Enabled = True
mnuGroupRefresh.Enabled = True
mnuAddItem.Enabled = True
menuSaveAs.Enabled = True
ComputerName = frmServerBrowser.cbHost.Text
ServerClassID = frmServerBrowser.ServerClassID
End If
End If
End If
frmServerBrowser.Dispose()
End Sub
Public Sub mnuDisconnect_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles mnuDisconnect.Click
If OPC_Disconnect(ServerHandle) Then
lvListView.Items.Clear()
GroupHandle = 0
ServerHandle = 0
mnuConnect.Enabled = True
mnuDisconnect.Enabled = False
mnuServerStatus.Enabled = False
mnuGroupStatus.Enabled = False
mnuGroupRefresh.Enabled = False
mnuAddItem.Enabled = False
mnuReadItem.Enabled = False
mnuWriteItem.Enabled = False
mnuRemoveItem.Enabled = False
mnuItemStatus.Enabled = False
menuSaveAs.Enabled = False
End If
End Sub
Public Sub mnuExit_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles mnuExit.Click
Me.Close()
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -