Option Strict On Public Class Form1 'numéro incrémenté Dim num As Integer 'délagué invoqué Delegate Sub DelegateComPort(Numero As Integer, Donnees As String) Private Sub SerialPort1_DataReceived(sender As Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles ComPort.DataReceived Dim nb_octet As Integer = ComPort.BytesToRead ' on récupère le nombre d'octet présent dans le tampon Dim trame(nb_octet) As Byte ' Tableau acceuillant les données au format byte Dim donnee As String ComPort.Read(trame, 0, nb_octet) 'on lit le port donnee = System.Text.Encoding.ASCII.GetString(trame) ' on récupère les données au format ASCII 'invocation du délégué avec 2 paramètres Me.Invoke(New DelegateComPort(AddressOf ChangeValue), num, donnee) 'incrémentation du numéro num += 1 'délai de 1 seconde Threading.Thread.Sleep(1000) End Sub Private Sub ChangeValue(Numero As Integer, Donnees As String) 'boucle sur chaque controle du formulaire For Each txtb As Control In Me.Controls 'si le contrôle est un textbox If TypeOf txtb Is TextBox Then 'et que son tag est égal au numéro If CType(txtb.Tag, Integer) = Numero Then 'on affiche les données txtb.Text = Donnees End If End If Next End Sub End Class
il y a t'il un moyen de transférer les données reçues sur un Usb vers un port COM virtuel
MessageBox.Show(donnee.length.tostring)
Pourtant, quand je fais une msgbox(donnee), j'ai bien le texte
If donnee.length = "G0cr".length Then COMPort5.WriteLine("Model HD2102-2") end if
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub SéquenceTEST_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SéquenceTEST.Click Dim j As Integer = 1 For j = 1 To 6 Me.Controls("TextBox" & j).Focus() System.Threading.Thread.Sleep(1000) Me.Refresh() Next j End Sub
Private Sub SerialPort1_DataReceived(sender As Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles ComPort.DataReceived
Public Class Form1 Shared donnee As String Shared j As Integer = 2 Public Event DataReceived As SerialDataReceivedEventHandler Public Declare Sub Sleep Lib "kernel32" (ByVal SleepP1l0u As Long) 'Private Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) 'numéro incrémenté Dim num As Integer 'délagué invoqué Delegate Sub DelegateComPort(ByVal Numero As Integer, ByVal Donnees As String) Private Sub SerialPort1_DataReceived(sender As Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles ComPort.DataReceived Do While (TextBox29.Text = donnee) Dim nb_octet As Integer = COMPort.BytesToRead ' on récupère le nombre d'octet présent dans le tampon Dim trame(nb_octet) As Byte ' Tableau acceuillant les données au format byte Dim donnee As String COMPort.Read(trame, 0, nb_octet) 'on lit le port donnee = System.Text.Encoding.ASCII.GetString(trame) ' on récupère les données au format ASCII 'invocation du délégué avec 2 paramètres Me.Invoke(New DelegateComPort(AddressOf ChangeValue), num, donnee) 'incrémentation du numéro 'délai de 1 seconde Threading.Thread.Sleep(1000) COMPort.WriteLine("TX") donnee = "" num = num + 1 Loop End Sub Private Sub ChangeValue(ByVal Numero As Integer, ByVal Donnees As String) Dim i As Integer i = Numero + 2 Me.Controls("TextBox" & i).Text = Donnees End Sub
Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click COMPort.WriteLine("G0cr") End sub Private Sub SerialPort1_DataReceived(sender As Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles ComPort.DataReceived Do While (TextBox29.Text = donnee) Dim nb_octet As Integer = COMPort.BytesToRead ' on récupère le nombre d'octet présent dans le tampon Dim trame(nb_octet) As Byte ' Tableau acceuillant les données au format byte Dim donnee As String COMPort.Read(trame, 0, nb_octet) 'on lit le port donnee = System.Text.Encoding.ASCII.GetString(trame) ' on récupère les données au format ASCII If donnee = "Model HD2102-2" Then MsgBox(donnee) Me.Label9.Text = donnee End If
Dim nb_octet As Integer = COMPort5.BytesToRead ' on récupère le nombre d'octet présent dans le tampon Dim trame(nb_octet) As Byte ' Tableau acceuillant les données au format byte Dim donnee As String COMPort5.Read(trame, 0, nb_octet) 'on lit le port donnee = System.Text.Encoding.ASCII.GetString(trame) ' on récupère les données au format ASCII If donnee = "G0cr" Then COMPort5.WriteLine("Model HD2102-2") End If