# Native Code > برنامه نویسی در Delphi > برنامه نویسی موبایل در Delphi >  ارتباط با ماجول بلوتوث HC-05

## asgarkz

سلام
من یک برنامه با دلفی XE8 و کامپوننت TBluetooth نوشته ام که اگر روی دو تا گوشی اندرویدی نصب بشه، میتونن برای هم ارسال و دریافت اطلاعات رو انجام بدن ولی وقتی با همین برنامه از روی یک گوشی اندرویدی میخوام اطلاعات رو به ماجول بلوتوث HC-05 ارسال کنم، دریافتی صورت نمیگیرد. دلیلش چی میتونه باشه؟

----------


## asgarkz

با تشکر از توجه دوستان، روال برنامه رو توضیح میدم تا شاید در حل مشکل مفید باشه

در ابتدا روال OpenSocket برای یکبار اجرا میشود و سپس روال SendData عملیات ارسال رشته را انجام می دهد


 type
  TServerConnectionTH = class(TThread)
  private
    { Private declarations }
    FServerSocket: TBluetoothServerSocket;
    FSocket: TBluetoothSocket;
    FData: TBytes;
  protected
    procedure Execute; override;
  public
    { Public declarations }
    constructor Create(ACreateSuspended: Boolean);
    destructor Destroy; override;
  end;

------------------

  TForm1 = class(TForm)
ComboBox1:  TComboBox;
  Bluetooth1: TBluetooth;
    ....
  private
    { Private declarations }
    zServerConnectionTH: TServerConnectionTH;
    zSocket: TBluetoothSocket;
    //--------------
    procedure OpenSocket;
    procedure SendData;
  public
    { Public declarations }
  end;

---------------------

procedure TForm1.OpenSocket;
begin
  if ((zServerConnectionTH = nil) and
      (Bluetooth1.ConnectionState = TBluetoothConnectionState.Connected)) then
  begin
    zServerConnectionTH := TServerConnectionTH.Create(True);
    zServerConnectionTH.FServerSocket :=
      Bluetooth1.CurrentAdapter.CreateServerSocket('Basi  c Text Server', StringToGUID('{B62C4E8D-62CC-404B-BBBF-BF3E3BBB1378}'), False);
    zServerConnectionTH.Start;
  end;
end;

--------------------

procedure TForm1.SendData;
var
  ToSend: TBytes;
  zDevice: TBluetoothDevice;
begin
  if (zSocket = nil) then
  begin
    zDevice := Bluetooth1.PairedDevices[ComboBox1.ItemIndex] as TBluetoothDevice;
    zSocket := zDevice.CreateClientSocket('{B62C4E8D-62CC-404B-BBBF-BF3E3BBB1378}', False);
    zSocket.Connect;
  end;
  ToSend := TEncoding.UTF8.GetBytes('test');
  zSocket.SendData(ToSend);
end;

----------


## ابوالفضل عباسی

عجیبه.ولی شاید کامپوننت بلوتوثی که دلفی داره استفاده میکنه،فقط میتونه با دیوایس های هم شکل خودش ارتباط برقرار کنه.بعیده،ولی ممکنه اینطوری باشه.چون ماژول بلوتوث هم مثل یک گوشی بلوتوثی می مونه که باید بتونه فایل send,receive کنه،ولی دلفی باهاش سازگاری نداره.

----------


## DAMAVAND

منم همین مشکل رو داشتم و هر چی سعی کردم نتوستنم حلش کنم!!! قاعدتا نباید هیچ فرقی باشه بین ماژول و گوشی برای دلفی!!!

----------


## asgarkz

سلام
خوشبختانه مشکل ارسال اطلاعات حل شد. کافیه سرویس پشتیبانی شده در ماجول HC-05 رو که ظاهرا سرویس سریال هست رو انتخاب کنیم و بعد  روال OpenSocket رو اجرا کنیم. اما همچنان مشکل دریافت باقیست

----------


## asgarkz

با تشکر از همه دوستان. برای دریافت هم از zSocket.ReceiveData استفاده کردم و مشکل حل شد

----------


## moj127

> با تشکر از همه دوستان. برای دریافت هم از zSocket.ReceiveData استفاده کردم و مشکل حل شد



آقا دمت گرم میتونی یه راهنمایی بکنی که دقیقا چیکار کردی؟
من هنوز توی ارتباط با ماژول مشکل دارم و نمیدونم باید چیکار کنم؟

----------

