Serialport und Module

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von mcvb.

    Serialport und Module

    Hallo zusammen

    Da ich in meinem aktuellen Projekt sehr viel Code schreiben muss, habe ich einen Teil in ein Modul ausgelagert. In diesem Modul greife ich auf den Serialport der Hauptform zu. Das SerialPort1_DataReceived wird in der Main Form aufgerufen. Das Form1.SerialPort1.Write(messageBufferOut, 0, paketSize) wird im Modul aufgerufen.

    Wenn Daten gesendet werden sollen, kommt die Meldung, dass der Port nicht offen sei. Ich bin mir ganz sicher, dass ich den Port nicht schliesse. Ich hatte noch nie Probleme mit dem Serialport. Allerdings hatte ich auch noch nie ein Modul verwendet. Darum schliesse ich darauf, dass dies der Grund sein könnte.

    So Initialisiere ich den Port:

    VB.NET-Quellcode

    1. Private Sub cbxPort_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxPort.SelectedIndexChanged
    2. 'Port Schliessen falls er offen ist
    3. If SerialPort1.IsOpen Then
    4. SerialPort1.Close()
    5. End If
    6. 'Port benennen und öffnen
    7. Try
    8. SerialPort1.PortName = cbxPort.SelectedItem
    9. SerialPort1.Open()
    10. Catch ex As Exception
    11. MessageBox.Show(ex.Message, "Serial Port", MessageBoxButtons.OK, MessageBoxIcon.Error)
    12. End Try
    13. End Sub




    Was muss ich anders machen, um den Port auch im Modul zu verwenden? Ist ein Modul grundsätzlich gut, oder soll ich da was anderes nehmen?

    Freue mich über Tipps.

    mcvb schrieb:

    In diesem Modul greife ich auf den Serialport der Hauptform zu.
    Was soll das?
    Wenn Deine Klasse unübersichtlich sind, mach ne Partial Class draus (Klassen auf mehrere Dateien verteilen). Ein Modul hat da nix zu suchen.

    mcvb schrieb:

    VB.NET-Quellcode

    1. Form1.SerialPort1....
    Gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!