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
Private 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)
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.