Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived Dim nb_octets As Integer = SerialPort1.BytesToRead 'on lit le nombre d'octets présents dans le tampon. Dim trame(nb_octets - 1) As Byte 'tableau accueillant les données au format byte. SerialPort1.Read(trame, 0, nb_octets) 'lecture du port. Dim lTrame As Long Try lTrame += trame(0) lTrame *= 256 Catch ex As IndexOutOfRangeException Console.WriteLine("IndexOutOfRangeException caught") End Try Try MsgBox(trame(0)) Catch ex As IndexOutOfRangeException Console.WriteLine("IndexOutofRangeException caught") End Try
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived Dim nb_octets As Integer = SerialPort1.BytesToRead 'lecture du nombre d'octets présents dans le tampon. Dim trame(nb_octets - 1) As Byte 'tableau accueillant les données au format byte. SerialPort1.Read(trame, 0, nb_octets) 'lecture du port. Dim Index, i As Integer Dim lTrame(Index) As Byte For i = 0 To 7 'itération pour l'index de la valeur du premier octet pour chaque compteur à enregistrer ( 3 à 31) Try Index = 3 + 4 * i 'Index de la valeur du premier octet pour chaque compteur enregistré ' MsgBox(Index) lTrame(Index) *= 256 MsgBox(lTrame(Index)) Catch ex As IndexOutOfRangeException Console.WriteLine("IndexOutofRangeException caught") End Try Next
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim lValue as Integer=0 Index = 3 + 4 * i 'Index de la valeur du premier octet pour chaque compteur enregistré lValue+=lTrame(Index) * 256 Index+=1 lValue+=lTrame(Index) * 256 Index+=1 lValue+=lTrame(Index) * 256 Index+=1 lValue+=lTrame(Index) * 256 MessageBox.Show(lValue.Tostring)
Try Dim longtrame As Integer = 0 Index = 5 'Index de la valeur du premier octet pour chaque compteur enregistré longtrame = (longtrame + trame(Index)) * 256 Index += 1 longtrame = (longtrame + trame(Index)) * 256 Index -= 3 longtrame = (longtrame + trame(Index)) * 256 Index += 1 longtrame = (longtrame + trame(Index)) MessageBox.Show(longtrame.ToString) Catch ex As IndexOutOfRangeException Console.WriteLine("IndexOutofRangeException caught") End Try
Private Sub SetText1(ByVal [text] As Object) 'Procédure permettant l'appel de la TextBox sur un autre Thread, compteur 1 If Me.TxtCompteur1.InvokeRequired Then Dim x As New SetTextCallback(AddressOf SetText1) Me.Invoke(x, New Object() {(text)}) Else Me.TxtCompteur1.Text = [text] End If End Sub Private Sub SetText2(ByVal [text] As String) 'Procédure permettant l'appel de la TextBox sur un autre Thread, compteur 2 If Me.TxtCompteur2.InvokeRequired Then Dim y As New SetTextCallback(AddressOf SetText2) Me.Invoke(y, New Object() {(text)}) Else Me.TxtCompteur2.Text = [text] End If End Sub Public Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived Dim nb_octets As Double = SerialPort1.BytesToRead 'lecture du nombre d'octets présents dans le tampon. Dim trame(nb_octets) As Byte 'tableau accueillant les données au format byte. SerialPort1.Read(trame, 0, nb_octets) 'lecture du port. Dim Index, Index1, Index2, Index3, Index4, Index5, Index6, Index7 As Integer Try 'Compteur 1 Dim longtrame As Double = 0 Index = 5 'Index de la valeur du premier octet pour chaque compteur enregistré longtrame = (longtrame + trame(Index)) * 256 Index += 1 longtrame = (longtrame + trame(Index)) * 256 Index -= 3 longtrame = (longtrame + trame(Index)) * 256 Index += 1 longtrame = (longtrame + trame(Index)) longtrame = longtrame * 0.1 Dim longtrame_chaine As String = CStr(longtrame) SetText1(longtrame_chaine) 'MessageBox.Show(longtrame_chaine) Catch ex As IndexOutOfRangeException Console.WriteLine("IndexOutofRangeException caught") End Try Try 'Compteur 2 Dim longtrame1 As Double = 0 Index1 = 9 'Index de la valeur du premier octet pour chaque compteur enregistré longtrame1 = (longtrame1 + trame(Index1)) * 256 Index1 += 1 longtrame1 = (longtrame1 + trame(Index1)) * 256 Index1 -= 3 longtrame1 = (longtrame1 + trame(Index1)) * 256 Index1 += 1 longtrame1 = (longtrame1 + trame(Index1)) longtrame1 = longtrame1 * 0.1 Dim longtrame_chaine1 As String = CStr(longtrame1) SetText2(longtrame_chaine1) 'MessageBox.Show(longtrame_chaine) Catch ex As IndexOutOfRangeException Console.WriteLine("IndexOutofRangeException caught") End Try
If MaVar>1000000 Then #IF DEBUG Then Stop #EndIf End If