www.mikrocontroller.net

Forum: PC-Programmierung brauche Denkanstoß C#


Autor: StefanA. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte mit C# über die serielle Schnittstelle was senden und erwarte 
dann von der Gegenstelle natürlich eine Antwort.
Und ich steh irgendwie voll aufm schlauch - Wie mache ich es, das mein 
Programm auf die Antwort "wartet"?

Ich weis da gibts das DataReceive-Event, aber das kann ja im 
schlimmstenfall kommen wann es will - oder gar nicht bei einer 
fehlerhaften übertragung.

Also: Sende Befehl -> erwarte zB innerhalb 500ms eine Antwort, die dann 
positiv oder negativ ausfallen kann

Tut mir echt leid, ich weis das ist bestimmt voll easy aber hab grad ne 
denkblockade^^

Gruß Stefan

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt drauf an was da für Daten ankommen...
Steht bspw. die Anzahl der Bytes fest, könnte man ReceivedBytesThreshold 
festlegen (muss dann aber aufpassen, falls mal was nicht vollständig 
etc.) ankommt.
Oder man legt ReadTimeout fest und "wartet" auf die Exception...
Oder man nimmt einen eigenen Thread, der die über DataReceived 
hereinkommenden Teile zusammensetzt und sich dann mit einem eigenen 
Event meldet oder...

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könntest auch einfach einen Timer starten der sich selbst stoppt wenn er 
aufgerufen wird.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
man kann doch einfach den Timeout setzen und die daten ohne das event 
auslesen. Einfach Read.

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja einfach so.

try {
  serialPort1.ReadTimeout = 500; // Wenn nach 500ms keine Antwort kommt 
--> Exception
  string antwort = serialPort1.ReadString(); // Oder andere Lesemethode
} catch ()
{
   hier deinen fehler abfangen
}

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.