Werte aus einer seriellen Schnittstelle bearbeiten

  • VB.NET

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    @antidzn Da steht alles:

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Property temperature As Double
    3. Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    4. SerialPort1.PortName = "COM14"
    5. SerialPort1.BaudRate = 19200
    6. SerialPort1.Parity = IO.Ports.Parity.None
    7. SerialPort1.NewLine = vbCr
    8. SerialPort1.Encoding = System.Text.Encoding.UTF8
    9. SerialPort1.Open()
    10. End Sub
    11. Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    12. Me.SerialPort1.Write("D")
    13. End Sub
    14. Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    15. Dim s As String = Me.SerialPort1.ReadExisting()
    16. temperature = CInt(s) / 100.0
    17. Me.Invoke(Sub() Me.TextBox1.AppendText(String.Format("{0:0.00} °C", temperature)))
    18. End Sub
    19. ' ...

    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    Danke @RodFromGermany :love:
    habe es nichtmal gesehen.

    Eine Frage hätte ich noch insofern du mir noch helfen willst.

    Ich möchte 2 mal messen.
    Einmal soll aus meiner aktuellen Temperatur ein Wert herausgerrechnet werden.
    Und bei der zweiten Messung soll auch die aktuelle Temperatur gemessen werden.
    Allerdings unterscheiden sich die aktuelle Temperaturen, also z.B Messung 1: 21,45 Grad Messung2 :23,45 Grad. Die Messungen sind in unterschiedlichen Zeitabständen nacheinander.
    Mittlerweile habe ich es hinbekommen das die Werte richtig ausgerrechnet werden, aber beide Werte werden zum selben Zeitpunkt gemessen. Ich habe mir 2 weitere Buttons hinzugefügt um für jede Messung einen Button zu haben.
    Quasi Button_2 soll Temperatur messen und ausrechnen und das Ergebnis in eine TextBox schreiben.
    Button_3 soll das selbe machen bloß in eine andere TextBox schreiben.
    Kann man die TextBox irgendwie sperren, das ich sagen kann wenn der Button_2 gedrückt soll die TextBox von Button_3 schreibgeschützt werden. Oder muss ich beim SerialPort Read befehl mit einbauen, das beim drücken des Buttons nur die eine TextBox freigegeben wird?
    Ich habe schon ein paar Sachen versucht um

    antidzn schrieb:

    Kann man die TextBox irgendwie sperren, das ich sagen kann wenn der Button_2 gedrückt soll die TextBox von Button_3 schreibgeschützt werden. Oder muss ich beim SerialPort Read befehl mit einbauen, das beim drücken des Buttons nur die eine TextBox freigegeben wird?
    Eh ... Warum denn ne TextBox verwenden, wenn man nix dran machen darf? Dann nimm gleich ein Label. Oder pack die Werte einfach in passende Variablen. Ein CE wie ne TextBox ist zur Anzeige, notfalls zur Bearbeitung gedacht und nicht als Variablenwertezwischenspeicher. Man kann aber so ne TextBox (Grundlagen der WinForms-Programmierung) auf Enabled = False stellen. Oder .ReadOnly = True.

    antidzn schrieb:

    Ich habe schon ein paar Sachen versucht um
    Und dann wurde die Internetverbindung getrennt?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.