- LiFePO4 Speicher Test         
Ergebnis 1 bis 9 von 9

Thema: C#:Wie Nachricht vom Mikrocontroller über dem Com-Port empfangen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    dass alles in einem Thread läuft stimmt aber nicht ganz, der Serial Port erzeugt sein Event asynchron

    textBox1.Invoke(new StringDelegate(DisplayString), port.ReadExisting());

    nja du hast es ja auch geschickt verpackt, aber erklären sollte man es zwecks verständnis finde ich ^^

    Widgets sind halt generell gesperrt gegen Thread-Fremde zugriffe ... und der Serial Port hat seinen eigenen Thread, die "DataReceived"-Methode wird von dem Thread aufgerufen

    durch die Invoke-Methode (die man auch etwas ausführlicher schreiben kann und mit einer if-abfrage für die Prüfung der Notwendigkeit versehen kann) wird der Aufruf indirekt an den Thread des Objektes übergeben und in diesem Kontext ausgeführt, was legal ist!
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.05.2011
    Ort
    NRW
    Alter
    37
    Beiträge
    146
    @ lokirobotics

    vielen dank für das programm und deine mühe! hätte nicht gedacht das sich einer wirklich zeit nimmt und mir einer das programm schreibt.

    kann es leider heute nicht mehr testen, aber morgen werde ich das sofort ausprobieren.

    @ ceos

    auch an dir ein danke für deine mühe

    hoffentlich funktioniert das, bin schon ganz gespannt

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.05.2005
    Ort
    Berlin
    Beiträge
    316
    @ceos: Ja, stimmt. DataReceived wird in nem extra Thread ausgelöst.
    Aber ich habs ja gleich Threadsave implementiert ;D
    Aber gerne auch nochmal die Erklärung:

    textBox1.Invoke(...) sorgt dafür, dass das Aktualisieren des Textfeldes in dem dem Textfeld zugehörigen Thread stattfindet. Man bittet das Textfeld praktisch, die übergebene Funktion (DisplayString) im eigenen Thread auszuführen (theoretisch hätte man auch das Form aufrufen können).

    Der Delegate ist ein Funktionszeiger, der die auszuführende Funktion hält. Der zweite Parameter sind die Daten, die der Funktion übergeben werden sollen.

    Ich seh grad, dass der Code gar nicht laufen kann. Der Port wird weder geöffnet, noch geschlossen. Das musst du noch einfügen.

  4. #4
    shedepe
    Gast
    Noch eine kleine Anmerkung was das Programmieren in C# generell angeht:
    Viele Informationen und auch Codebeispiele finden sich im microsoft devoloper network (msdn).
    Zur SerialPort-Klasse lässt sich dort das hier finden:
    http://msdn.microsoft.com/de-de/libr...erialport.aspx

  5. #5
    Neuer Benutzer Öfters hier Avatar von nanoBean
    Registriert seit
    10.05.2009
    Beiträge
    19
    Falls du probleme mit den umlauten bekommst, hilft dir System.text.encoding.ascii.getstring(...) weiter. Ich hoffe, dass das so ungefaehr passt. Kann grad nicht nachsehen. Wenn du nicht ascii sendest, musst du natuerlich .ascii. durch deine zeichenkodierung ersetzen. (und sorry wegen der kleinschreibung)

Ähnliche Themen

  1. LIN Nachricht in GCC für AT90CAN128
    Von andirs18 im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 15.09.2010, 12:57
  2. SPI 64bit nachricht
    Von fabian_83 im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 20.05.2010, 15:07
  3. Textdatei über TCP senden und empfangen
    Von elcomportal im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 27.06.2009, 15:46
  4. Mehrere Mikrocontroller an einem COM-Port?
    Von jörn im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 05.03.2005, 13:43
  5. Roboter mit Mainboard -> Mikrocontroller am I/O Port
    Von LinuxFan im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 177
    Letzter Beitrag: 05.11.2004, 12:32

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress