aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools
diff options
context:
space:
mode:
authorFrédéric Danis <frederic.danis@collabora.com>2024-01-25 20:08:05 +0100
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2024-01-25 15:50:37 -0500
commit0de32f67f685b95c35a5c2f1206081af89bd88b6 (patch)
treedfa750bc4660db0c7edd5c68bf929476f951dfc2 /tools
parent647adf9260ff554a5b2907ce2c327a9d8b5bd258 (diff)
btgatt-client: Add function to search all primary services
This is requested to pass PTS GATT/CL/GAD/BV-01-C test.
Diffstat (limited to 'tools')
-rw-r--r--tools/btgatt-client.c30
1 files changed, 23 insertions, 7 deletions
diff --git a/tools/btgatt-client.c b/tools/btgatt-client.c
index 04fd3ce0fb..b47914da3d 100644
--- a/tools/btgatt-client.c
+++ b/tools/btgatt-client.c
@@ -1354,13 +1354,6 @@ static void cmd_set_sign_key(struct client *cli, char *cmd_str)
set_sign_key_usage();
}
-static void search_service_usage(void)
-{
- printf("Usage: search-service <uuid>\n"
- "e.g.:\n"
- "\tsearch-service 1800\n");
-}
-
static void search_service_cb(bool success, uint8_t att_ecode,
struct bt_gatt_result *result,
void *user_data)
@@ -1392,6 +1385,27 @@ static void search_service_cb(bool success, uint8_t att_ecode,
PRLOG("\n");
}
+static void cmd_search_all_primary_services(struct client *cli, char *cmd_str)
+{
+ if (!bt_gatt_client_is_ready(cli->gatt)) {
+ printf("GATT client not initialized\n");
+ return;
+ }
+
+ bt_gatt_discover_all_primary_services(bt_gatt_client_get_att(cli->gatt),
+ NULL,
+ search_service_cb,
+ NULL,
+ NULL);
+}
+
+static void search_service_usage(void)
+{
+ printf("Usage: search-service <uuid>\n"
+ "e.g.:\n"
+ "\tsearch-service 1800\n");
+}
+
static void cmd_search_service(struct client *cli, char *cmd_str)
{
char *argv[2];
@@ -1536,6 +1550,8 @@ static struct {
"\tSet retry on security error by elevating security"},
{ "set-sign-key", cmd_set_sign_key,
"\tSet signing key for signed write command"},
+ { "search-all-primary-services", cmd_search_all_primary_services,
+ "\tSearch all primary services"},
{ "search-service", cmd_search_service,
"\tSearch service"},
{ "search-characteristics", cmd_search_characteristics,