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
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...
Könntest auch einfach einen Timer starten der sich selbst stoppt wenn er aufgerufen wird.
man kann doch einfach den Timeout setzen und die daten ohne das event auslesen. Einfach Read.
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 }
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.