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.

[参考译文] CCS/CC2564MODA:Spple 程序

Guru**** 2591010 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/765954/ccs-cc2564moda-spple-program

器件型号:CC2564MODA

工具/软件:Code Composer Studio

主席先生,谢谢你的答复。

当我尝试使用命令调用时、这些例程演示代码会正常工作、正如您发送的链接中提到的那样。 现在,我尝试修改代码,作为我在 一个板中的要求,我将其配置为服务器, 注册了 spple 服务、并广播了正在工作的单个服务。在另一个板中、我配置为客户端和连接、当我尝试配置为发现时、它显示为错误、这意味着它不显示设备信息、但在我尝试时、此函数显示为不显示设备信息 命令调用可以正常工作、但当我尝试通过 API 调用进行更改时、它不起作用、那么您能告诉我是否需要在程序中更改此函数的任何内容。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否提供控制台日志及其故障的确切位置? 通常、为了进行定制、我们建议与第三方供应商 Cloud2 GND 进行检查。

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    这是客户端程序
    int 初始化应用程序(HCI_DriverInformation_t * HCI_DriverInformation、BTPS_Initialization_t * BTPS_Initialization)

    int ret_val = application_error_unable 至_open_stack;

    /*接下来,确保传递的驱动程序信息显示为*/
    /*半有效。 *
    if ((HCI_DriverInformation)&&(BTPS_Initialization))

    /*尝试打开堆栈并检查它是否成功。 *
    if (!OpenStack (HCI_DriverInformation、BTPS_Initialization))

    /*首先,尝试将设备设置为可连接。 *
    RET_val = SetConnect();

    /*接下来,检查设备是否成功制作 *
    /*可连接。 *
    if (!ret_val)

    /*现在设备是可连接的,请尝试使其成为*/
    /*可发现。 *
    RET_val = SetDisc();

    /*接下来,检查设备是否成功制作*/
    /*可发现。 *
    if (!ret_val)

    /*现在设备是可发现的尝试使其成为*/
    /*可配对。 *
    RET_val = SetPairable();
    if (!ret_val)

    /*尝试注册 HCI 事件回调。 *
    RET_val = HCI_Register_Event_Callback (BluetoothStackID、HCI_Event_Callback、(无符号长整型) NULL);
    if (ret_val >0)

    /*重新启动用户界面选择。 *
    // UI_Mode = UI_MODE_SELECT;
    UI_Mode = UI_MODE_IS_CLIENT;

    /*设置选择接口。 *
    // userinterface_selection();
    userinterface_Client();

    /*显示第一个命令提示符。 *
    DisplayPrompt();

    /*将成功返回给呼叫者。 *
    RET_val =(int) BluetoothStackID;


    其他
    DisplayFunctionError ("SetPairable"、RET_val);

    其他
    DisplayFunctionError ("SetDisc"、RET_val);

    其他
    DisplayFunctionError ("SetDisc"、RET_val);

    /*在某些错误中发生,然后关闭堆栈。 *
    if (ret_val < 0)

    /*关闭蓝牙堆栈。 *
    CloseStack();


    其他

    /*尝试打开堆栈时出错。 *
    显示("无法打开堆栈。\r\n);


    其他
    RET_val = application_error_inval_parameters;
    ConnectLE(NULL);
    DiscoverSPPLE (空);
    return (ret_val);

    静态 int ConnectLE (参数列表_t *温度参数)

    内部 RET_val;
    BD_ADDR_t BD_ADDR;
    char address[12]="0017e9e578b7";
    GAP_LE_Address_Type_t Address_Type;

    /*首先,检查是否存在有效的蓝牙堆栈 ID。 *
    if (蓝牙 StackID)

    /*接下来,确保存在有效的设备地址。 *
    // if ((TempParam)&&(TempParam->NumberofParameters >0)&&(TempParam->Params[0].strParam)&&(BTPS_StringLength (TempParam->Params[0].strParam)>=(sizeof (BD_ADDR_t)*2)))))
    //{
    /*检查是否指定了地址类型。 *
    // if (TempParam->NumberofParameters >=2)
    //{
    // if (TempParam->Params[1].intParam)
    // Address_Type = latRandom;
    //else
    // Address_Type = latPublic;
    //}
    //else
    address_Type = latPublic;

    /*将参数转换为蓝牙设备地址。 *
    StrToBD_ADDR (地址、&BD_ADDR);在这里、我将更改为远程蓝牙地址。

    if (!ConnectLEDevice (BluetoothStackID、Address_Type、BD_ADDR、false))
    RET_val = 0;
    其他
    RET_val = function_error;
    //}
    //else
    //{
    /*指定的参数无效,因此向用户标记错误。 *
    // DisplayUsage ("ConnectLE [BD_ADDR][地址类型(0 =公共/默认、1 =随机)可选]");

    /*标记在提交命令时发生错误。 *
    //ret_val = inval_parameters_error;
    //}

    其他

    /*不存在有效的蓝牙堆栈 ID。 *
    RET_val = INVALID_STACK_ID_ERROR;


    return (ret_val);

    静态 int DiscoverSPPLE (参数列表_t *温度参数)

    内部 RET_val;
    内部 LEConnectionIndex;
    BD_ADDR_t BD_ADDR;
    GATT_UUUUID_t UUUID[1];
    DeviceInfo_t *设备信息;
    char address[12]="0017e9e578b7";

    /*接下来,确保存在有效的设备地址。 *
    // if ((TempParam)&&(TempParam->NumberofParameters >0)&&(TempParam->Params[0].strParam)&&(BTPS_StringLength (TempParam->Params[0].strParam)>=(sizeof (BD_ADDR_t)*2)))))
    //{
    /*将参数转换为蓝牙设备地址。 *
    StrToBD_ADDR (地址、&BD_ADDR);

    /*找到此连接的 LE 连接索引。 *
    if ((LEConnectionIndex = FindLEIndexByAddress (BD_ADDR))>= 0)

    /*获取连接设备的设备信息。 *
    if ((DeviceInfo = SearchDeviceInfoEntryByBD_ADDR (&DeviceInfoList、LEContextInfo[LEConnectionIndex].ConnectionBD_ADDR))!= NULL)

    显示("正在尝试搜索。\r\n);

    /*验证没有针对此服务发现的未完成*/
    /*设备。 *
    if (!(DeviceInfo->Flags & DEVICE_INFO_FLAGS_SERVICE_DISCOVERY))

    /*配置过滤器,以便仅使用 SPP LE 服务*/
    /*已发现。 *
    UUUID[0].UUUID_Type = guUUID_128;
    SPPLE_ASSIGT_SPPLE_SERVICE_UUUUID_128 (&(UUUID[0].UUID_UUID_128));

    /*启动服务发现过程。 *
    RET_val = GATT_Start_Service_Discovery (BluetoothStackID、LEContextInfo[LEConnectionIndex].ConnectionID、(sizeof (UUID)/sizeof (GATT_UUID_t))、UUID、GATT_Service_Discovery_Event_Callback、 0);
    if (!ret_val)

    /*显示成功消息。 *
    显示("GATT_Start_Service_Discovery 成功。\r\n);

    /*标记服务发现操作 *
    /*出色。 *
    DeviceInfo->Flags |= DEVICE_INFO_FLAGS_SERVICE_DISCOVERY;

    其他

    /*发生错误,因此只需清理即可。 *
    显示("错误- GATT_Start_Service_Discovery 返回%d.\r\n\r\n、ret_val);

    RET_val = function_error;


    其他

    显示("设备的服务发现操作超研。\r\n);

    RET_val = function_error;


    其他

    显示("无设备信息。\r\n);

    RET_val = function_error;


    其他

    /*不匹配 ConnectionBD_ADDR。 *
    显示("不存在与 BD_ADDR %s 的连接。\r\n、TempParam->Params[0].strParam);

    RET_val = function_error;

    //}
    //else
    //{
    /*指定的参数无效,因此向用户标记错误。 *
    //显示(("用法:DiscoverSPPLE [BD_ADDR]。\r\n");

    /*标记在提交命令时发生错误。 *
    //ret_val = inval_parameters_error;
    //}

    return (ret_val);

    这是客户端日志:
    Openstack()。
    HCI_VS_InitializeAfterHCIReset
    VS_Update_UART_Baud 速率成功。
    HCI_VS_InitializeAfterHCIReset 成功
    蓝牙堆栈 ID:1.
    器件芯片组:4.1。
    BD_ADDR:0xcc78ab63bdc0

    (二
    *命令选项常规:帮助、GetLocalAddress、SetBaudRate *
    * 退出、 *
    *命令选项 BR/EDR:查询、DisplayInquiryList、Pair、*
    * EndPairing、PINCodeResponse、 *
    * PassKeyResponse、 *
    * UserConfirmationResponse、 *
    * SetDiscoverabilityMode、 *
    * SetConnecttabilityMode、 *
    * SetPairabilityMode、 *
    * ChangeSimplePairingParameters、 *
    * GetLocalName、SetLocalName、 *
    * GetClassOfDevice、SetClassOfDevice、*
    * GetRemoteName、SniffMode、 *
    * ExitSniffMode、打开、关闭、读取、 *
    * 写入、GetConfigParams、 *
    * SetConfigParams、GetQueueParams、 *
    * DisplayRawModeData、AutomaticReadMode、*
    * SetQueueParams、环回、 *
    * CBSend。 *
    *命令选项 GAPLE:SetDiscoverabilityMode、 *
    * SetConnecttabilityMode、 *
    * SetPairabilityMode、 *
    * ChangePairingParameters、 *
    * AdvertiseLE、StartScanning、 *
    * StopScanning、ConnectLE、 *
    * DisconnectLE、PairLE、 *
    * LEPassKeyResponse、 *
    * QueryEncryptionMode、SetPasskey、 *
    * DiscoverGAPS、GetLocalName、 *
    * SetLocalName、GetLERemoteName、 *
    * SetLocalAppearance、 *
    * GetLocalAppearance、 *
    * GetRemoteAppearance、 *
    *命令选项 SPPLE:DiscoverSPPLE、RegisterSPPLE、LESend、*
    * 配置 SPPLE、LERead、环回、 *
    * DisplayRawModeData、AutomaticReadMode *
    (二

    SPP+LE>连接请求成功。
    无设备信息。 //它不显示任何设备信息。

    大小为16的 etLE_Connection_Complete。
    状态: 0x00。
    角色: 主器件。
    地址类型:public。
    BD_ADDR: 0x0017e9e578b7。

    SPP+LE>
    大小为16的 etGATT_Connection_Device_Connection:
    连接 ID:1.
    连接类型:LE。
    远程设备:0x0017e9e578b7。
    连接 MTU:23。

    SPP+LE>
    Exchange MTU 响应。
    连接 ID:1.
    交易 ID:1.
    连接类型:LE。
    BD_ADDR: 0x0017e9e578b7。
    MTU: 131.

    SPP+LE>
    SPP+LE>[A

    这是服务器端程序:

    int 初始化应用程序(HCI_DriverInformation_t * HCI_DriverInformation、BTPS_Initialization_t * BTPS_Initialization)

    int ret_val = application_error_unable 至_open_stack;

    /*接下来,确保传递的驱动程序信息显示为*/
    /*半有效。 *
    if ((HCI_DriverInformation)&&(BTPS_Initialization))

    /*尝试打开堆栈并检查它是否成功。 *
    if (!OpenStack (HCI_DriverInformation、BTPS_Initialization))

    /*首先,尝试将设备设置为可连接。 *
    RET_val = SetConnect();

    /*接下来,检查设备是否成功制作 *
    /*可连接。 *
    if (!ret_val)

    /*现在设备是可连接的,请尝试使其成为*/
    /*可发现。 *
    RET_val = SetDisc();

    /*接下来,检查设备是否成功制作*/
    /*可发现。 *
    if (!ret_val)

    /*现在设备是可发现的尝试使其成为*/
    /*可配对。 *
    RET_val = SetPairable();
    if (!ret_val)

    /*尝试注册 HCI 事件回调。 *
    RET_val = HCI_Register_Event_Callback (BluetoothStackID、HCI_Event_Callback、(无符号长整型) NULL);
    if (ret_val >0)

    /*重新启动用户界面选择。 *
    // UI_Mode = UI_MODE_SELECT;
    UI_Mode = UI_MODE_IS_CLIENT;

    /*设置选择接口。 *
    // userinterface_selection();
    userinterface_Client();

    /*显示第一个命令提示符。 *
    DisplayPrompt();

    /*将成功返回给呼叫者。 *
    RET_val =(int) BluetoothStackID;


    其他
    DisplayFunctionError ("SetPairable"、RET_val);

    其他
    DisplayFunctionError ("SetDisc"、RET_val);

    其他
    DisplayFunctionError ("SetDisc"、RET_val);

    /*在某些错误中发生,然后关闭堆栈。 *
    if (ret_val < 0)

    /*关闭蓝牙堆栈。 *
    CloseStack();


    其他

    /*尝试打开堆栈时出错。 *
    显示("无法打开堆栈。\r\n);


    其他
    RET_val = application_error_inval_parameters;
    RegisterSPPLE (空);
    AdvertiseLE (空);
    return (ret_val);


    服务器端记录:

    Openstack()。
    HCI_VS_InitializeAfterHCIReset
    VS_Update_UART_Baud 速率成功。
    HCI_VS_InitializeAfterHCIReset 成功
    蓝牙堆栈 ID:1.
    器件芯片组:4.1。
    BD_ADDR:0xcc78ab63bdc0

    (二
    *命令选项常规:帮助、GetLocalAddress、SetBaudRate *
    * 退出、 *
    *命令选项 BR/EDR:查询、DisplayInquiryList、Pair、*
    * EndPairing、PINCodeResponse、 *
    * PassKeyResponse、 *
    * UserConfirmationResponse、 *
    * SetDiscoverabilityMode、 *
    * SetConnecttabilityMode、 *
    * SetPairabilityMode、 *
    * ChangeSimplePairingParameters、 *
    * GetLocalName、SetLocalName、 *
    * GetClassOfDevice、SetClassOfDevice、*
    * GetRemoteName、SniffMode、 *
    * ExitSniffMode、打开、关闭、读取、 *
    * 写入、GetConfigParams、 *
    * SetConfigParams、GetQueueParams、 *
    * DisplayRawModeData、AutomaticReadMode、*
    * SetQueueParams、环回、 *
    * CBSend。 *
    *命令选项 GAPLE:SetDiscoverabilityMode、 *
    * SetConnecttabilityMode、 *
    * SetPairabilityMode、 *
    * ChangePairingParameters、 *
    * AdvertiseLE、StartScanning、 *
    * StopScanning、ConnectLE、 *
    * DisconnectLE、PairLE、 *
    * LEPassKeyResponse、 *
    * QueryEncryptionMode、SetPasskey、 *
    * DiscoverGAPS、GetLocalName、 *
    * SetLocalName、GetLERemoteName、 *
    * SetLocalAppearance、 *
    * GetLocalAppearance、 *
    * GetRemoteAppearance、 *
    *命令选项 SPPLE:DiscoverSPPLE、RegisterSPPLE、LESend、*
    * 配置 SPPLE、LERead、环回、 *
    * DisplayRawModeData、AutomaticReadMode *
    (二

    SPP+LE>成功注册的 SPPLE 服务。
    GAP_LE_Advertising_Enable 成功。

    大小为16的 etLE_Connection_Complete。
    状态: 0x00。
    角色: 主器件。
    地址类型:public。
    BD_ADDR: 0x0017e9e578b7。

    SPP+LE>
    大小为16的 etGATT_Connection_Device_Connection:
    连接 ID:1.
    连接类型:LE。
    远程设备:0x0017e9e578b7。
    连接 MTU:23。

    SPP+LE>
    Exchange MTU 响应。
    连接 ID:1.
    交易 ID:1.
    连接类型:LE。
    BD_ADDR: 0x0017e9e578b7。
    MTU: 131.

    SPP+LE>
    SPP+LE>[A
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    仍然是个问题。。。 从中、您的另一个线程似乎现在可以连接、但在平板电脑中接收数据时会丢失一些数据? 如果是、让我们关闭这个线程。

    谢谢