1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
Sub APP_ManageReceivedFrame()
While True
If (COM_FrameReceived_B = False) And (COM_WaitForResponse_B = True) And (COM_TimeOutElapsed_B = True) Then
Me.SetInformationBox(Color.Red, "No response timeout")
ElseIf COM_FrameReceived_B = True Then
COM_WaitForResponse_B = False
' Control Frame
COM_ErrorReceived_U8 = COM_ControlReceivedFrame()
Select Case COM_ErrorReceived_U8
Case cCOM_LengthError_U8
Me.SetInformationBox(Color.Red, "Length error")
Case cCOM_CRCError_U8
Me.SetInformationBox(Color.Red, "CRC error")
Case cCOM_CommandError_U8
Me.SetInformationBox(Color.Red, "Command error")
Case cCOM_TreatmentOK_U8
Case &HA
If BitConverter.IsLittleEndian Then
TempBuffer_U8A(0) = COM_RxBuffer_U8A(7)
TempBuffer_U8A(1) = COM_RxBuffer_U8A(6)
TempBuffer_U8A(2) = COM_RxBuffer_U8A(5)
TempBuffer_U8A(3) = COM_RxBuffer_U8A(4)
Value1_U32 = BitConverter.ToUInt32(TempBuffer_U8A, 0)
TempBuffer_U8A(0) = COM_RxBuffer_U8A(11)
TempBuffer_U8A(1) = COM_RxBuffer_U8A(10)
TempBuffer_U8A(2) = COM_RxBuffer_U8A(9)
TempBuffer_U8A(3) = COM_RxBuffer_U8A(8)
Value2_U32 = BitConverter.ToUInt32(TempBuffer_U8A, 0)
Else
TempBuffer_U8A(0) = COM_RxBuffer_U8A(4)
TempBuffer_U8A(1) = COM_RxBuffer_U8A(5)
TempBuffer_U8A(2) = COM_RxBuffer_U8A(6)
TempBuffer_U8A(3) = COM_RxBuffer_U8A(7)
Value1_U32 = BitConverter.ToUInt32(TempBuffer_U8A, 0)
TempBuffer_U8A(0) = COM_RxBuffer_U8A(8)
TempBuffer_U8A(1) = COM_RxBuffer_U8A(9)
TempBuffer_U8A(2) = COM_RxBuffer_U8A(10)
TempBuffer_U8A(3) = COM_RxBuffer_U8A(11)
Value2_U32 = BitConverter.ToUInt32(TempBuffer_U8A, 0)
End If
Me.SetChart(Value1_U32, Value2_U32)
End Select
COM_FrameReceived_B = False
End If
End While
End Sub |
Partager