- Labornetzteil AliExpress         
Ergebnis 1 bis 2 von 2

Thema: serialPort mit Invoke

  1. #1

    serialPort mit Invoke

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen.

    Ich habe ein Problem mit meiner Anwendung, die über serielle Schnittstelle mit Mikrocontroller - in meinem Fall ist das C-Control - kommuniziert .
    Die Anwendung basiert auf dem Beispiel aus diesen Forum "Beispiel Anwendung C# Zugriff auf SerialPort".
    Das Programm funktioniert einwandfrei bis ich die Beenden-Taste drücke. Dannach hängt sich das Programm auf.
    Der empfangende String ist "I\n". Das Zeichen I wird einmal übertragen und damit soll ein Teimer aktiviert werden.
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO.Ports;
    using System.IO;
    
    namespace Serila_Invoke
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                if (!serialPort1.IsOpen)
                {
                    serialPort1.Open(); //Serialport öffnen
                }
                recievedDelegate = new InvokeDelegate(InvokeRecieved);
                serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived); //DataRecieved Event abonnieren
    
            }
    
            delegate void InvokeDelegate(string Data);
    
            InvokeDelegate recievedDelegate;
    
    
            void InvokeRecieved(string Data)
            {
                listBoxRecieved.Items.Add(Data);
                if (Data[0] == 'I')
                {
                    timer1.Start();
                    Data = "";
                }
    
            }
            private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                string RecievedLine = " ";
                while (RecievedLine != "")
                {
                    RecievedLine = serialPort1.ReadLine();
                    listBoxRecieved.Invoke(recievedDelegate, new object[] { RecievedLine });
                }
    
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                if (label_störung.BackColor != Color.Orange)
                {
                    label_störung.BackColor = Color.Orange;
                    label_störung.ForeColor = Color.Orange;
                }
    
                else
                {
                    label_störung.BackColor = Color.Red;
                    label_störung.ForeColor = Color.Black;
                }
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                timer1.Stop();
                Close();
            }
        }
    }
    Ich werde sehr froh wenn mir jemand hilft den Fehler zu finden.

    Gruß
    Valdiz.
    Angehängte Dateien Angehängte Dateien
    Geändert von valdiz (01.12.2012 um 21:45 Uhr)

  2. #2
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    19.05.2012
    Ort
    Sigmaringen
    Beiträge
    169
    namespace Serila_Invoke
    Serila ? steht das so im Code ??


    - - - Aktualisiert - - -

    Und mir war so, als ob es bei C am ende des Codes auch eine Anweisung gibt... sowas wie "END" oder "EXIT"....
    oder Täusche ich mich ?
    Könnte das fehlerhafte beenden des Programms erklären.

Ähnliche Themen

  1. SerialPort in VB
    Von Kampi im Forum Software, Algorithmen und KI
    Antworten: 4
    Letzter Beitrag: 16.04.2012, 19:36
  2. SerialPort & Visual Studio 2008
    Von fat tony im Forum Software, Algorithmen und KI
    Antworten: 31
    Letzter Beitrag: 09.01.2012, 15:26
  3. Problem VisualC++: Einzelnes Zeichen mit serialPort senden!
    Von Jacob2 im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 3
    Letzter Beitrag: 15.12.2010, 13:04
  4. Von String to Hex SerialPort
    Von !*sascha*! im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 04.03.2009, 17:52
  5. max232 mit Serialport verbinden: geht auch ein Nullmodem?
    Von Gottfreak im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 09.04.2004, 18:06

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test