Hallo Oliver
Das sieht bei mir so aus.
Delphi-Quellcode:
function TDROController.ReadControllerInfo(Sender: TObject):Integer;
var ExpectedLen:DWord;
ReceiveLen:DWord;
InData, OutData:Array[0..100] of Byte;
begin
Result:=-1;
ExpectedLen:=sizeof(ControllerInfo);
if SendReceive(DRO_GET_CONTROLLER_INFO,0,OutData,ExpectedLen,ReceiveLen,InData,stdBTIO_TIMEOUT) = 0 Then
begin
move(InData[3],ControllerInfo,sizeof(ControllerInfo));
Result:=0;
End
end;
Ich habe gestern begonen den Datenaustausch zu protokollieren. Bei jedem Transfer wurden genau 12 Byte ausgetauscht. Dazu wurde die Routine Receivedata vier mal aufgerufen. Zuerst wurden meist 0 Byte empfangen, dann 5 Byte, dann wieder 0 and zuletzt 7 Byte.
Unter MS-Windows läuft das Programm mehrere Stunden einwandfrei.
Beste Grüße
Geri