⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module1.bas

📁 modbus编程
💻 BAS
字号:
Attribute VB_Name = "Module1"
Global Const LISTVIEW_MODE0 = "Big icon"
Global Const LISTVIEW_MODE1 = "Small icon"
Global Const LISTVIEW_MODE2 = "List view"
Global Const LISTVIEW_MODE3 = "Report view"

Public gMainForm As frmMain
Public gConnectionHandle, gGroupHandle As Long

Public g_strMsg As String
Public g_ItemCol As New ItemCollection

Sub Main()
    frmSplash.Show
    frmSplash.Refresh
    Set gMainForm = New frmMain
    Load gMainForm
    Unload frmSplash

    gMainForm.Show
End Sub

Sub KOC_DataChangeProc(ByVal ServerHandle As Long, ByVal GroupHandle As Long, ByVal itemHandle As Long, ByRef Value As Variant, ByVal dDateTime As Double, ByVal Quality As Integer)
    Dim pItem As CItem
    For Each pItem In g_ItemCol
        If pItem.itemHandle = itemHandle Then
            pItem.ItemQuality = Quality
            pItem.ItemValue = Value
            
            Dim ftDT As FILETIME
            Dim sysDT As SYSTEMTIME
            CopyMemory ftDT, dDateTime, Len(dDateTime)
            FileTimeToSystemTime ftDT, sysDT
            pItem.ItemTimeStamp = Win32FileTimeToVB(ftDT)
            
            Exit For
        End If
    Next
End Sub

Sub KOC_ServerShutdownProc(ByVal ServerHandle As Long)
    frmMain.Disconnect
End Sub

Sub StringToByte(strString As String, ByteArray() As Byte)
    'Copy a string to a null terminalted VB byte array.
    Dim i As Long
    For i = 1 To Len(strString)
        ByteArray(i - 1) = Asc(Mid$(strString, i, 1))
    Next i
    ByteArray(i - 1) = 0
End Sub


Sub FormatOpcQuality(nQuality As Integer, ByRef strTmp As String)
    Select Case (nQuality)
        Case 64
            strTmp = "OPC_QUALITY_UNCERTAIN"
        Case 0
            strTmp = "OPC_QUALITY_BAD"
        Case 192
            strTmp = "OPC_QUALITY_GOOD"
        Case Else
            strTmp = "Unknow"
    End Select
End Sub

Sub FormatDataType(ByRef Value As Variant, ByRef strTmp As String)
    Select Case (VarType(Value))
        Case vbBoolean
            strTmp = "Boolean"
        Case vbByte
            strTmp = "Byte"
        Case vbDouble
            strTmp = "Double"
        Case vbInteger
            strTmp = "Integer"
        Case vbLong
            strTmp = "Long"
        Case vbSingle
            strTmp = "Single"
        Case vbString
            strTmp = "String"
        Case 18
            strTmp = "UI2"
        Case 19
            strTmp = "UI4"
        Case Else
            strTmp = "Unknow:" & CStr(VarType(Value))
    End Select

End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -