mikrocontroller.net

Forum: PC-Programmierung COM-Port GetOverlappedResult()


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wenn über einen virtuellen Com-Port weniger Daten übertragen werden als 
im Readfile() angegeben worden ist (mit Overlapped Event), wird dann 
GetOverlappedResult() trotzdem ausgelöst, nur dass dann natürlich 
weniger Daten zur Verfügung stehen, oder wartet GetOverlappedResult() 
wirklich bis die angegebene Byteanzahl auch ankommt?

//hab mal den code schematisch dargestellt:
#define MAX_BUFFER_SIZE  200
BYTE buffer[MAX_BUFFER_SIZE];

BOOL ok = ::ReadFile(hCom, buffer, MAX_BUFFER_SIZE - 1, &bytesRead, &ovl);

DWORD result = ::WaitForMultipleObjects();

ok = ::GetOverlappedResult(hCom, &ovl, &bytesRead, TRUE); 


Gruß
Jens

: Verschoben durch Moderator
Autor: Balduin T. (balduin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich arbeite bei Com Ports zwar nie mit overlapped sondern verwende dafür 
einen eigenen Thread ..

aber nach Ablauf der mit SetCommTimeouts eingetellten Timeouts, sollte 
auch der GetOverlappedResult Aufruf zurückkehren.

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.