> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify GAP functions

> Bluetooth Low Energy GAP is an extension of the existing BR/EDR GAP.

<a id="bluez-gap" />

To perform Bluetooth GAP functions, you must first complete the steps in the following procedure.

## Prerequisites

* Enable SSH to access your host device. For instructions, see <a href="https://dragonwingdocs.qualcomm.com/Key-Documents/Flash-Guide/how-to-sign-in-with-ssh" target="_self">Sign in using SSH</a>.

* Place the device under test (DUT) and the remote device in the Bluetooth vicinity.

## Set up the device for Bluetooth GAP functions

1. Run the SSH in command prompt using the following command:

   ```text theme={null}
   ssh root@<device_IP_address>
   ```

   **Example**

   If the IP address of the device is `10.92.160.222`, run the following command:

   ```text theme={null}
   ssh root@10.92.160.222
   ```

2. Connect to the SSH by entering the following password:

   ```text theme={null}
   oelinux123
   ```

3. Open the Bluetooth test application by running the following command:

   ```text theme={null}
   bluetoothctl
   ```

   **Sample output**

   ```text theme={null}
   sh-5.1# bluetoothctl
   Agent registered        uetoothd...
   [CHG] Controller 22:22:F1:C1:99:C0 Pairable: yes
   ```

   * To view GAP functions, run the following command:

     ```text theme={null}
     help
     ```

     This command provides the main menu of **bluetoothctl**. The main menu includes the submenus and GAP functions. To perform GAP functions, see <a href="perform-bluetooth-gap-functions" target="_self">Perform Bluetooth GAP functions</a>.

     **Sample output**

     ```text theme={null}
     [bluetooth]# help
     Menu main:
     Available commands:
     -------------------
     advertise                                         Advertise Options Submenu
     monitor                                           Advertisement Monitor Options Submenu
     scan                                              Scan Options Submenu
     gatt                                              Generic Attribute Submenu
     admin                                             Admin Policy Submenu
     player                                            Media Player Submenu
     endpoint                                          Media Endpoint Submenu
     transport                                         Media Transport Submenu
     list                                              List available controllers
     show [ctrl]                                       Controller information
     select <ctrl>                                     Select default controller
     devices [Paired/Bonded/Trusted/Connected]         List available devices, with an optional property as the filter
     system-alias <name>                               Set controller alias
     reset-alias                                       Reset controller alias
     power <on/off>                                    Set controller power
     pairable <on/off>                                 Set controller pairable mode
     discoverable <on/off>                             Set controller discoverable mode
     discoverable-timeout [value]                      Set discoverable timeout
     agent <on/off/capability>                         Enable/disable agent with given capability
     default-agent                                     Set agent as the default one
     advertise <on/off/type>                           Enable/disable advertising with given type
     set-alias <alias>                                 Set device alias
     scan <on/off/bredr/le>                            Scan for devices
     info [dev]                                        Device information
     pair [dev]                                        Pair with device
     cancel-pairing [dev]                              Cancel pairing with device
     trust [dev]                                       Trust device
     untrust [dev]                                     Untrust device
     block [dev]                                       Block device
     unblock [dev]                                     Unblock device
     remove <dev>                                      Remove device
     connect <dev>                                     Connect device
     disconnect [dev]                                  Disconnect device
     menu <name>                                       Select submenu
     version                                           Display version
     quit                                              Quit program
     exit                                              Quit program
     help                                              Display help about this program
     export                                            Print environment variables
     ```

   * To verify the state of Bluetooth on the device, run the following command:

     ```text theme={null}
     show
     ```

     **Sample output**

     ```text theme={null}
     [bluetooth]# show
     Controller 8C:FD:F0:21:84:23 (public)
              Name: qcs9100-ride-sx
              Alias: qcs9100-ride-sx
              Class: 0x00000000
              Powered: no
              Discoverable: no
              DiscoverableTimeout: 0x000000b4
              Pairable: yes
              UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
              UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
              UUID: Message Access Server     (00001132-0000-1000-8000-00805f9b34fb)
              UUID: Message Notification Se.. (00001133-0000-1000-8000-00805f9b34fb)
              UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
              UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
              UUID: Phonebook Access Server   (0000112f-0000-1000-8000-00805f9b34fb)
              UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
              UUID: OBEX File Transfer        (00001106-0000-1000-8000-00805f9b34fb)
              UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
              UUID: IrMC Sync                 (00001104-0000-1000-8000-00805f9b34fb)
              UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
              UUID: OBEX Object Push          (00001105-0000-1000-8000-00805f9b34fb)
              Modalias: usb:v1D6Bp0246d0541
              Discovering: no
              Roles: central
              Roles: peripheral
     Advertising Features:
              ActiveInstances: 0x00 (0)
              SupportedInstances: 0x10 (16)
              SupportedIncludes: tx-power
              SupportedIncludes: appearance
              SupportedIncludes: local-name
              SupportedSecondaryChannels: 1M
              SupportedSecondaryChannels: 2M
              SupportedSecondaryChannels: Coded
     ```

## Next steps

### <a href="perform-bluetooth-gap-functions" target="_self">Perform Bluetooth GAP functions</a>

You can perform various Bluetooth GAP functions using the commands provided in the main menu of **bluetoothctl**. Bluetooth GAP functions include enabling and disabling Bluetooth, running and stopping inquiry scans to discover nearby devices, and enabling device discovery mode. GAP also supports pairing with remote Bluetooth devices, viewing the list of bonded or paired devices, and unpairing of devices.
