Aussetzer bei der Kommunikation über die COM-Schnittstelle



  • hi,

    ich hab ein tool geschrieben das über die rs232 daten empfängt. um das ganze zu testen hab ich ich noach nen gegentool geschrieben das alle x ms 2 bytes über die rs232 versendet.

    mein problem ist nun das mein empfangsprogramm ca. alle 2 sec scheint einen aussetzer zu haben. dabei gehen mir in etwa 20% der gesendeten daten verloren.

    ist bei euch irgend was bekannt wie ich das umgehen kann?

    hier mal ein bischen code des senders:

    hCom = CreateFile (port,
                           GENERIC_WRITE,
                           0,
                           0,
                           OPEN_EXISTING,
                           0,
                           0);
        ...
    
        TransmitCommChar(hCom, byte);
    

    das handel wird nur einmal erzeugt TransmitCommChar(hCom, byte) rufe ich mit einem onTimer event auf. die aussetzer bekomm ich auch wenn ich mit 500ms versende.

    und hier der empfänger:

    hCom = CreateFile (port,
                           GENERIC_READ,
                           0,
                           0,
                           OPEN_EXISTING,
                           0,
                           0);
    
        if(hCom == INVALID_HANDLE_VALUE)
        {
            ShowMessage( AnsiString( port ) + " konnte nicht geöffnet werden!" );
        }
    
        while(1)
        {
            ReadFile(hCom, &InBuff, 1, &dwBytesRead, NULL);
            if(dwBytesRead)
            {
                DecodeByte();
            }
            Application->ProcessMessages();
        }
    

Anmelden zum Antworten