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

📄 publicclass.vb

📁 广西百色247台电视发射机监控源代码.已经过实践
💻 VB
📖 第 1 页 / 共 4 页
字号:
Imports System.Math
'Imports System.String
Imports Microsoft.VisualBasic.Strings
Imports TransmitTV.LoadData
Public Class PublicClass
    '''凯腾、吉兆发射机数据包分解
    Public Shared Function decData(ByRef hostData() As Byte, ByVal iStart As Integer, ByVal iEnd As Integer) As Byte()
        Dim databuf() As Byte
        Dim i As Integer
        ReDim databuf(iEnd - iStart)
        For i = 0 To iEnd - iStart
            databuf(i) = hostData(iStart + i)
        Next
        decData = databuf
    End Function
    Public Shared Function OnOffFlag(ByVal datatime As String) As Boolean
        If CDate(datatime).Hour = DateTime.Now.Hour And CDate(datatime).Minute = DateTime.Now.Minute Then
            OnOffFlag = True
        Else
            OnOffFlag = False
        End If
    End Function
    '****************************************************************************
    ''''''''函数--十进制转换为二进制
    Public Shared Function DecimalToBinary(ByVal DecimalValue As Long, ByVal MinimumDigits As Integer) As String
        Dim result As String
        Dim ExtraDigitsNeeded As Integer
        Dim i As Integer
        DecimalValue = Abs(DecimalValue)
        Do
            result = CStr(DecimalValue Mod 2) & result
            DecimalValue = DecimalValue \ 2
        Loop While DecimalValue > 0

        ExtraDigitsNeeded = MinimumDigits - Len(result)
        If ExtraDigitsNeeded > 0 Then
            For i = 1 To ExtraDigitsNeeded
                result = "0" & result
            Next i
        End If

        DecimalToBinary = result
    End Function
    ''''''''函数--二进制转换为十进制
    Public Shared Function BinaryToDecimal(ByVal BinaryValue As String) As Long

        Dim idx As Integer
        Dim tmp As String
        Dim result As Long
        Dim digits As Integer

        digits = Len(BinaryValue)
        For idx = digits To 1 Step -1
            tmp = Mid(BinaryValue, idx, 1)
            If tmp = "1" Then result = result + 2 ^ (digits - idx)
        Next

        BinaryToDecimal = result

    End Function
    Public Shared Function Round45(ByVal n As Double, ByVal p As Integer) As Double
        Dim S As String, a As String, b As String, X As String, v As Double

        If p < 0 Then Round45 = "" : Exit Function 'n = 0 Or
        S = Str(n)
        If InStr(S, ".") <> 0 Then
            a = Mid(S, 1, InStr(S, ".") - 1)
            b = Mid(S, InStr(S, ".") + 1)
        Else
            a = S
            b = ""
        End If
        If Len(b) <= p Then
            Round45 = CDbl(Val(a + "." + b))
            Exit Function
        Else
            If Val(Mid(b, p + 1, 1)) >= 5 Then
                X = a + Mid(b, 1, p)
                v = CDbl(Val(X))
                v = v + 1.0#
                v = v / (10 ^ p)
                Round45 = v
                Exit Function
            Else
                Round45 = CDbl(Val(a + "." + b))
                '''''''''''''''''''''''''''''''''''''''''''''''''要想做到真正的四舍五入,再加以下的语句
                Round45 = Round(Round45, p)
                ''''''''''''''''''''''''''''''''''''''''''''''''
                Exit Function
            End If
        End If
    End Function
    ' 1.计算法
    '计算法就是依据CRC校验码的产生原理来设计程序。其优点是模块代码少,修改灵活,可移植性好。其缺点为计算量大。
    Public Shared Function calCRC16(ByVal data() As Byte) As Byte()
        Dim CRC16Lo As Byte, CRC16Hi As Byte   'CRC寄存器 
        Dim CL As Byte, CH As Byte        '多项式码&HA001 
        Dim SaveHi As Byte, SaveLo As Byte
        Dim I As Integer
        Dim Flag As Integer
        CRC16Lo = &HFF
        CRC16Hi = &HFF
        CL = &H1
        CH = &HA0
        For I = 0 To UBound(data)
            CRC16Lo = CRC16Lo Xor data(I) '每一个数据与CRC寄存器进行异或 
            For Flag = 0 To 7
                SaveHi = CRC16Hi
                SaveLo = CRC16Lo
                CRC16Hi = CRC16Hi \ 2      '高位右移一位 
                CRC16Lo = CRC16Lo \ 2      '低位右移一位 
                If ((SaveHi And &H1) = &H1) Then '如果高位字节最后一位为1 
                    CRC16Lo = CRC16Lo Or &H80   '则低位字节右移后前面补1 
                End If              '否则自动补0 
                If ((SaveLo And &H1) = &H1) Then '如果LSB为1,则与多项式码进行异或 
                    CRC16Hi = CRC16Hi Xor CH
                    CRC16Lo = CRC16Lo Xor CL
                End If
            Next Flag
        Next I
        Dim ReturnData(1) As Byte
        ReturnData(0) = CRC16Hi       'CRC高位 
        ReturnData(1) = CRC16Lo       'CRC低位 
        calCRC16 = ReturnData
    End Function
    '2.查表法 
    '查表法的优缺点与计算法的正好相反。
    Public Shared Function tableCRC16(ByVal data() As Byte) As Byte()
        Dim CRC16Hi As Byte
        Dim CRC16Lo As Byte
        CRC16Hi = &HFF
        CRC16Lo = &HFF
        Dim I As Integer
        Dim iIndex As Long
        For I = 0 To UBound(data)
            iIndex = CRC16Lo Xor data(I)
            CRC16Lo = CRC16Hi Xor GetCRCLo(iIndex)    '低位处理 
            CRC16Hi = GetCRCHi(iIndex)          '高位处理 
        Next I
        Dim ReturnData(1) As Byte
        ReturnData(0) = CRC16Hi   'CRC低位 
        ReturnData(1) = CRC16Lo     'CRC高位 
        tableCRC16 = ReturnData
    End Function
    'CRC低位字节值表 
    Public Shared Function GetCRCLo(ByVal Ind As Long) As Byte
        GetCRCLo = Choose(Ind + 1, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, &H80, &H41, &H0, _
                      &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, _
                      &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H0, &HC1, _
                      &H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H0, _
                      &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, _
                      &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, &H80, _
                      &H41, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, _
                      &H80, &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H0, _
                      &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, _
                      &H1, &HC0, &H80, &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, _
                      &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, _
                      &H80, &H41, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, &H1, _
                      &HC0, &H80, &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40, &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, _
                      &H0, &HC1, &H81, &H40, &H1, &HC0, &H80, &H41, &H1, &HC0, &H80, &H41, &H0, &HC1, &H81, &H40)
    End Function
    'CRC高位字节值表
    Public Shared Function GetCRCHi(ByVal Ind As Long) As Byte
        GetCRCHi = Choose(Ind + 1, &H0, &HC0, &HC1, &H1, &HC3, &H3, &H2, &HC2, &HC6, &H6, &H7, &HC7, &H5, &HC5, _
                   &HC4, &H4, &HCC, &HC, &HD, &HCD, &HF, &HCF, &HCE, &HE, &HA, &HCA, &HCB, &HB, &HC9, &H9, &H8, &HC8, &HD8, _
                   &H18, &H19, &HD9, &H1B, &HDB, &HAD, &H1A, &H1E, &HDE, &HDF, &H1F, &HDD, &H1D, &H1C, &HDC, &H14, &HD4, &HD5, _
                   &H15, &HD7, &H17, &H16, &HD6, &HD2, &H12, &H13, &HD3, &H11, &HD1, &HD0, &H10, &HF0, &H30, &H31, &HF1, &H33, _
                   &HF3, &HF2, &H32, &H36, &HF6, &HF7, &H37, &HF5, &H35, &H34, &HF4, &H3C, &HFC, &HFD, &H3D, &HFF, &H3F, &H3E, _
                   &HFE, &HFA, &H3A, &H3B, &HFB, &H39, &HF9, &HF8, &H38, &H28, &HE8, &HE9, &H29, &HEB, &H2B, &H2A, &HEA, &HEE, _
                   &H2E, &H2F, &HEF, &H2D, &HED, &HEC, &H2C, &HE4, &H24, &H25, &HE5, &H27, &HE7, &HE6, &H26, &H22, &HE2, &HE3, _
                   &H23, &HE1, &H21, &H20, &HE0, &HA0, &H60, &H61, &HA1, &H63, &HA3, &HA2, &H62, &H66, &HA6, &HA7, _
                   &H67, &HA5, &H65, &H64, &HA4, &H6C, &HAC, &HAD, &H6D, &HAF, &H6F, &H6E, &HAE, &HAA, &H6A, &H6B, &HAB, &H69, _
                   &HA9, &HA8, &H68, &H78, &HB8, &HB9, &H79, &HBB, &H7B, &H7A, &HBA, &HBE, &H7E, &H7F, &HBF, &H7D, &HBD, &HBC, _
                   &H7C, &HB4, &H74, &H75, &HB5, &H77, &HB7, &HB6, &H76, &H72, &HB2, &HB3, &H73, &HB1, &H71, &H70, &HB0, &H50, _
                   &H90, &H91, &H51, &H93, &H53, &H52, &H92, &H96, &H56, &H57, &H97, &H55, &H95, &H94, &H54, &H9C, &H5C, &H5D, _
                   &H9D, &H5F, &H9F, &H9E, &H5E, &H5A, &H9A, &H9B, &H5B, &H99, &H59, &H58, &H98, &H88, &H48, &H49, &H89, &H4B, _
                   &H8B, &H8A, &H4A, &H4E, &H8E, &H8F, &H4F, &H8D, &H4D, &H4C, &H8C, &H44, &H84, &H85, &H45, &H87, &H47, &H46, _
                   &H86, &H82, &H42, &H43, &H83, &H41, &H81, &H80, &H40)
    End Function
    Public Shared Sub TramDatabase(ByVal equNum As Integer, ByVal equName As String, ByVal cmdType As Integer, ByVal state As Integer, ByVal saveFlag As Boolean, ByVal id As Int64)
        'Dim ds As DataSet
        Dim QueryString As String
        Dim QueryString1 As String
        Dim strTemp As String
        If saveFlag = True Then
            Select Case cmdType
                Case 6 '"update Transmitter set "
                    QueryString = "update equipments set state = " + Trim(state) + " where  equNum=" & Trim(equNum) '+ " and id=" & Trim(id)
                Case 12
                    Select Case state
                        Case 0
                            QueryString = "update controlCmd set response =1  where  equNum=" & Trim(equNum) + " and id=" & Trim(id)
                            strTemp = Trim(equName) + "---N+1切换成功!"
                        Case Else
                            QueryString = "update controlCmd set response =2  where  equNum=" & Trim(equNum) + " and id=" & Trim(id)
                            strTemp = Trim(equName) + "---N+1切换失败!"
                    End Select
                    QueryString1 = "insert into systemLog values('0',2,'" & strTemp & "','" & Now & "',0)"
                    If search.con.State = ConnectionState.Open Then
                        search.con.Close()
                    End If
                    search.insert(QueryString1)
                Case Else
                    Select Case state
                        Case 0
                            QueryString = "update controlCmd set response =1  where  equNum=" & Trim(equNum) + " and id=" & Trim(id)
                        Case Else
                            QueryString = "update controlCmd set response =2  where  equNum=" & Trim(equNum) + " and id=" & Trim(id)
                    End Select
            End Select
            If search.con.State = ConnectionState.Open Then
                search.con.Close()
            End If
            search.update(QueryString)
        Else
            Select Case cmdType
                Case 3
                    If state = 0 Then
                        strTemp = Trim(equName) + "---自动开机成功!"
                    Else
                        strTemp = Trim(equName) + "---自动开机失败!"
                    End If
                Case 4
                    If state = 0 Then
                        strTemp = Trim(equName) + "---自动关机成功!"
                    Else
                        strTemp = Trim(equName) + "---自动关机失败!"
                    End If
            End Select
            QueryString = "insert into systemLog values('0',2,'" & strTemp & "','" & Now & "',0)"
            If search.con.State = ConnectionState.Open Then
                search.con.Close()
            End If
            search.insert(QueryString)
        End If
        ' search.con.Close()
    End Sub
    Public Shared Sub saveA1Para(ByVal iTempflag As Integer)
        Dim strsql As String
        Dim ds As DataSet
        Dim ds1 As DataSet
        Dim ds2 As DataSet
        Dim ds3 As DataSet
        Dim aCom As Integer
        Dim i As Integer
        Dim tableName As String
        Dim no As Integer
        Dim id As Integer
        Dim devID As Integer
        Dim gatID As Integer

⌨️ 快捷键说明

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