linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH BlueZ 0/3] Add Proximity Monitor properties
@ 2011-08-03 13:46 Claudio Takahasi
  2011-08-03 13:46 ` [PATCH BlueZ 1/3] Add set Immediate Alert for Proximity Monitor Claudio Takahasi
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Claudio Takahasi @ 2011-08-03 13:46 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Claudio Takahasi

Proximity API simplification patch is now upstream. The following patches
are implementing get properties(ImmediateAlertLevel and SignalLevel) and
set property(ImmediateAlertLevel).

ImmediateAlertLevel will be used by Path Loss and Find Me. SignalLevel is
emitted by Proximity Monitor when Path Loss enabled and tracking the RSSI
threshold alerts.

Claudio Takahasi (3):
  Add set Immediate Alert for Proximity Monitor
  Add get Immediate Alert for Proximity Monitor
  Add get Path Loss RSSI signal level

 proximity/monitor.c |   55 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 49 insertions(+), 6 deletions(-)

-- 
1.7.6


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

* [PATCH BlueZ 1/3] Add set Immediate Alert for Proximity Monitor
  2011-08-03 13:46 [PATCH BlueZ 0/3] Add Proximity Monitor properties Claudio Takahasi
@ 2011-08-03 13:46 ` Claudio Takahasi
  2011-08-03 13:46 ` [PATCH BlueZ 2/3] Add get " Claudio Takahasi
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Claudio Takahasi @ 2011-08-03 13:46 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Claudio Takahasi

Extends SetProperty of the Proximity Monitor adding ImmediateAlertLevel
property. The value will be written in the Alert level of the remote's
Immediate Alert Level service. Property shared between FindMe and Path
Loss.
---
 proximity/monitor.c |   44 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/proximity/monitor.c b/proximity/monitor.c
index d068142..537e389 100644
--- a/proximity/monitor.c
+++ b/proximity/monitor.c
@@ -59,6 +59,7 @@ struct monitor {
 	GAttrib *attrib;
 	struct enabled enabled;
 	char *linklosslevel;		/* Link Loss Alert Level */
+	char *immediatelevel;		/* Immediate Alert Level */
 };
 
 static inline int create_filename(char *buf, size_t size,
@@ -211,6 +212,29 @@ static DBusMessage *set_link_loss_alert(DBusConnection *conn, DBusMessage *msg,
 	return dbus_message_new_method_return(msg);
 }
 
+static DBusMessage *set_immediate_alert(DBusConnection *conn, DBusMessage *msg,
+						const char *level, void *data)
+{
+	struct monitor *monitor = data;
+	const gchar *path = device_get_path(monitor->device);
+
+	if (!g_str_equal("none", level) && !g_str_equal("mild", level) &&
+			!g_str_equal("high", level))
+		return btd_error_invalid_args(msg);
+
+	if (g_strcmp0(monitor->immediatelevel, level) == 0)
+		return dbus_message_new_method_return(msg);
+
+	g_free(monitor->immediatelevel);
+	monitor->immediatelevel = g_strdup(level);
+
+	emit_property_changed(conn, path, PROXIMITY_INTERFACE,
+					"ImmediateAlertLevel",
+					DBUS_TYPE_STRING, &level);
+
+	return dbus_message_new_method_return(msg);
+}
+
 static DBusMessage *get_properties(DBusConnection *conn,
 					DBusMessage *msg, void *data)
 {
@@ -259,16 +283,23 @@ static DBusMessage *set_property(DBusConnection *conn,
 
 	if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT)
 		return btd_error_invalid_args(msg);
+
 	dbus_message_iter_recurse(&iter, &sub);
 
-	if (g_str_equal("LinkLossAlertLevel", property)) {
-		if (monitor->enabled.linkloss == FALSE)
-			return btd_error_not_available(msg);
+	if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRING)
+		return btd_error_invalid_args(msg);
+
+	dbus_message_iter_get_basic(&sub, &level);
 
-		if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRING)
-			return btd_error_invalid_args(msg);
+	if (g_str_equal("ImmediateAlertLevel", property)) {
+		if (monitor->enabled.findme == FALSE &&
+				monitor->enabled.pathloss == FALSE)
+			return btd_error_not_available(msg);
 
-		dbus_message_iter_get_basic(&sub, &level);
+		return set_immediate_alert(conn, msg, level, data);
+	} else if (g_str_equal("LinkLossAlertLevel", property)) {
+		if (monitor->enabled.linkloss == FALSE)
+			return btd_error_not_available(msg);
 
 		return set_link_loss_alert(conn, msg, level, data);
 	}
@@ -294,6 +325,7 @@ static void monitor_destroy(gpointer user_data)
 
 	btd_device_unref(monitor->device);
 	g_free(monitor->linklosslevel);
+	g_free(monitor->immediatelevel);
 	g_free(monitor);
 }
 
-- 
1.7.6


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

* [PATCH BlueZ 2/3] Add get Immediate Alert for Proximity Monitor
  2011-08-03 13:46 [PATCH BlueZ 0/3] Add Proximity Monitor properties Claudio Takahasi
  2011-08-03 13:46 ` [PATCH BlueZ 1/3] Add set Immediate Alert for Proximity Monitor Claudio Takahasi
@ 2011-08-03 13:46 ` Claudio Takahasi
  2011-08-03 13:46 ` [PATCH BlueZ 3/3] Add get Path Loss RSSI signal level Claudio Takahasi
  2011-08-08 10:21 ` [PATCH BlueZ 0/3] Add Proximity Monitor properties Johan Hedberg
  3 siblings, 0 replies; 5+ messages in thread
From: Claudio Takahasi @ 2011-08-03 13:46 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Claudio Takahasi

Extends GetProperties method of the Proximity Monitor adding
ImmediateAlertLevel property when Path Loss and/or Find Me is enabled
---
 proximity/monitor.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/proximity/monitor.c b/proximity/monitor.c
index 537e389..7e28b39 100644
--- a/proximity/monitor.c
+++ b/proximity/monitor.c
@@ -258,6 +258,10 @@ static DBusMessage *get_properties(DBusConnection *conn,
 		dict_append_entry(&dict, "LinkLossAlertLevel",
 				DBUS_TYPE_STRING, &monitor->linklosslevel);
 
+	if (monitor->enabled.findme || monitor->enabled.pathloss)
+		dict_append_entry(&dict, "ImmediateAlertLevel",
+				DBUS_TYPE_STRING, &monitor->linklosslevel);
+
 	dbus_message_iter_close_container(&iter, &dict);
 
 	return reply;
-- 
1.7.6


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

* [PATCH BlueZ 3/3] Add get Path Loss RSSI signal level
  2011-08-03 13:46 [PATCH BlueZ 0/3] Add Proximity Monitor properties Claudio Takahasi
  2011-08-03 13:46 ` [PATCH BlueZ 1/3] Add set Immediate Alert for Proximity Monitor Claudio Takahasi
  2011-08-03 13:46 ` [PATCH BlueZ 2/3] Add get " Claudio Takahasi
@ 2011-08-03 13:46 ` Claudio Takahasi
  2011-08-08 10:21 ` [PATCH BlueZ 0/3] Add Proximity Monitor properties Johan Hedberg
  3 siblings, 0 replies; 5+ messages in thread
From: Claudio Takahasi @ 2011-08-03 13:46 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Claudio Takahasi

Extends GetProperties method of the Proximity Monitor adding SignalLevel
Property. Possible values: "unknown", "good", "regular", "weak".
"unknown" will be returned if the link is disconnected.
---
 proximity/monitor.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/proximity/monitor.c b/proximity/monitor.c
index 7e28b39..3b90df5 100644
--- a/proximity/monitor.c
+++ b/proximity/monitor.c
@@ -60,6 +60,7 @@ struct monitor {
 	struct enabled enabled;
 	char *linklosslevel;		/* Link Loss Alert Level */
 	char *immediatelevel;		/* Immediate Alert Level */
+	char *signallevel;		/* Path Loss RSSI level */
 };
 
 static inline int create_filename(char *buf, size_t size,
@@ -262,6 +263,10 @@ static DBusMessage *get_properties(DBusConnection *conn,
 		dict_append_entry(&dict, "ImmediateAlertLevel",
 				DBUS_TYPE_STRING, &monitor->linklosslevel);
 
+	if (monitor->enabled.pathloss)
+		dict_append_entry(&dict, "SignalLevel",
+				DBUS_TYPE_STRING, &monitor->signallevel);
+
 	dbus_message_iter_close_container(&iter, &dict);
 
 	return reply;
@@ -330,6 +335,7 @@ static void monitor_destroy(gpointer user_data)
 	btd_device_unref(monitor->device);
 	g_free(monitor->linklosslevel);
 	g_free(monitor->immediatelevel);
+	g_free(monitor->signallevel);
 	g_free(monitor);
 }
 
@@ -349,6 +355,7 @@ int monitor_register(DBusConnection *conn, struct btd_device *device,
 	monitor = g_new0(struct monitor, 1);
 	monitor->device = btd_device_ref(device);
 	monitor->linklosslevel = (level ? : g_strdup("none"));
+	monitor->signallevel = g_strdup("unknown");
 	monitor->enabled.linkloss = linkloss;
 	monitor->enabled.pathloss = pathloss;
 	monitor->enabled.findme = findme;
-- 
1.7.6


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

* Re: [PATCH BlueZ 0/3] Add Proximity Monitor properties
  2011-08-03 13:46 [PATCH BlueZ 0/3] Add Proximity Monitor properties Claudio Takahasi
                   ` (2 preceding siblings ...)
  2011-08-03 13:46 ` [PATCH BlueZ 3/3] Add get Path Loss RSSI signal level Claudio Takahasi
@ 2011-08-08 10:21 ` Johan Hedberg
  3 siblings, 0 replies; 5+ messages in thread
From: Johan Hedberg @ 2011-08-08 10:21 UTC (permalink / raw)
  To: Claudio Takahasi; +Cc: linux-bluetooth

Hi Claudio,

On Wed, Aug 03, 2011, Claudio Takahasi wrote:
> Proximity API simplification patch is now upstream. The following patches
> are implementing get properties(ImmediateAlertLevel and SignalLevel) and
> set property(ImmediateAlertLevel).
> 
> ImmediateAlertLevel will be used by Path Loss and Find Me. SignalLevel is
> emitted by Proximity Monitor when Path Loss enabled and tracking the RSSI
> threshold alerts.
> 
> Claudio Takahasi (3):
>   Add set Immediate Alert for Proximity Monitor
>   Add get Immediate Alert for Proximity Monitor
>   Add get Path Loss RSSI signal level
> 
>  proximity/monitor.c |   55 +++++++++++++++++++++++++++++++++++++++++++++-----
>  1 files changed, 49 insertions(+), 6 deletions(-)

Applied. Thanks.

Johan

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

end of thread, other threads:[~2011-08-08 10:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-03 13:46 [PATCH BlueZ 0/3] Add Proximity Monitor properties Claudio Takahasi
2011-08-03 13:46 ` [PATCH BlueZ 1/3] Add set Immediate Alert for Proximity Monitor Claudio Takahasi
2011-08-03 13:46 ` [PATCH BlueZ 2/3] Add get " Claudio Takahasi
2011-08-03 13:46 ` [PATCH BlueZ 3/3] Add get Path Loss RSSI signal level Claudio Takahasi
2011-08-08 10:21 ` [PATCH BlueZ 0/3] Add Proximity Monitor properties Johan Hedberg

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).