Moin,moin.
Ich bin gerade dabei eine Oberfläche zu erstellen, mit der 7 Messgeräte angesteuert werden können.
Diese sind alle an einem seriellen Port geknüpft.
Da ich ungern für jeden Port einzelne Routinen benutzen möchte, dachte ich an die Verwendung einer Listof, in der die Ports vorhanden sind.
Ich habe (nur als Beispiel hier für Port 0) diese Routine benutzt, um den (die) Port(s) zu erstellen:
Das funktioniert auch soweit.
Jetzt brauche ich noch einen Datareceive Handler, welchen ich so erstellt habe:
Allerdings kann ich in Empfang0, den ComPort(0) nicht benutzen, da dieser nicht deklariert ist:
Mache ich es so:
dann kann ich auf ComPort(0) zugreifen.
Ich möchte das DataReceive aber nicht innerhalb der ComPort-Erstellung haben, sondern als eigene Sub.
Die Frage wäre:
Wie kann ich das DataReceive in einer eigenen Sub benutzen und was mache ich bei der Zuweisung / Verwendung falsch ?
Wie "dröselt" man AddHandler ComPort(0).DataReceived, Sub(obj As Object, evtArgs As SerialDataReceivedEventArgs)
quasi in seine Bestandteile ?
Ich bin gerade dabei eine Oberfläche zu erstellen, mit der 7 Messgeräte angesteuert werden können.
Diese sind alle an einem seriellen Port geknüpft.
Da ich ungern für jeden Port einzelne Routinen benutzen möchte, dachte ich an die Verwendung einer Listof, in der die Ports vorhanden sind.
Ich habe (nur als Beispiel hier für Port 0) diese Routine benutzt, um den (die) Port(s) zu erstellen:
Quellcode
- Dim ComPort As New List(Of IO.Ports.SerialPort)
- ComPort.Add(New SerialPort)
- With ComPort(0)
- .PortName = "Com13"
- .BaudRate = 57600 'BaudRate1
- .Parity = Parity.Odd
- .DataBits = 8
- .StopBits = StopBits.One
- .Handshake = Handshake.None
- .RtsEnable = False
- .DtrEnable = True
- ' Set the read/write timeouts
- .ReadTimeout = 3000
- .WriteTimeout = 3000
- .ReceivedBytesThreshold = 1
- .ReadBufferSize = 4096
- ComPort(0).Open()
- End With
Das funktioniert auch soweit.
Jetzt brauche ich noch einen Datareceive Handler, welchen ich so erstellt habe:
Allerdings kann ich in Empfang0, den ComPort(0) nicht benutzen, da dieser nicht deklariert ist:
Mache ich es so:
dann kann ich auf ComPort(0) zugreifen.
Ich möchte das DataReceive aber nicht innerhalb der ComPort-Erstellung haben, sondern als eigene Sub.
Die Frage wäre:
Wie kann ich das DataReceive in einer eigenen Sub benutzen und was mache ich bei der Zuweisung / Verwendung falsch ?
Wie "dröselt" man AddHandler ComPort(0).DataReceived, Sub(obj As Object, evtArgs As SerialDataReceivedEventArgs)
quasi in seine Bestandteile ?