writefile() bluetooth com-schnittstelle



  • Hallo Kollegen,
    hab ein kleines Programm das mit dem Com-Port kommuniziert geschrieben. Hat auch immer getan bis die bluetooth Geschichte kam. Wenn ich jetzt so eine Com des bluetooth-Adapters anspreche kann ich den comport öffnen aber sobald ich zugreifen will hängt sich mein Programm bei writefile auf .... 😡 .

    Exeption negative.

    Hat von euch jemand ne Idee was das sein könnten?

    Vilen Dank schonmal
    Gruß Gerhard

    [cpp][code]
    try{
    WriteFile( hCid, // Daten schreiben
    &acSend, 1,
    &lWritten, // Rück: wieviele wurden geschrieben
    NULL );
    }
    catch(...){}



  • Dieser Thread wurde von Moderator/in junix aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • vermutlich ist das Geraet nicht bereit Daten zu empfangen?

    WriteFile und ReadFile sind blockierend, d.h. die werden solange ausgeführt bis Daten gesendet oder empfangen wurden. Wenn das Geraet nicht bereit ist, dann halt ewig.

    Versuchs mal mit asynchroner Uebertragung (OVERLAPPED).

    Haste dich mit der Bluetooth-Spezifikation beschäftigt?



  • Hi Sunday,
    vielen Dank mal.

    "vermutlich ist das Geraet nicht bereit Daten zu empfangen?"
    Stimmt weil das Gerät nicht eingesteckt ist. Aber der COM-PORT ist in der Geräteregestry vorhanden und kann somit ausgewählt werden. Hyperterminal sendet auch was ins nirvana aber stürtzt nicht ab ....

    "WriteFile und ReadFile sind blockierend, d.h. die werden solange ausgeführt bis Daten gesendet oder empfangen wurden. Wenn das Geraet nicht bereit ist, dann halt ewig.

    Versuchs mal mit asynchroner Uebertragung (OVERLAPPED). "

    Genau das hab ich schon versucht, dann wird's nicht mehr geblockt, aber ich kann nichts mehr von der normalen Schnittstelle lesen.

    "Haste dich mit der Bluetooth-Spezifikation beschäftigt?"
    Nee natürlich nicht...weil ich ja nicht das bluetooth-Teil programmieren will sondern ein com-port ansprechen. Egal ob hardware oder virtuell.....

    Gruß
    Gerhard



  • ggcode schrieb:

    Hyperterminal sendet auch was ins nirvana aber stürtzt nicht ab

    Hi,

    Ich vermute mal, wenn es stehen bleibt hast du deine Timeouts nicht/zu gross gewaehlt. Hyperterminal bleibt deswegen nicht haengen, weil die Timeouts das verhindern.

    der Guenther



  • Hallo Guenther,
    danke für den Tip. Dachte schon das wärs.Timeouts geändert und siehe da es funkt ....aber:

    Mit diesen Timeouts funkt die COM 1. Mein USB<>RS232 Adapter funktioniert auch
    aber der bluetooth-com-port stürzt ab.

    ReadIntervalTimeout = 0;
    ReadTotalTimeoutMultiplier = 2;
    ReadTotalTimeoutConstant = 5;
    WriteTotalTimeoutMultiplier = 0;
    WriteTotalTimeoutConstant = 0;

    Mit diesen Timeouts funkt mein USB<>RS232 Adapter und der bluetooth-com-port stürzt nicht ab.

    ReadIntervalTimeout = 0;
    ReadTotalTimeoutMultiplier = 2;
    ReadTotalTimeoutConstant = 5;
    WriteTotalTimeoutMultiplier = 0;
    WriteTotalTimeoutConstant = 0;

    aber..... 😡 😡 😡 jetzt kann ich von der COM1 nichts mehr lesen

    Gruß Gerhard



  • sorry natürlich soooooooooo

    Mit diesen Timeouts funkt die COM 1. Mein USB<>RS232 Adapter funktioniert auch
    aber der bluetooth-com-port stürzt ab.

    ReadIntervalTimeout = 0;
    ReadTotalTimeoutMultiplier = 2;
    ReadTotalTimeoutConstant = 5;
    WriteTotalTimeoutMultiplier = 0;
    WriteTotalTimeoutConstant = 0;

    Mit diesen Timeouts funkt mein USB<>RS232 Adapter und der bluetooth-com-port stürzt nicht ab.

    ReadIntervalTimeout = 0;
    ReadTotalTimeoutMultiplier = 2;
    ReadTotalTimeoutConstant = 5;
    WriteTotalTimeoutMultiplier = 2;
    WriteTotalTimeoutConstant = 5;

    aber..... 😡 😡 😡 jetzt kann ich von der COM1 nichts mehr lesen

    Gruß Gerhard



  • Hi Guenther,
    danke für dein Tip. Wenn mann die Augen nicht aufmacht ist man selbst Schuld. Hatte ja die Timeouts ausgeschalten -> bedeutet nach Adam Riese unendlich viel Zeit ( wenn ich das nur hätte 🕶 ). Tja und nachher Timeout einschalten und das natürlich viel zu kurz 😡 .

    Mit richtigem Timeout klappt's auch mit dem Nachbarn.

    Tausend Dank
    Gerhard


Anmelden zum Antworten