Dobrý den, jestli můžu navázat na tohle téma - mám problém s tím, že chci mít nadefinovanou komunikaci po RS232 jako samostatnou třídu. Tedy mít hlavní formulář a v něm akorát nadefinovanou RS232:
Public Class Form1
Public RS232 As New portRS232
Private Sub Poslat()
RS232.SendData(...)
End Sub
Private Sub Chyba(ByVal code As Byte)
lblErr.text = "Je to rozbity - kod chyby: " & code
End Sub
End Class
...a pak třídu s RS232:
Class portRS232
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
If Me.InvokeRequired() Then
Dim dr As New DataRecievedDelegate(AddressOf Chyba)
Me.Invoke(dr, e)
Else
DataRecieved(e)
End If
End Sub
Delegate Sub DataRecievedDelegate(ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)
End Class
A nemůžu přijít na to, jak se z té třídy portRS232 dostanu na tu proceduru Chyba ve Form1, a už vůbec ne na to, jak jí při příjmu dat předat nějakej kód. (Nechci předávat kód systémové chyby, ale zpracovat nějak přijatá data a jen pokud budou vyhodnocena data jako špatná, vygenerovat nějaký kód a ten předat do hlavního vlákna Form1.) (Do příkladu nahoře jsem nevypisoval kód, který se stará o odesílání, protože ten funguje bez problémů.) Doufám, že jsem se vyjádřil nějak pochopitelně - dyštak to upřesnim. Díky, Lukas
|