Private WithEvents _SP as IO.Ports.SerialPort Private _trame as new List(Of Byte) Private Sub SP_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles _SP.DataReceived Dim nbData As Integer = _SP.BytesToRead Dim tab(nbData - 1) As Byte _SP.Read(tab, 0, nbData) _trame.addRange(tab) VerifTrame() End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub SerialPort_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort.DataReceived Dim Taille As Integer Dim recep() As Byte Dim recepPourVerif() As Byte Dim Valeur As Single Dim Data(3) As Byte Dim Crc16 As Boolean Dim ByteToRead as Integer ByteToRead = SerialPort.BytesToRead - 1 'Quand il y a quelquechose dans le buffer de réception on lit les données et les ajoutes dans recep ReDim recep(BytesToRead) ReDim recepPourVerif(BytetoRead) Taille = SerialPort.BytesToRead SerialPort.Read(recep, 0, BytesToRead+1) End Sub
Protocole exemple : Caractère de début de trame : 02H (sur un octet) Longueur de la trame entre le numéro de la trame (inclus) et le caractère de fin (non inclus) : 1+longueur Data (sur 2 octets) Numéro d'identification de la trame : 01H (sur un octet) Data : XXH XXH ..... XXH (nb d'octet variable) Caractère de fin : 03H (sur un octet) CRC (caractère de contrôle) : XXH (sur un octet)