1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
function TBTMethod.SendData( nPair:integer; sData:string ) : Boolean;
var
ToSend: TBytes;
LDevice: TBluetoothDevice;
begin
result := FALSE;
if ManagerConnected then
try
if (FSocket = nil) or ( ItemIndex <> nPair ) then
begin
if nPair > -1 then
begin
//-----------Pour la connexion
LDevice := FPairedDevices[ nPair ] as TBluetoothDevice;
FSocket := LDevice.CreateClientSocket( StringToGUID( FServiceGUID ), False);
//-----------Pour la connexion
if FSocket <> nil then
begin
ItemIndex := nPair;
FSocket.Connect;
ToSend := TEncoding.UTF8.GetBytes( sData );
FSocket.SendData(ToSend); // FSocket.ReceiveData
result := TRUE;
end
else
ShowMessage('Out of time -15s-');
end
else
ShowMessage('No paired device selected');
end
else
begin
ToSend := TEncoding.UTF8.GetBytes( sData );
FSocket.SendData(ToSend);
result := TRUE;
end;
except
on E : Exception do
begin
ShowMessage(E.Message);
FreeAndNil(FSocket);
end;
end;
end;
//---------------------------------------------------------------------------------------
// nPair : Paired Device List No
function TBTMethod.Receivedata( nPair:integer) : String ;
var
ToReceive: TBytes;
StrReceive : String;
LDevice: TBluetoothDevice;
begin
result := '';
if ManagerConnected then
try
if (FSocket = nil) or ( ItemIndex <> nPair ) then
begin
if nPair > -1 then
begin
//-----------Pour la connexion
LDevice := FPairedDevices[ nPair ] as TBluetoothDevice;
FSocket := LDevice.CreateClientSocket( StringToGUID( FServiceGUID ), False);
//-----------Pour la connexion
if FSocket <> nil then
begin
ItemIndex := nPair;
FSocket.Connect;
// ToReceive := TEncoding.UTF8.GetBytes( sData );
ToReceive := FSocket.ReceiveData;; //TBytes
//StrReceive := ByteToStr(ToReceive);
StrReceive := TEncoding.UTF8.GetString(ToReceive);
result := StrReceive; //Probleme renvoie un 3??????? en plus
end
else
ShowMessage('Out of time -15s-Sorry-');
end
else
ShowMessage('No paired device selected');
end
else
begin
ToReceive := FSocket.ReceiveData;; // FSocket.ReceiveData
StrReceive := ByteToStr(ToReceive);
result := StrReceive;
end;
except
on E : Exception do
begin
ShowMessage(E.Message);
FreeAndNil(FSocket);
end;
end;
end; |