Serielle Schnittstelle und getchar()



  • Hi ich hab ein vermutlich simples Problem an dem ich aber bisher scheitere:

    Ich habe mir ein Handle mit CreateFile(...) auf die serielle Schnittstelle erzeugt und möchte nun einfach nur zeichenweise auslesen...

    Also so etwas wie eine

    char getchar();
    

    Funktion die mir folgendes gewährleistet:
    - warte in der Funktion bis ein Zeichen kommt
    - wenn ein Zeichen da ist, zurückgeben und evtl aus dem Buffer Löschen

    wenn ich das mit ReadFile(...) mache wartet mir die Funktion ja nicht auf ein eintreffendes Zeichen und ich hab das Gefühl, dass die Funktion nicht immer das letzte angekommene Zeichen ausgibt, sondern immer das erste nicht-ausgelesene.

    Danke schon mal



  • Lies einfach am Anfang der Funktion mit ReadFile bis der Puffer leer ist und warte dann auf das nächste Zeichen:

    [...]
    char buffer;
    int count=1;
    while (count) count = ReadFile(connection, &buffer, 1);
    count=0;
    while (!count) count = ReadFile(connection, &buffer, 1);
    return buffer;
    

Anmelden zum Antworten