# 通用属性配置文件

Source: [https://docs.qualcomm.com/doc/80-70017-13SC/topic/set_up_ble_gatt.html](https://docs.qualcomm.com/doc/80-70017-13SC/topic/set_up_ble_gatt.html)

GATT 是一个服务框架，它使用 ATT 来发现服务，并在对等设备上读写特征值。

要执行低功耗蓝牙 GATT 服务器或客户端功能，必须首先完成以下过程中的步骤。

## 为低功耗蓝牙 GATT 功能设置设备

**前提条件**

- 启用 SSH 以访问您的主机设备。相关说明，可参见[使用 SSH 登录](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/how_to.html#use-ssh)。
- 将 DUT 和远程设备放置在蓝牙附近。

**步骤**

1. 在命令提示符下使用以下命令运行 SSH： 

        ssh root@<device_IP_address>Copy to clipboard

    **示例**

如果设备的 IP 地址为 `10.92.160.222`，则运行以下命令：

        ssh root@10.92.160.222Copy to clipboard
2. 输入以下密码来连接 SSH： 

        oelinux123Copy to clipboard
3. 通过运行以下命令打开蓝牙测试应用程序： 

        btappCopy to clipboard

    **示例输出**

sh-5.1# btapp
         get_ap_interface
        :: get_ap_interface
        
        ***************** Menu *******************
                 gap_menu
                 test_menu
                 a2dp_sink_menu
                 hfp_client_menu
                 gattctest_menu
                 gattstest_menu
                 hogp_menu
                 hfp_ag_menu
                 a2dp_source_menu
                 spp_client_menu
                 spp_server_menu
                 eslap_menu
                 exit
         ******************************************Copy to clipboard
4. 按如下方式启用蓝牙：
    1. 运行以下命令转至 Gap Menu： 

            gap_menuCopy to clipboard
    2. 运行以下命令，启用蓝牙： 

            enableCopy to clipboard

        **示例输出**

gap_menu
            
            ***************** Menu *******************
                     enable
                     disable
                     inquiry
                     cancel_inquiry
                     get_role_req<space><bt_address>     eg. get_role_req 00:11:22:33:44:55
                     pair<space><bt_address><space><transport>     eg. pair 00:11:22:33:44:55 0(auto)/1(BREDR)/2(BLE)
                     unpair<space><bt_address>     eg. unpair 00:11:22:33:44:55
                     inquiry_list
                     bonded_list
                     get_state
                     get_bt_name
                     get_bt_address
                     set_bt_name<space><bt name>     eg. set_bt_name MDM_Fluoride
                     set_scan_mode<space><scan mode value (range 0-2)>     eg. set_scan_mode 0 --0-BT_SCAN_MODE_NONE,1- BT_SCAN_MODE_CONNECTABLE,2-BT_SCAN_MODE_CONNECTABLE_DISCOVERABLE
                     set_afh<space><AFH_Host_Channel_Classification>     eg. set_afh 112233445566778899f0
                     send_hci_cmd<space><hci_cmd>     eg. send_hci_cmd 01,04,05,33,8b,9e,0a,00 - For Inquiry
                     read_clock<space><which_clock range(0-1)><space><bt_address>     eg. read_clock 0(local)/1(acl connection) 00:11:22:33:44:55
                     main_menu
                     switch_role_req<bt_address><space><new_role>     eg. switch_role_req 00:11:22:33:44:55 0 or get_role_req 00:11:22:33:44:55 1
             ******************************************
            enable
             current State = 0, new state = 1
             BT State is ONCopy to clipboard
    3. 通过运行以下命令返回到 Main Menu： 

            main_menuCopy to clipboard
5. 根据需要转至 GATT 服务器或客户端菜单。
    - 要转到 GATT 服务器菜单，运行以下命令：

            gattstest_menuCopy to clipboard

        **示例输出**

main_menu
            ***************** Menu *******************
                     gap_menu
                     test_menu
                     a2dp_sink_menu
                     hfp_client_menu
                     gattctest_menu
                     gattstest_menu
                     hogp_menu
                     hfp_ag_menu
                     a2dp_source_menu
                     spp_client_menu
                     spp_server_menu
                     eslap_menu
                     exit
             ******************************************
            gattstest_menu
            
            ***************** Menu *******************
                     gattstest_init_server (only for Init time)
                     gattstest_addservers
                     gattstest_addservices<space><server instance><space><service instance>
                     gattstest_init_advertiser initialzes advertiser
                     gattstest_start_advertiser<space><server instance>
                     gattstest_readphy<space><remote address><server instance>
                     gattstest_set_preferred_phy<space><remote address><space><server instance><space><tx phy><space><rx phy><space><phy opt>
                     gattstest_stop<space><server_instance>
                     gattstest_disable
                     gattstest_cancel_connection<space><remote address>
                     gattstest_unregister_server<space><server instance>
                     main_menu
             ******************************************Copy to clipboard

        关于 GATT 服务器功能，请参阅[执行低功耗蓝牙 GATT 服务器功能](https://docs.qualcomm.com/doc/80-70017-13SC/topic/perform_ble_gatt_server_functions.html)。
    - 要转到 GATT 客户端菜单，运行以下命令：

            gattctest_menuCopy to clipboard

        **示例输出**

main_menu
            
            ***************** Menu *******************
                     gap_menu
                     test_menu
                     a2dp_sink_menu
                     hfp_client_menu
                     gattctest_menu
                     gattstest_menu
                     hogp_menu
                     hfp_ag_menu
                     a2dp_source_menu
                     spp_client_menu
                     spp_server_menu
                     eslap_menu
                     exit
             ******************************************
            gattctest_menu
            
            ***************** Menu *******************
                     gattctest_init (only for Init time)
                     gattctest_scanset<space><scan_type><space><value>         eg: scanType: 0-NO_SET,1-SCAN_MODE,2-CB_Type,3-RESULT_TYPE,4-PHY,5-LEGACY,6-REPORT_DELAY,7-NUM_RESPONSE
                     gattctest_scanFilter<space><filter_type><space><filter_Value>         eg: filterType: 0-NO_FILT,1-FILT_BD_ADDR,2-FILT_DEV_NAME,3-FILT_SRVC_UUID
                     gattctest_scanFilter_manData<space><manuId><space><ManuData><space><ManuMask>
                     gattctest_start_scan
                     gattctest_stop_scan
                     gattctest_batch_scan  0-FULL MODE 1- TRUNCATED MODE
                     main_menu
                     gattctest_conn_params<space><isAuto><space><phy><space><isOppur>         eg: isAuto(0/1);phy (0-255 (0 bit:1M(1); 1bit:2M(2); 2bit:Coded(4); or any combination); isOppur(0/1))
                     gattctest_connect<space><bt_address><space><transport>         eg. gattctest_connect 00:11:22:33:44:55 0(Auto)/1(BREDR)/2(LE)
                     gattctest_disconnect<space><bt_address>           eg.gattctest_connect 00:11:22:33:44:55
                     gattctest_discsrvc<space><bdaddr>  discovering services
                     gattctest_rdchar_uuid<space><bdaddr><space><uuid>         eg: reading char by uuid
                     gattctest_readPhy<space><bt_address>
                     gattctest_readrssi<space><bt_address>
                     gattctest_reqMtu<space><bt_address><space><value>
                     gattctest_refresh<space><bt_address>
                     gattctest_setphy<space>          <TxValue(0-255,(0 bit:1M(1); 1bit:2M(2); 2bit:Coded(4); or any combination))><space><RxValue(0-255)><space><PhyOpt(0:no pref,1:s2,2:s8)><space><bt_address>
                     gattctest_getservices<space><bt_address>
                     gattctest_reqconn_pri<space><bt_address><space><priority 0/1/2>
                     gattctest_getcharid<space><bt_address><space><instanceid>
                     gattctest_reliablewrite<space><bt_address><space><instanceid>
                     gattctest_getdescid<space><bt_address><space><instanceid>
                     gattctest_getsrvc<space><bt_address><space><UUID><space><INSTANCEID>
                     gattctest_RdWrDesc<space><bt_address><space><R-2/W-1><space><value><space><INSTANCEID><space><value length>
                     gattctest_RdWrchar<space><bt_address><space><R-2/W-1><space><value><space><INSTANCEID><space><value length>
                     gattctest_conn_dev
                     gattctest_register_notifications<space><bt_address><space><CHARINSTANCEID><space><DESCINSTANCEID><space><E-1/D-0>
             ******************************************Copy to clipboard

        关于 GATT 客户端功能，请参阅[执行低功耗蓝牙 GATT 客户端功能](https://docs.qualcomm.com/doc/80-70017-13SC/topic/perform_ble_gatt_client_functions.html)。

- **[执行低功耗蓝牙 GATT 服务器功能](https://docs.qualcomm.com/doc/80-70017-13SC/topic/perform_ble_gatt_server_functions.html)**  

您可以使用 `gattstest_menu` 选项执行蓝牙低功耗 GATT 服务器功能。
- **[执行低功耗蓝牙 GATT 客户端功能](https://docs.qualcomm.com/doc/80-70017-13SC/topic/perform_ble_gatt_client_functions.html)**  

您可以使用 `gattctest_menu` 选项执行蓝牙低功耗 GATT 客户端功能。
- **[GATT 配置参数](https://docs.qualcomm.com/doc/80-70017-13SC/topic/gatt_config_params.html)**  

要配置 GATT 服务器和客户端功能，使用服务器、客户端和扫描参数。

**上一级主题：** [验证 Fluoride 堆栈的功能](https://docs.qualcomm.com/doc/80-70017-13SC/topic/bluetooth_usecases.html)

Last Published: Jan 23, 2025

[Previous Topic
执行蓝牙 SPP 客户端功能](https://docs.qualcomm.com/bundle/publicresource/80-70017-13SC/topics/perform_bluetooth_functions_in_spp_client.md) [Next Topic
执行低功耗蓝牙 GATT 服务器功能](https://docs.qualcomm.com/bundle/publicresource/80-70017-13SC/topics/perform_ble_gatt_server_functions.md)