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

📄 transmitktd.vb

📁 广西百色247台电视发射机监控源代码.已经过实践
💻 VB
📖 第 1 页 / 共 4 页
字号:
                        iTempflag = 0
                        iLastSaveTime = Environment.TickCount
                    Else
                        iTempflag = 1
                        '  iLastSaveTime = Environment.TickCount
                    End If
                End If
                CommStatus = 0
                ParseMaster(btData)
                SaveSystem()
                ' SysAlarm()
                Select Case Master.iVolType
                    Case 28
                        a = 490.5
                        b = 45.38
                    Case 32
                        a = 528.28
                        b = 43.2
                    Case 48
                        a = 630
                        b = 36.4
                    Case Else
                        a = 490.5
                        b = 45.38
                End Select
                For i = 0 To iAmpCount - 1 'UBound(Amplifier)
                    ParseAmplifier(40 + 20 * i, btData, i)
                    SavePA(i)
                    ' AmpAlarm(i)
                Next
                ParseSwitch(btData)
                'iMainExciter/iStandbyExciter
                '  If Master.bBackupState = False Then '''主激励器
                Select Case iMainExciter
                    Case 1 '''RVR
                        ParseRVRInspirit(btData, 0)
                    Case 2 '''EKA
                    Case 3 '''KT
                        ParseInspirit(btData, 0)
                        SaveExciter(0)
                End Select
                ' Else                                '''备激励器
                Select Case iStandbyExciter
                    Case 1 '''RVR
                        ParseRVRInspirit(btData, 1)
                    Case 2 '''EKA
                    Case 3 '''KT
                        ParseInspirit(btData, 1)
                        SaveExciter(1)
                End Select
                'SMSalarm(CommStatus)
                '   End If
            Case 3, 4, 14
                'CommStatus = btData(15)
                '''0--成功
                '''0--本控状态
                '''0--参数错误
                If btData(15) = 0 Then
                    CommStatus = 1
                    bOpenClose = True
                Else
                End If
        End Select
        'Catch ex As Exception
        '    MessageBox.Show(ex.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        'End Try
    End Sub
    '''总功率公式 
    Function expPo(ByVal para1Value As Integer, ByVal para3Value As Integer) As Double
        Dim dTemp1 As Double
        Dim dTemp2 As Double
        Dim dTemp3 As Double
        Dim dTemp4 As Double
        Dim dTemp5 As Long
        dTemp1 = Round45(para1Value / 500 - 0.35, 2)
        If (dTemp1) > 0 Then
            dTemp2 = 10 * Log10(20 * (dTemp1 ^ 2))
            dTemp3 = CInt(dTemp2 * 100) / 100
            dTemp4 = para3Value / 1000
            dTemp5 = CInt(10 ^ ((dTemp3 + dTemp4 + 12) / 10))
            expPo = CInt((dTemp5 * 25) / 8)
        Else
            expPo = 0
        End If
    End Function
    'Function expPo1(ByVal para1Value As Integer, ByVal para3Value As Integer) As Double
    '    Dim dTemp1 As Double
    '    Dim dTemp2 As Double
    '    Dim dTemp3 As Double
    '    Dim dTemp4 As Double
    '    Dim dTemp5 As Long
    '    dTemp1 = Round45(para1Value / 500 - 0.35, 2)
    '    If (dTemp1) > 0 Then
    '        dTemp2 = 10 * Log10(20 * (dTemp1 ^ 2))
    '        dTemp3 = CInt(dTemp2 * 100) / 100
    '        dTemp4 = para3Value / 1000
    '        dTemp5 = CInt(10 ^ ((dTemp3 + dTemp4 + 14.8) / 10))
    '        expPo1 = CInt((dTemp5 * 25) / 8)
    '    Else
    '        expPo1 = 0
    '    End If
    'End Function

    ''反射功率公式
    Function expPrTotal(ByVal para1Value As Integer, ByVal para3Value As Integer) As Double
        Dim dTemp1 As Double
        Dim dTemp2 As Double
        Dim dTemp3 As Double
        Dim dTemp4 As Double
        Dim dTemp5 As Long
        dTemp1 = Round45(para1Value / 1000 - 0.35, 2)
        If (dTemp1) > 0 Then
            dTemp2 = 10 * Log10(20 * (dTemp1 ^ 2))
            dTemp3 = CInt(dTemp2 * 100) / 100
            dTemp4 = para3Value / 1000
            dTemp5 = CInt(10 ^ ((dTemp3 + dTemp4 + 12) / 10))
            expPrTotal = dTemp5
        Else
            expPrTotal = 0
        End If
    End Function
    Function expPr(ByVal Po As Double, ByVal para1Value As Integer, ByVal para2Value As Integer) As Integer
        Dim k As Double
        If para1Value > 0 Then
            k = para2Value / para1Value
            expPr = CInt(Po * (k ^ 2))
        End If
    End Function
    ''驻波比率公式
    'Function expDswr(ByVal para1Value As Integer, ByVal para2Value As Integer) As Double
    '    Dim k As Double
    '    If para1Value > 0 Then
    '        k = para2Value / para1Value
    '        expDswr = Round45((1 + k) / (1 - k), 2)
    '    End If
    'End Function
    Function expDswr(ByVal para1Value As Integer, ByVal para2Value As Integer) As Double
        Dim k As Double
        If para1Value > 0 Then
            k = Sqrt(para2Value / para1Value)
            expDswr = Round45((1 + k) / (1 - k), 2)
        End If
    End Function
    ''遥控公式
    Function expControl(ByVal para5Value As Integer) As Boolean
        If para5Value > 2000 Then
            expControl = True   '''遥控
        Else
            expControl = False  '''本控
        End If
    End Function
    ''''''新的计算单插件功率公式
    Function Po(ByRef btData() As Byte, ByVal i As Integer) As Double   ', ByVal transmit As MasterUnit)
        Dim V1, V2, V3, V4, V5, V6, V7, V8 As Int16
        V1 = V(btData, 40)
        V2 = V(btData, 60)
        V3 = V(btData, 80)
        V4 = V(btData, 100)
        V5 = V(btData, 120)
        V6 = V(btData, 140)
        V7 = V(btData, 160)
        V8 = V(btData, 180)
        Po = Round45((Master.dPo / (V1 + V2 + V3 + V4 + V5 + V6 + V7 + V8)) * V(btData, i), 0)
    End Function
    Function V(ByRef btData() As Byte, ByVal i As Integer) As Double   ', ByVal transmit As MasterUnit)
        V = btData(i + 15)
    End Function
    '**********解析主控单元数据*************************************************
    Private Sub ParseMaster(ByRef btData() As Byte) ', ByVal transmit As MasterUnit)
        Dim StatusBinary As String
        Dim i As Integer
        Master.dPo = expPo(btData(21) * 256 + btData(22), btData(25) * 256 + btData(26))              '''' 总入射功率(W)
        Master.dPr = expPrTotal(btData(23) * 256 + btData(24), btData(25) * 256 + btData(26))  '''''总反射功率(W)
        Master.dTemputer = Round((btData(27) * 256 + btData(28)) / 10)                                '''''环境温度
        'Master.dVswr = expDswr(btData(21) * 256 + btData(22), btData(23) * 256 + btData(24))          '''''驻波比
        Master.dVswr = expDswr(Master.dPo, Master.dPr) '''''驻波比
        If btData(29) * 256 + btData(30) > 2000 Then  '''''判断主控单元控制方式
            Master.bRemote = True    '''''遥控
        Else
            Master.bRemote = False   '''''人工
        End If
        Master.iVolType = btData(31) '''''识别发射机电压类型
        If Master.dPo > 0 Then
            State = 0
        Else
            State = 1
        End If
    End Sub
    '**********解析功放单元数据*************************************************
    Private Sub ParseAmplifier(ByVal i As Integer, ByRef btData() As Byte, ByVal j As Integer)
        Dim StatusBinary As String
        Select Case Master.iVolType
            Case 28
                If btData(i + 2) * 10 > a Then
                    Amplifier(j).dCurrent2 = Round(((btData(i + 2) * 10 - a) * 1.2) / b, 1)   '''''电流2
                Else
                    Amplifier(j).dCurrent2 = 0
                End If
                If btData(i + 3) * 10 > a Then
                    Amplifier(j).dCurrent1 = Round(((btData(i + 3) * 10 - a) * 1.2) / b, 1)      '''''电流1
                Else
                    Amplifier(j).dCurrent1 = 0
                End If
                If btData(i + 4) * 10 > a Then
                    Amplifier(j).dCurrent4 = Round(((btData(i + 4) * 10 - a) * 1.2) / b, 1)   '''''电流4
                Else
                    Amplifier(j).dCurrent4 = 0
                End If
                If btData(i + 5) * 10 > a Then
                    Amplifier(j).dCurrent3 = Round(((btData(i + 5) * 10 - a) * 1.2) / b, 1)      '''''电流3
                Else
                    Amplifier(j).dCurrent3 = 0
                End If
                If btData(i + 7) * 10 > a Then
                    Amplifier(j).dTCurrent = Round(((btData(i + 7) * 10 - a) * 1.2) / b, 1)       '''''前级电流
                Else
                    Amplifier(j).dTCurrent = 0
                End If
                Amplifier(j).dVoltage = Round45(btData(i + 15) * 16 / 100, 1)                          '''''电压
            Case 32
                If btData(i + 2) * 10 > a Then
                    Amplifier(j).dCurrent2 = Round(((btData(i + 2) * 10 - a) * 1.2) / b, 1)   '''''电流2
                Else
                    Amplifier(j).dCurrent2 = 0
                End If
                If btData(i + 3) * 10 > a Then
                    Amplifier(j).dCurrent1 = Round(((btData(i + 3) * 10 - a) * 1.2) / b, 1)      '''''电流1
                Else
                    Amplifier(j).dCurrent1 = 0
                End If
                If btData(i + 4) * 10 > a Then
                    Amplifier(j).dCurrent4 = Round(((btData(i + 4) * 10 - a) * 1.2) / b, 1)   '''''电流4
                Else
                    Amplifier(j).dCurrent4 = 0
                End If
                If btData(i + 5) * 10 > a Then
                    Amplifier(j).dCurrent3 = Round(((btData(i + 5) * 10 - a) * 1.2) / b, 1)      '''''电流3
                Else
                    Amplifier(j).dCurrent3 = 0
                End If
                If btData(i + 6) * 10 > a Then
                    Amplifier(j).dCurrent6 = Round(((btData(i + 6) * 10 - a) * 1.2) / b, 1)    '''''电流6
                Else
                    Amplifier(j).dCurrent6 = 0
                End If
                If btData(i + 7) * 10 > a Then
                    Amplifier(j).dCurrent5 = Round(((btData(i + 7) * 10 - a) * 1.2) / b, 1)      '''''电流5
                Else
                    Amplifier(j).dCurrent5 = 0
                End If

⌨️ 快捷键说明

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