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

📄 transmitgme.vb

📁 广西百色247台电视发射机监控源代码.已经过实践
💻 VB
📖 第 1 页 / 共 4 页
字号:
                Select Case CommandType
                    Case 1, 3, 4 '''测试、开机、关机
                        CommStatus = 0
                        bOpenClose = True
                    Case 6 '''数据召唤
                        CommStatus = 0
                        GMEParseTime(decData(btData, 1, 6)) '''取样时间
                        Select Case iMainExciter
                            Case 1 '''RVR
                                ' GMEParseRVRInspirit(decData(btData, 23, 54), 0)
                            Case 2 '''EKA
                                ' GMEParseEKAInspirit(decData(btData, 23, 54), 0)
                            Case 3 '''GME
                                Parse_GME1153A_Inspirit(decData(btData, 7, 28), 0)
                                SaveGMEExciter(0)
                        End Select
                        Select Case iStandbyExciter
                            Case 1 '''RVR
                                'GMEParseRVRInspirit(decData(btData, 23, 54), 1)
                            Case 2 '''EKA
                                ' GMEParseEKAInspirit(decData(btData, 23, 54), 1)
                            Case 3 '''GME
                                Parse_GME1153A_Inspirit(decData(btData, 7, 28), 1)
                                SaveGMEExciter(1)
                        End Select
                        tempData = decData(btData, 29, 412)
                        For i = 0 To iAmpCount - 1
                            GMEParse_GME1153A_Amplifier(i, tempData)
                            SavePA(i)
                            ' AmpAlarm(i)
                        Next
                        GMEParse_GME1153A_Master(decData(btData, 413, 428))
                        GMEParsePSsystem(decData(btData, 430, 465))
                        SaveSystem()
                        SavePSsytem()
                        ' SysAlarm()
                        'SMSalarm(CommStatus)
                End Select
            Case 2 '''吉兆调频发射机
                If btData(0) <> Val(strTransmitAddr) Then Exit Sub '''''发射机地址
                Select Case CommandType
                    Case 1, 3, 4 '''测试、开机、关机
                        CommStatus = 0
                        bOpenClose = True
                    Case 6 '''数据召唤
                        CommStatus = 0
                        GMEParseTime(decData(btData, 1, 6)) '''取样时间
                        GMEParseInspiritManager(decData(btData, 7, 22))
                        Select Case iMainExciter
                            Case 1 '''RVR
                                GMEParseRVRInspirit(decData(btData, 23, 54), 0)
                                SaveRVRExciter(0)
                            Case 2 '''EKA
                                GMEParseEKAInspirit(decData(btData, 23, 54), 0)
                                SaveEKAExciter(0)
                            Case 3 '''GME
                                'ParseInspirit(decData(btData, 23, 54), 0)
                        End Select
                        Select Case iStandbyExciter
                            Case 1 '''RVR
                                GMEParseRVRInspirit(decData(btData, 23, 54), 1)
                                SaveRVRExciter(1)
                            Case 2 '''EKA
                                GMEParseEKAInspirit(decData(btData, 23, 54), 1)
                                SaveEKAExciter(1)
                            Case 3 '''GME
                                'ParseInspirit(btData, 1)
                        End Select
                        tempData = decData(btData, 257, 596)
                        For i = 0 To iAmpCount - 1
                            GMEParseFreAmplifier(i, tempData)
                            SavePA(i)
                            ' AmpAlarm(i)
                        Next
                        GMEParsePSsystem(decData(btData, 597, 632))
                        GMEParseFreMaster(decData(btData, 633, 654))
                        SaveSystem()
                        SavePSsytem()
                        ' SysAlarm()
                        ' SMSalarm(CommStatus)
                End Select
        End Select
        'CommStatus = 1
        'Catch ex As Exception
        '    MessageBox.Show(ex.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        'End Try
    End Sub
    '***************************************************************************
    '*                                                                         *
    '********************* 解析吉兆调频发射机(GME)数据 '**********************
    '*                                                                         *
    '***************************************************************************

    '***********************解析第一组共256个字节数据***************************
    '说明:包括   时间(6B)+激励器管理单元(16B)+激励器1、2(32B)+保留(202B)
    '时间:          07 08 01 15 35 46 
    '激励器管理单元:07 5A A9 00 18 00 00 00 17 00 00 00 00 00 00 00 
    '激励器1、2:    18 01 66 00 33 00 76 02 00 00 76 25 01 00 97 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    '保留:          5A 06 00 00 00 00 5C 00 04 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '                00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    '                00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '                00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '                00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '                00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '                00 00 00 00 00 00 00 00 00 00 
    '''系统取样时间
    '''07 08 01 15 35 46 
    Private Sub GMEParseTime(ByRef btData() As Byte)
        Master.strSamplingTime = IIf(Len(Hex(btData(0))) = 2, Hex(btData(0)), "0" + Hex(btData(0))) + "-" + _
                                 IIf(Len(Hex(btData(1))) = 2, Hex(btData(1)), "0" + Hex(btData(1))) + "-" + _
                                 IIf(Len(Hex(btData(2))) = 2, Hex(btData(2)), "0" + Hex(btData(2))) + " " + _
                                 IIf(Len(Hex(btData(3))) = 2, Hex(btData(3)), "0" + Hex(btData(3))) + ":" + _
                                 IIf(Len(Hex(btData(4))) = 2, Hex(btData(4)), "0" + Hex(btData(4))) + ":" + _
                                 IIf(Len(Hex(btData(5))) = 2, Hex(btData(5)), "0" + Hex(btData(5)))

    End Sub
    '''激励器管理单元(06H)
    '''07 5A A9 00 18 00 00 00 17 00 00 00 00 00 00 00 
    Private Sub GMEParseInspiritManager(ByRef btData() As Byte)
        Dim StatusBinary As String
        StatusBinary = DecimalToBinary(btData(0), 8)
        InspiritManager.iEXON = Mid(StatusBinary, 8, 1)
        InspiritManager.iEXWK = Mid(StatusBinary, 7, 1)
        InspiritManager.iXAIN = Mid(StatusBinary, 6, 1)
        InspiritManager.ibXDD = Mid(StatusBinary, 5, 1)
        InspiritManager.iXWY = Mid(StatusBinary, 4, 1)
    End Sub
    '''激励器1、2-RVR 注:模拟量-高字节MSB在后,低字节LSB在前
    '''18 01 66 00 33 00 76 02 00 00 76 25 01 00 97 00 
    '''00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    Private Sub GMEParseRVRInspirit(ByRef btData() As Byte, ByVal i As Integer)
        Dim StatusBinary As String
        StatusBinary = DecimalToBinary(btData(i * 16 + 0), 8)
        RVRInspirit(i).iOnair = Mid(StatusBinary, 8, 1)
        RVRInspirit(i).iRemote = Mid(StatusBinary, 7, 1)
        RVRInspirit(i).iStok = Mid(StatusBinary, 6, 1)
        RVRInspirit(i).iGeneral = Mid(StatusBinary, 5, 1)
        RVRInspirit(i).iUnlock = Mid(StatusBinary, 4, 1)
        StatusBinary = DecimalToBinary(btData(i * 16 + 1), 8)
        If Mid(StatusBinary, 8, 1) = 0 Then
            RVRInspirit(i).bAin = True
        Else
            RVRInspirit(i).bAin = False
        End If
        RVRInspirit(i).iImpedance = 0 'Mid(StatusBinary, 5, 1)  ''输入阻抗
        RVRInspirit(i).iEmphasis = 1 'Mid(StatusBinary, 4, 1)  ''预加重模式
        RVRInspirit(i).iAudioMode = 1 'Mid(StatusBinary, 2, 1) ''音频模式
        'If btData(i * 16 + 1) = 1 Then
        '    RVRInspirit(i).bAin = True
        'Else
        '    RVRInspirit(i).bAin = False
        'End If
        RVRInspirit(i).dLeft = Int((btData(i * 16 + 3) * 256 + btData(i * 16 + 2)) / 100)
        RVRInspirit(i).dRight = Int((btData(i * 16 + 5) * 256 + btData(i * 16 + 4)) / 100)
        RVRInspirit(i).dPwr = (btData(i * 16 + 7) * 256 + btData(i * 16 + 6)) / 100
        RVRInspirit(i).dPhase = (btData(i * 16 + 9) * 256 + btData(i * 16 + 8)) / 100
        RVRInspirit(i).dFreq = ((btData(i * 16 + 11) * 256 + btData(i * 16 + 10)) * 10) / 1000
        RVRInspirit(i).dFwr = (btData(i * 16 + 15) * 256 + btData(i * 16 + 14)) / 100
        RVRInspirit(i).dRflp = (btData(i * 16 + 13) * 256 + btData(i * 16 + 12)) / 10
        '''
        If i = 0 Then
            If RVRInspirit(i).dFwr > 0 Then
                Master.bBackupState = False
            Else
                Master.bBackupState = True
            End If
        End If
        If i = 1 Then
            If RVRInspirit(i).dFwr > 0 Then
                Master.bBackupState = True
            Else
                Master.bBackupState = False
            End If
        End If
        '''
    End Sub
    '''激励器1、2-EKA 注:模拟量-高字节MSB在前,低字节LSB在后
    '''18 01 66 00 33 00 76 02 00 00 76 25 01 00 97 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    '''注:不一定与该数据相同
    Private Sub GMEParseEKAInspirit(ByRef btData() As Byte, ByVal i As Integer)
        Dim StatusBinary As String
        StatusBinary = DecimalToBinary(btData(i * 16 + 0), 8)
        EKAInspirit(i).iStereo = Mid(StatusBinary, 8, 1)
        EKAInspirit(i).iProgramming = Mid(StatusBinary, 7, 1)
        EKAInspirit(i).iRemote = Mid(StatusBinary, 6, 1)
        EKAInspirit(i).iPllUnlock = Mid(StatusBinary, 5, 1)
        EKAInspirit(i).iTemperature = Mid(StatusBinary, 4, 1)
        EKAInspirit(i).iReflected = Mid(StatusBinary, 3, 1)
        EKAInspirit(i).iForward = Mid(StatusBinary, 2, 1)
        EKAInspirit(i).iGeneral = Mid(StatusBinary, 1, 1)
        StatusBinary = DecimalToBinary(btData(i * 16 + 1), 8)
        If Mid(StatusBinary, 1, 2) = "00" Then
            EKAInspirit(i).iEmphasis = 0
        ElseIf Mid(StatusBinary, 1, 2) = "01" Then
            EKAInspirit(i).iEmphasis = 1
        ElseIf Mid(StatusBinary, 1, 2) = "11" Then
            EKAInspirit(i).iEmphasis = 2
        End If
        If Mid(StatusBinary, 3, 1) + Mid(StatusBinary, 6, 2) = "111" Then
            EKAInspirit(i).iAudioMode = 0
        ElseIf Mid(StatusBinary, 1, 2) = "101" Then
            EKAInspirit(i).iAudioMode = 1
        ElseIf Mid(StatusBinary, 1, 2) = "110" Then
            EKAInspirit(i).iAudioMode = 2
        End If
        EKAInspirit(i).iStereoCoder = Mid(StatusBinary, 5, 1)
        EKAInspirit(i).dLeft = (btData(i * 16 + 2) * 256 + btData(i * 16 + 3)) / 100
        EKAInspirit(i).dRight = (btData(i * 16 + 4) * 256 + btData(i * 16 + 5)) / 100
        EKAInspirit(i).dTemp = (btData(i * 16 + 6) * 256 + btData(i * 16 + 7))
        EKAInspirit(i).dDeviation = (btData(i * 16 + 8) * 256 + btData(i * 16 + 9)) / 100 '''频偏
        EKAInspirit(i).dFrequency = (btData(i * 16 + 10) * 256 + btData(i * 16 + 11)) / 100
        EKAInspirit(i).dFwdPower = (btData(i * 16 + 12) * 256 + btData(i * 16 + 13)) / 100
        EKAInspirit(i).dRflPower = (btData(i * 16 + 14) * 256 + btData(i * 16 + 15)) / 100
        '''
        If i = 0 Then
            If EKAInspirit(i).dFwdPower > 0 Then
                Master.bBackupState = False
            Else
                Master.bBackupState = True
            End If
        End If
        If i = 1 Then
            If EKAInspirit(i).dFwdPower > 0 Then
                Master.bBackupState = True
            Else
                Master.bBackupState = False
            End If
        End If
        '''
    End Sub
    '***********************解析第二组共380个字节数据***************************
    '说明:主要是20个功放插件的数据,17*20B=340B
    '功放1、 00 39 00 45 00 32 00 0A 01 89 00 07 01 F4 00 37 30 
    '功放2、 00 56 00 55 00 39 00 0A 02 52 00 08 02 26 00 37 30 
    '功放3、 00 40 00 33 00 2F 00 0A 01 80 00 07 02 12 00 37 30 
    '功放4、 00 3B 00 3B 00 32 00 0A 01 94 00 08 01 EA 00 37 30 
    '功放5、 00 33 00 3C 00 2C 00 0A 01 9D 00 07 01 FE 00 37 30 
    '功放6、 00 3A 00 33 00 26 00 0A 01 7A 00 08 01 FE 00 37 30 
    '功放7、 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放8、 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放9、 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放10、00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放11、00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放12、00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放13、00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放14、00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放15、00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放16、00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放17、00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放18、00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放19、00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    '功放20、00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    Private Sub GMEParseFreAmplifier(ByVal i As Integer, ByRef btData() As Byte)
        Dim StatusBinary As String
        Amplifier(i).dCurrent1 = Round45((btData(i * 17 + 0) * 256 * 0 + btData(i * 17 + 1)) / 10, 1)      '''放大电流1
        Amplifier(i).dCurrent2 = Round45((btData(i * 17 + 2) * 256 + btData(i * 17 + 3)) / 10, 1)        '''放大电流2
        Amplifier(i).dCurrent3 = Round45((btData(i * 17 + 4) * 256 + btData(i * 17 + 5)) / 100, 1)        '''推动级电流
        Amplifier(i).dOutputPower = btData(i * 17 + 8) * 256 + btData(i * 17 + 9)    '''输出功率

⌨️ 快捷键说明

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