linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH BlueZ] Add device set-alias bluetoothctl command
@ 2016-09-02  9:08 Francois Beaufort
  2016-09-02  9:08 ` Francois Beaufort
  0 siblings, 1 reply; 7+ messages in thread
From: Francois Beaufort @ 2016-09-02  9:08 UTC (permalink / raw)
  To: linux-bluetooth

This patch adds support for setting a device alias from bluetoothctl.

Francois Beaufort (1):
  Add device set-alias bluetoothctl command

 client/main.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

-- 
2.7.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH BlueZ] Add device set-alias bluetoothctl command
  2016-09-02  9:08 Francois Beaufort
@ 2016-09-02  9:08 ` Francois Beaufort
  2016-09-02 14:14   ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 7+ messages in thread
From: Francois Beaufort @ 2016-09-02  9:08 UTC (permalink / raw)
  To: linux-bluetooth

---
 client/main.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/client/main.c b/client/main.c
index 9ba5a40..e1198a8 100644
--- a/client/main.c
+++ b/client/main.c
@@ -1666,6 +1666,30 @@ static void cmd_list_attributes(const char *arg)
 	gatt_list_attributes(g_dbus_proxy_get_path(proxy));
 }
 
+static void cmd_set_alias(const char *arg)
+{
+	char *name;
+
+	if (!arg || !strlen(arg)) {
+		rl_printf("Missing name argument\n");
+		return;
+	}
+
+	if (!default_dev) {
+		rl_printf("No device connected\n");
+		return;
+	}
+
+	name = g_strdup(arg);
+
+	if (g_dbus_proxy_set_property_basic(default_dev, "Alias",
+					DBUS_TYPE_STRING, &name,
+					generic_callback, name, g_free) == TRUE)
+		return;
+
+	g_free(name);
+}
+
 static void cmd_select_attribute(const char *arg)
 {
 	GDBusProxy *proxy;
@@ -2105,6 +2129,7 @@ static const struct {
 							dev_generator },
 	{ "list-attributes", "[dev]", cmd_list_attributes, "List attributes",
 							dev_generator },
+	{ "set-alias",    "<alias>",  cmd_set_alias, "Set device alias" },
 	{ "select-attribute", "<attribute>",  cmd_select_attribute,
 				"Select attribute", attribute_generator },
 	{ "attribute-info", "[attribute]",  cmd_attribute_info,
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH BlueZ] Add device set-alias bluetoothctl command
  2016-09-02  9:08 ` Francois Beaufort
@ 2016-09-02 14:14   ` Luiz Augusto von Dentz
  0 siblings, 0 replies; 7+ messages in thread
From: Luiz Augusto von Dentz @ 2016-09-02 14:14 UTC (permalink / raw)
  To: Francois Beaufort; +Cc: linux-bluetooth@vger.kernel.org

Hi Francois,

On Fri, Sep 2, 2016 at 12:08 PM, Francois Beaufort
<beaufort.francois@gmail.com> wrote:
> ---
>  client/main.c | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
>
> diff --git a/client/main.c b/client/main.c
> index 9ba5a40..e1198a8 100644
> --- a/client/main.c
> +++ b/client/main.c
> @@ -1666,6 +1666,30 @@ static void cmd_list_attributes(const char *arg)
>         gatt_list_attributes(g_dbus_proxy_get_path(proxy));
>  }
>
> +static void cmd_set_alias(const char *arg)
> +{
> +       char *name;
> +
> +       if (!arg || !strlen(arg)) {
> +               rl_printf("Missing name argument\n");
> +               return;
> +       }
> +
> +       if (!default_dev) {
> +               rl_printf("No device connected\n");
> +               return;
> +       }
> +
> +       name = g_strdup(arg);
> +
> +       if (g_dbus_proxy_set_property_basic(default_dev, "Alias",
> +                                       DBUS_TYPE_STRING, &name,
> +                                       generic_callback, name, g_free) == TRUE)
> +               return;
> +
> +       g_free(name);
> +}
> +
>  static void cmd_select_attribute(const char *arg)
>  {
>         GDBusProxy *proxy;
> @@ -2105,6 +2129,7 @@ static const struct {
>                                                         dev_generator },
>         { "list-attributes", "[dev]", cmd_list_attributes, "List attributes",
>                                                         dev_generator },
> +       { "set-alias",    "<alias>",  cmd_set_alias, "Set device alias" },
>         { "select-attribute", "<attribute>",  cmd_select_attribute,
>                                 "Select attribute", attribute_generator },
>         { "attribute-info", "[attribute]",  cmd_attribute_info,
> --
> 2.7.0

Applied, thanks.

-- 
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH BlueZ] Add device set-alias bluetoothctl command
  2016-09-20 13:12 Francois Beaufort
@ 2016-09-20 13:12 ` Francois Beaufort
  0 siblings, 0 replies; 7+ messages in thread
From: Francois Beaufort @ 2016-09-20 13:12 UTC (permalink / raw)
  To: linux-bluetooth

---
 client/main.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/client/main.c b/client/main.c
index 9ba5a40..e1198a8 100644
--- a/client/main.c
+++ b/client/main.c
@@ -1666,6 +1666,30 @@ static void cmd_list_attributes(const char *arg)
 	gatt_list_attributes(g_dbus_proxy_get_path(proxy));
 }
 
+static void cmd_set_alias(const char *arg)
+{
+	char *name;
+
+	if (!arg || !strlen(arg)) {
+		rl_printf("Missing name argument\n");
+		return;
+	}
+
+	if (!default_dev) {
+		rl_printf("No device connected\n");
+		return;
+	}
+
+	name = g_strdup(arg);
+
+	if (g_dbus_proxy_set_property_basic(default_dev, "Alias",
+					DBUS_TYPE_STRING, &name,
+					generic_callback, name, g_free) == TRUE)
+		return;
+
+	g_free(name);
+}
+
 static void cmd_select_attribute(const char *arg)
 {
 	GDBusProxy *proxy;
@@ -2105,6 +2129,7 @@ static const struct {
 							dev_generator },
 	{ "list-attributes", "[dev]", cmd_list_attributes, "List attributes",
 							dev_generator },
+	{ "set-alias",    "<alias>",  cmd_set_alias, "Set device alias" },
 	{ "select-attribute", "<attribute>",  cmd_select_attribute,
 				"Select attribute", attribute_generator },
 	{ "attribute-info", "[attribute]",  cmd_attribute_info,
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH BlueZ] client: Show UUIDs when listing services, characteristics and descriptors.
@ 2016-09-20 13:13 Francois Beaufort
  2016-09-20 13:13 ` [PATCH BlueZ] Add device set-alias bluetoothctl command Francois Beaufort
  2016-09-20 13:13 ` [PATCH BlueZ] client: Show UUIDs when listing services, characteristics and descriptors Francois Beaufort
  0 siblings, 2 replies; 7+ messages in thread
From: Francois Beaufort @ 2016-09-20 13:13 UTC (permalink / raw)
  To: linux-bluetooth

Francois Beaufort (1):
  client: Show UUIDs when listing services, characteristics and
    descriptors.

 client/gatt.c | 75 +++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 47 insertions(+), 28 deletions(-)

-- 
2.10.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH BlueZ] Add device set-alias bluetoothctl command
  2016-09-20 13:13 [PATCH BlueZ] client: Show UUIDs when listing services, characteristics and descriptors Francois Beaufort
@ 2016-09-20 13:13 ` Francois Beaufort
  2016-09-20 13:13 ` [PATCH BlueZ] client: Show UUIDs when listing services, characteristics and descriptors Francois Beaufort
  1 sibling, 0 replies; 7+ messages in thread
From: Francois Beaufort @ 2016-09-20 13:13 UTC (permalink / raw)
  To: linux-bluetooth

---
 client/main.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/client/main.c b/client/main.c
index 9ba5a40..e1198a8 100644
--- a/client/main.c
+++ b/client/main.c
@@ -1666,6 +1666,30 @@ static void cmd_list_attributes(const char *arg)
 	gatt_list_attributes(g_dbus_proxy_get_path(proxy));
 }
 
+static void cmd_set_alias(const char *arg)
+{
+	char *name;
+
+	if (!arg || !strlen(arg)) {
+		rl_printf("Missing name argument\n");
+		return;
+	}
+
+	if (!default_dev) {
+		rl_printf("No device connected\n");
+		return;
+	}
+
+	name = g_strdup(arg);
+
+	if (g_dbus_proxy_set_property_basic(default_dev, "Alias",
+					DBUS_TYPE_STRING, &name,
+					generic_callback, name, g_free) == TRUE)
+		return;
+
+	g_free(name);
+}
+
 static void cmd_select_attribute(const char *arg)
 {
 	GDBusProxy *proxy;
@@ -2105,6 +2129,7 @@ static const struct {
 							dev_generator },
 	{ "list-attributes", "[dev]", cmd_list_attributes, "List attributes",
 							dev_generator },
+	{ "set-alias",    "<alias>",  cmd_set_alias, "Set device alias" },
 	{ "select-attribute", "<attribute>",  cmd_select_attribute,
 				"Select attribute", attribute_generator },
 	{ "attribute-info", "[attribute]",  cmd_attribute_info,
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH BlueZ] client: Show UUIDs when listing services, characteristics and descriptors.
  2016-09-20 13:13 [PATCH BlueZ] client: Show UUIDs when listing services, characteristics and descriptors Francois Beaufort
  2016-09-20 13:13 ` [PATCH BlueZ] Add device set-alias bluetoothctl command Francois Beaufort
@ 2016-09-20 13:13 ` Francois Beaufort
  1 sibling, 0 replies; 7+ messages in thread
From: Francois Beaufort @ 2016-09-20 13:13 UTC (permalink / raw)
  To: linux-bluetooth

Example output after this patch:

[bluetooth]# connect 7B:3F:2C:2B:D0:06
Attempting to connect to 7B:3F:2C:2B:D0:06
[CHG] Device 7B:3F:2C:2B:D0:06 Connected: yes
Connection successful
[NEW] Primary Service
        /org/bluez/hci0/dev_7B_3F_2C_2B_D0_06/service0001
        00001801-0000-1000-8000-00805f9b34fb
        Generic Attribute Profile
[NEW] Characteristic
        /org/bluez/hci0/dev_7B_3F_2C_2B_D0_06/service0001/char0002
        00002a05-0000-1000-8000-00805f9b34fb
        Service Changed
[NEW] Primary Service
        /org/bluez/hci0/dev_7B_3F_2C_2B_D0_06/service0028
        0000180f-0000-1000-8000-00805f9b34fb
        Battery Service
[NEW] Characteristic
        /org/bluez/hci0/dev_7B_3F_2C_2B_D0_06/service0028/char0029
        00002a19-0000-1000-8000-00805f9b34fb
        Battery Level
[NEW] Descriptor
        /org/bluez/hci0/dev_7B_3F_2C_2B_D0_06/service0028/char0029/desc002b
        00002902-0000-1000-8000-00805f9b34fb
        Client Characteristic Configuration
[CHG] Device 7B:3F:2C:2B:D0:06 UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device 7B:3F:2C:2B:D0:06 UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device 7B:3F:2C:2B:D0:06 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb
[CHG] Device 7B:3F:2C:2B:D0:06 ServicesResolved: yes
---
 client/gatt.c | 75 +++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 47 insertions(+), 28 deletions(-)

diff --git a/client/gatt.c b/client/gatt.c
index fee1cf9..e6159bc 100644
--- a/client/gatt.c
+++ b/client/gatt.c
@@ -72,16 +72,23 @@ static void print_service(GDBusProxy *proxy, const char *description)
 	dbus_message_iter_get_basic(&iter, &primary);
 
 	text = uuidstr_to_str(uuid);
-	if (!text)
-		text = uuid;
-
-	rl_printf("%s%s%s%s Service\n\t%s\n\t%s\n",
-				description ? "[" : "",
-				description ? : "",
-				description ? "] " : "",
-				primary ? "Primary" : "Secondary",
-				g_dbus_proxy_get_path(proxy),
-				text);
+	if (!text) {
+		rl_printf("%s%s%s%s Service\n\t%s\n\t%s\n",
+					description ? "[" : "",
+					description ? : "",
+					description ? "] " : "",
+					primary ? "Primary" : "Secondary",
+					g_dbus_proxy_get_path(proxy),
+					uuid);
+	} else {
+		rl_printf("%s%s%s%s Service\n\t%s\n\t%s\n\t%s\n",
+					description ? "[" : "",
+					description ? : "",
+					description ? "] " : "",
+					primary ? "Primary" : "Secondary",
+					g_dbus_proxy_get_path(proxy),
+					uuid, text);
+	}
 }
 
 void gatt_add_service(GDBusProxy *proxy)
@@ -115,15 +122,21 @@ static void print_characteristic(GDBusProxy *proxy, const char *description)
 	dbus_message_iter_get_basic(&iter, &uuid);
 
 	text = uuidstr_to_str(uuid);
-	if (!text)
-		text = uuid;
-
-	rl_printf("%s%s%sCharacteristic\n\t%s\n\t%s\n",
-				description ? "[" : "",
-				description ? : "",
-				description ? "] " : "",
-				g_dbus_proxy_get_path(proxy),
-				text);
+	if (!text) {
+		rl_printf("%s%s%sCharacteristic\n\t%s\n\t%s\n",
+					description ? "[" : "",
+					description ? : "",
+					description ? "] " : "",
+					g_dbus_proxy_get_path(proxy),
+					uuid);
+	} else {
+		rl_printf("%s%s%sCharacteristic\n\t%s\n\t%s\n\t%s\n",
+					description ? "[" : "",
+					description ? : "",
+					description ? "] " : "",
+					g_dbus_proxy_get_path(proxy),
+					uuid, text);
+	}
 }
 
 static gboolean characteristic_is_child(GDBusProxy *characteristic)
@@ -183,15 +196,21 @@ static void print_descriptor(GDBusProxy *proxy, const char *description)
 	dbus_message_iter_get_basic(&iter, &uuid);
 
 	text = uuidstr_to_str(uuid);
-	if (!text)
-		text = uuid;
-
-	rl_printf("%s%s%sDescriptor\n\t%s\n\t%s\n",
-				description ? "[" : "",
-				description ? : "",
-				description ? "] " : "",
-				g_dbus_proxy_get_path(proxy),
-				text);
+	if (!text) {
+		rl_printf("%s%s%sDescriptor\n\t%s\n\t%s\n",
+					description ? "[" : "",
+					description ? : "",
+					description ? "] " : "",
+					g_dbus_proxy_get_path(proxy),
+					uuid);
+	} else {
+		rl_printf("%s%s%sDescriptor\n\t%s\n\t%s\n\t%s\n",
+					description ? "[" : "",
+					description ? : "",
+					description ? "] " : "",
+					g_dbus_proxy_get_path(proxy),
+					uuid, text);
+	}
 }
 
 static gboolean descriptor_is_child(GDBusProxy *characteristic)
-- 
2.10.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-09-20 13:13 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-20 13:13 [PATCH BlueZ] client: Show UUIDs when listing services, characteristics and descriptors Francois Beaufort
2016-09-20 13:13 ` [PATCH BlueZ] Add device set-alias bluetoothctl command Francois Beaufort
2016-09-20 13:13 ` [PATCH BlueZ] client: Show UUIDs when listing services, characteristics and descriptors Francois Beaufort
  -- strict thread matches above, loose matches on Subject: below --
2016-09-20 13:12 Francois Beaufort
2016-09-20 13:12 ` [PATCH BlueZ] Add device set-alias bluetoothctl command Francois Beaufort
2016-09-02  9:08 Francois Beaufort
2016-09-02  9:08 ` Francois Beaufort
2016-09-02 14:14   ` Luiz Augusto von Dentz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).