Einzelnen Beitrag anzeigen

Geri

Registriert seit: 23. Nov 2004
Ort: Feldkirch
47 Beiträge
 
Delphi 2005 Personal
 
#5

AW: Bluethooth auf Android - recvmsg stuck

  Alt 4. Jun 2020, 12:35
Hallo Moombas

Vielen Dank für die Hilfe!

Ich habe unter Android die Überwachung der App ausgeschaltet. Das Problem bestand aber noch.

Ich denke, es hängt aber schon irgendwie damit zusammen, dass die App in eine Art Ruhezustand geht. Zeitlichen Zusammenhang konnte ich aber noch nicht feststellen.

Ich habe nun aber in die oben gezeigte SendReceive-Methode eine Protokollierug hinzugefügt. Nun läuft die App bereits eine halbe Stunde einwandfrei. AddComDebug fügt Text in ein TMemo hinzu - obwohl sich das TMemo-Feld nicht in einer anderen Tab befindet und nicht sichtbar ist.

Delphi-Quellcode:

        LSocket.SendData(LBuffer);
        CurrentIdx:=0;
        for i := 0 to TimeOut div 25 do
        begin
          AddComDebug('Rcv start ');
          ReceiveBuffer := LSocket.ReceiveData(25);
          AddComDebug('Received bytes ' + IntToStr(length(ReceiveBuffer)));
          if length(ReceiveBuffer) > 0 then
          begin
            move(ReceiveBuffer[0],InData[CurrentIdx],length(ReceiveBuffer));
            CurrentIdx := CurrentIdx + length(ReceiveBuffer);
            SetLength(ReceiveBuffer,0);
            if CurrentIdx >= (ExpectedLength + 4) then
            begin
              result:=0;
              Setlength(LBuffer,0);
              ReceiveLength:= CurrentIdx;
              AddComDebug('End send receive - OK ' + IntToStr(ReceiveLength));
              exit;
            end;
          end;
        End;
...snip
Beste Grüße
Geri
Gerhard
  Mit Zitat antworten Zitat