📄 transmitgme.vb
字号:
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 + -