This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/CC2564:如何将已知蓝牙地址写入 SPPDemo 客户端模式中查询列表中的查询索引?

Guru**** 2589280 points
Other Parts Discussed in Thread: CC2564

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/832344/compiler-cc2564-how-to-write-a-known-bluetooth-address-into-inquiry-index-in-inquiry-list-in-client-mode-of-sppdemo

器件型号:CC2564

工具/软件:TI C/C++编译器

您好:

     我使用 CC2564B 的 TI SPPdemo,现在我将 CC2564B 终端设置为客户端 、并使用命令 SetPairability Mode 2、SetDiscoverabilityMode 2、SetConnectabilityMode 1。

    首先、在"客户端>"提示符下、输入 "查询"。 这将启动查询过程。 完成后、我将获得所有已发现器件的列表。然后  找到我需要连接的器件的索引号。

   问题:

   在查询之前、我通过扫描器获得了连接设备的蓝牙地址、但如何将蓝牙地址指向查询索引、而不是通过查询命令?

   目前、我无法为 以下程序。分配已知的蓝牙地址给 GAP_Inquiry_Data[0].BD_ADDR

在 ReceiveData_BUF 中、已采集连接设备的蓝牙地址被存储

PDA_BR_Addr[0]= 0x30;
PDA_BR_Addr[1]=0x78;
PDA_BR_Addr[2]=接收数据_BUF[23];
PDA_BR_Addr[3]=ReceiveData_BUF[24];
PDA_BR_Addr[4]=ReceiveData_BUF[26];
PDA_BR_Addr[5]=接收数据_BUF[27];
PDA_BR_Addr[6]= ReceiveData_BUF[29];
PDA_BR_Addr[7]=接收数据_BUF[30];
PDA_BR_Addr[8]=接收数据_BUF[32];
PDA_BR_Addr[9]= ReceiveData_BUF[33];
PDA_BR_Addr[10]= ReceiveData_BUF[35];
PDA_BR_Addr[11]=ReceiveData_BUF[36];
PDA_BR_Addr[12]=ReceiveData_BUF[38];
PDA_BR_Addr[13]=ReceiveData_BUF[39];

STR_BUF[0]= PDA_BR_Addr[12];
STR_BUF[1]=PDA_BR_Addr[13];
Int_Str=TwoStr_To_Onebyte (str_buf);
GAP_Inquiry_Event_Data->GAP_Inquiry_Data[0].BD_ADDR.BD_ADDR0=Int_Str;
GAP_Event_Data->Event_Data.GAP_Inquiry_entry_Event_Data->BD_ADDR.BD_ADDR0=Int_Str;

STR_BUF[0]= PDA_BR_Addr[10];
STR_BUF[1]=PDA_BR_Addr[11];
Int_Str=TwoStr_To_Onebyte (str_buf);
GAP_Inquiry_Event_Data->GAP_Inquiry_Data[0].BD_ADDR.BD_ADDR1=Int_Str;
GAP_Event_Data->Event_Data.GAP_Inquiry_entry_Event_Data->BD_ADDR.BD_ADDR1=Int_Str;

STR_BUF[0]= PDA_BR_Addr[8];
STR_BUF[1]=PDA_BR_Addr[9];
Int_Str=TwoStr_To_Onebyte (str_buf);
GAP_Inquiry_Event_Data->GAP_Inquiry_Data[0].BD_ADDR.BD_ADD2=Int_Str;
GAP_Event_Data->Event_Data.GAP_Inquiry_entry_Event_Data->BD_ADDR.BD_ADD2=Int_Str;

STR_BUF[0]= PDA_BR_Addr[6];
STR_BUF[1]=PDA_BR_Addr[7];
Int_Str=TwoStr_To_Onebyte (str_buf);
GAP_Inquiry_Event_Data->GAP_Inquiry_Data[0].BD_ADDR.BD_Addr3=Int_Str;
GAP_Event_Data->Event_Data.GAP_Inquiry_entry_Event_Data->BD_ADDR.BD_Addr3=Int_Str;

STR_BUF[0]= PDA_BR_Addr[4];
STR_BUF[1]=PDA_BR_Addr[5];
Int_Str=TwoStr_To_Onebyte (str_buf);
GAP_Inquiry_Event_Data->GAP_Inquiry_Data[0].BD_ADDR.BD_Addr4=Int_Str;
GAP_Event_Data->Event_Data.GAP_Inquiry_entry_Event_Data->BD_ADDR.BD_Addr4=Int_Str;

STR_BUF[0]= PDA_BR_Addr[2];
STR_BUF[1]=PDA_BR_Addr[3];
Int_Str=TwoStr_To_Onebyte (str_buf);
GAP_Inquiry_Event_Data->GAP_Inquiry_Data[0].BD_ADDR_BD_Addr5=Int_Str;
GAP_Event_Data->Event_Data.GAP_Inquiry_entry_Event_Data->BD_ADDR.BD_Addr5=Int_Str;


BD_ADDRToStr (GAP_Event_Data->Event_Data.GAP_Inquiration_Entry_Event_Data->BD_ADDR、Callback_BoardStr);

调查结果列表[0]= GAP_Inquiry_Event_Data->GAP_Inquiry_Data[0]。BD_ADDR;
BD_ADDRToStr (GAP_Inquiry_Event_Data->GAP_Inquiration_Data[0].BD_ADDR、Callback_BoardStr);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果我理解正确、您需要扩展查询响应、这里是一个回答问题并指向 A3DP 示例的类似主题...

    此致、

    特拉维斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 tscheck:

      我已经使用了您提到的 EIR 方法、这与我的要求无关

    我的 CC2564蓝牙设备在客户端模式下工作。 它通过二维扫描引擎获取手机的蓝牙地址。 然后、CC2564蓝牙器件不想通过查询命令搜索蓝牙器件列表、但它需要服务发现和 OpenRemoteServer 命令在 CC2564蓝牙器件和已知移动电话之间建立蓝牙连接。 Service Discovery 和 OpenRemoteServer 命令中的参数需要查询索引。

    打开[查询索引][RFCOMM 服务器端口]

    SERVICEDISCOVERY [查询索引][配置文件索引]

    我的问题:

      我的 CC2564器件不想通过查询命令。我的 CC2564器件如何将已知蓝牙地址数据指向查询索引?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的澄清、现在您想做的事情是有意义的。  SPPDemo 并非构建为执行您之后的操作、而是使用查询表编写、并依靠它来执行 Open 命令。  但是,您可以修改 Open 命令本身,只需使用您已经知道的 MAC 地址,而根本不使用查询索引。  如果您需要帮助、请告知我们。

    此致、

    特拉维斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 tscheck

        我不熟悉蓝牙的 SPP 协议。 如果方便,请提供一个程序来修改 Open and ServiceDiscovery 命令本身,以便只使用您已经知道的 MAC 地址。在这种情况下,我不需要使用 Inquirylist。

       非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将有一名团队成员进入并帮助解决问题、但问题与 SPP 协议无关、这只是该特定演示的构建方式。

    此致、

    特拉维斯

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请允许我花些时间熟悉该示例。 如果不是第二天、我将尝试在明天作出回应。 感谢您的耐心等待。

    Jesu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    OpenRemoteServer 只是一种应用程序级功能。 通过在 SPPDemo.c 中修改此函数、您应该能够完成所需操作 请注意 函数中对 SPP_Open_Remote_Port 的调用、该调用从 InquiryResultList 获取结果。 我相信、修改此地址以使用您已经拥有的地址将解决您的问题。

    希望这对您有所帮助。

    Jesu