Problem beim Lesen von RS232

PPatrickFfm

Grünschnabel
Hey!

Habe ein kleines Problem beim Lesen am parallelen Port. Unten ein Code-Snippet von meiner Readfile-Funktion. Das Prob ist halt, dass ich keine vernünftigen Daten bekomme, wenn ich das Prog normal ausführe ... beim Debuggen - komischerweise - klappt's aber einwandfrei. Ich vermute es hängt irgendwie mit der Zeit zusammen, bis die zu lesenden Daten vom Interface "angekommen" sind. Weiß aber nicht wirklich, ob's daran liegt ...

Hat vielleicht einer von euch eine Idee? Oder liegt der Fehler irgendwo im Code? Muss ich noch irgendwas bedenken? Falls es an der "Zeit" liegt, wie am Besten lösen?

Code:
int Com_Port :: Read_Comport (HANDLE DriverHandle, DWORD *BytesRead, DWORD BufferSize, void *Buffer)
{
    COMSTAT     Our_Comstat;
   
    if ((DriverHandle == 0) || (DriverHandle == INVALID_HANDLE_VALUE)) {
        return FALSE;
    } 

        ClearCommError (DriverHandle, &Com_Errors, &Our_Comstat);
    
    if (Our_Comstat.cbInQue > 0) 
	{
        
        if (Our_Comstat.cbInQue > BufferSize)
		{
            BytesToRead = BufferSize;
        } 
		else
		{
            BytesToRead = Our_Comstat.cbInQue;
        }
        
        if (!ReadFile (DriverHandle, Buffer, BytesToRead, BytesRead, NULL))
		{
			cout << "Read FAIL!\n";
		}
    }
	else
	{
        *BytesRead = 0;
    }

    return TRUE;
}


Danke für Eure Hilfe!

Bis denn.
 
Hi Thomas!

Danke für deine "Anmerkung"! Mal auf die Uhr geguckt? Sorry, war wohl schon zu spät für mich ;) und hab soviel Zeug's durchgelesen, da bin ich wohl beim Schreiben durcheinander gekommen. Also, nochmals danke für den Hinweis, allerdings bei der Problemlösung hilfts nicht gerade - klappt nämlich noch immer nicht.

Wenn jemand dann eine Idee hat, warum das Lesen an der seriellen Schnittstelle nicht klappt ... her damit :)

MfG
 
Zurück