Seriak ve VB 2017

Pavel Hudecek edizon na seznam.cz
Středa Červen 7 01:29:15 CEST 2017


Dobrý den všem,

připojil jsem dva převodníky USB-sériák, propojil je a začal si hrát s VB 
2017:

První pokus jsem rozchodil, ale ten neměl eventy a to se mi nelíbí.

Našel jsem toto:
https://msdn.microsoft.com/cs-cz/library/system.io.ports.serialport.datareceived(v=vs.110).aspx

A tam uvedenou ukázku upravil na:

Imports System.IO.Ports

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 
Button1.Click
        PortTest.Send()
    End Sub

    Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles 
Me.Activated
        PortTest.startRd()
    End Sub

End Class

Public Class PortTest
    Shared sp1 As New SerialPort("COM4", 19200, Parity.None, 8, 
StopBits.One)
    Shared sp2 As New SerialPort("COM5", 19200, Parity.None, 8, 
StopBits.One)

    Public Shared Sub startRd()
        sp2.ReadTimeout = 500
        sp2.WriteTimeout = 500
        AddHandler sp2.DataReceived, AddressOf Recv
        sp2.Open()
        Form1.Label1.Text = "start"

    End Sub

    Public Shared Sub Send()
        sp1.ReadTimeout = 500
        sp1.WriteTimeout = 500
        sp1.Open()

        sp1.WriteLine(Form1.tb1.Text) 'tb1 je textbox

        sp1.Close()
    End Sub

    Private Shared Sub Recv(sender As Object, e As 
SerialDataReceivedEventArgs)
        Form1.Label1.Text = "recv"
        Dim indata As String = sp2.ReadExisting()
        Form1.Label1.Text = indata
    End Sub
End Class

Po spuštění se label nastaví na "start", po stisku buttonu blikají LEDky na 
obou převodnících, ale label se nemění, takže event vůbec nenastává. Poradí 
někdo, proč?

Díky,
PH 



Další informace o konferenci Hw-list