?? 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 + -