* [PATCH 2/7] android/client: Add support for gattc multi_adv_disable cmd
2014-11-28 8:21 [PATCH 1/7] android/client: Add support for gattc multi_adv_set_inst_data cmd Grzegorz Kolodziejczyk
@ 2014-11-28 8:22 ` Grzegorz Kolodziejczyk
2014-11-28 8:22 ` [PATCH 3/7] android/client: Add support for gattc batch_cfg_storage cmd Grzegorz Kolodziejczyk
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-11-28 8:22 UTC (permalink / raw)
To: linux-bluetooth
---
android/client/if-gatt.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/android/client/if-gatt.c b/android/client/if-gatt.c
index 5072f91..89fa45f 100644
--- a/android/client/if-gatt.c
+++ b/android/client/if-gatt.c
@@ -2009,6 +2009,26 @@ static void multi_adv_set_inst_data_p(int argc, const char **argv)
(char *) manufacturer_data, service_data_len,
(char *) service_data, service_uuid_len, (char *) service_uuid);
}
+
+/* multi advertising disable */
+static void multi_adv_disable_c(int argc, const char **argv,
+ enum_func *enum_func, void **user)
+{
+ if (argc == 2) {
+ *user = client_if_str;
+ *enum_func = enum_one_string;
+ }
+}
+
+static void multi_adv_disable_p(int argc, const char **argv)
+{
+ int client_if;
+
+ RETURN_IF_NULL(if_gatt);
+ VERIFY_CLIENT_IF(2, client_if);
+
+ EXEC(if_gatt->client->multi_adv_disable, client_if);
+}
#endif
/* get_device_type */
@@ -2106,6 +2126,7 @@ static struct method client_methods[] = {
" <include_name> [<include_txpower>] <appearance>"
" [<manufacturer_data>] [<service_data>]"
" [<service_uuid>]"),
+ STD_METHODCH(multi_adv_disable, "<client_if>"),
#else
STD_METHODCH(scan, "<client_if> [1|0]"),
STD_METHODCH(connect, "<client_if> <addr> [<is_direct>]"),
--
1.9.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/7] android/client: Add support for gattc batch_cfg_storage cmd
2014-11-28 8:21 [PATCH 1/7] android/client: Add support for gattc multi_adv_set_inst_data cmd Grzegorz Kolodziejczyk
2014-11-28 8:22 ` [PATCH 2/7] android/client: Add support for gattc multi_adv_disable cmd Grzegorz Kolodziejczyk
@ 2014-11-28 8:22 ` Grzegorz Kolodziejczyk
2014-11-28 8:22 ` [PATCH 4/7] android/client: Add support for gattc batchscan_enb_batch_scan cmd Grzegorz Kolodziejczyk
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-11-28 8:22 UTC (permalink / raw)
To: linux-bluetooth
---
android/client/if-gatt.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/android/client/if-gatt.c b/android/client/if-gatt.c
index 89fa45f..d43a5e8 100644
--- a/android/client/if-gatt.c
+++ b/android/client/if-gatt.c
@@ -2029,6 +2029,34 @@ static void multi_adv_disable_p(int argc, const char **argv)
EXEC(if_gatt->client->multi_adv_disable, client_if);
}
+
+/* batch scanconfigure storage */
+static void batchscan_cfg_storage_c(int argc, const char **argv,
+ enum_func *enum_func, void **user)
+{
+ if (argc == 2) {
+ *user = client_if_str;
+ *enum_func = enum_one_string;
+ }
+}
+
+static void batchscan_cfg_storage_p(int argc, const char **argv)
+{
+ int client_if;
+ int batch_scan_full_max;
+ int batch_scan_trunc_max;
+ int batch_scan_notify_threshold;
+
+ RETURN_IF_NULL(if_gatt);
+ VERIFY_CLIENT_IF(2, client_if);
+ VERIFY_BATCH_SCAN_FULL_MAX(3, batch_scan_full_max);
+ VERIFY_BATCH_SCAN_TRUNC_MAX(4, batch_scan_trunc_max);
+ VERIFY_BATCH_SCAN_NOTIFY_THR(5, batch_scan_notify_threshold);
+
+ EXEC(if_gatt->client->batchscan_cfg_storage, client_if,
+ batch_scan_full_max, batch_scan_trunc_max,
+ batch_scan_notify_threshold);
+}
#endif
/* get_device_type */
@@ -2127,6 +2155,9 @@ static struct method client_methods[] = {
" [<manufacturer_data>] [<service_data>]"
" [<service_uuid>]"),
STD_METHODCH(multi_adv_disable, "<client_if>"),
+ STD_METHODCH(batchscan_cfg_storage, "<client_if> <batch_scan_full_max>"
+ " <batch_scan_trunc_max>"
+ " <batch_scan_notify_threshold>"),
#else
STD_METHODCH(scan, "<client_if> [1|0]"),
STD_METHODCH(connect, "<client_if> <addr> [<is_direct>]"),
--
1.9.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/7] android/client: Add support for gattc batchscan_enb_batch_scan cmd
2014-11-28 8:21 [PATCH 1/7] android/client: Add support for gattc multi_adv_set_inst_data cmd Grzegorz Kolodziejczyk
2014-11-28 8:22 ` [PATCH 2/7] android/client: Add support for gattc multi_adv_disable cmd Grzegorz Kolodziejczyk
2014-11-28 8:22 ` [PATCH 3/7] android/client: Add support for gattc batch_cfg_storage cmd Grzegorz Kolodziejczyk
@ 2014-11-28 8:22 ` Grzegorz Kolodziejczyk
2014-11-28 8:22 ` [PATCH 5/7] android/client: Add support for gattc batchscan_dis_batch_scan cmd Grzegorz Kolodziejczyk
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-11-28 8:22 UTC (permalink / raw)
To: linux-bluetooth
---
android/client/if-gatt.c | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/android/client/if-gatt.c b/android/client/if-gatt.c
index d43a5e8..cf55e96 100644
--- a/android/client/if-gatt.c
+++ b/android/client/if-gatt.c
@@ -2057,6 +2057,35 @@ static void batchscan_cfg_storage_p(int argc, const char **argv)
batch_scan_full_max, batch_scan_trunc_max,
batch_scan_notify_threshold);
}
+
+/* enable batch scan */
+static void batchscan_enb_batch_scan_c(int argc, const char **argv,
+ enum_func *enum_func, void **user)
+{
+ if (argc == 2) {
+ *user = client_if_str;
+ *enum_func = enum_one_string;
+ }
+}
+
+static void batchscan_enb_batch_scan_p(int argc, const char **argv)
+{
+ int client_if;
+ int scan_mode, scan_interval, scan_window;
+ int addr_type;
+ int discard_rule;
+
+ RETURN_IF_NULL(if_gatt);
+ VERIFY_CLIENT_IF(2, client_if);
+ VERIFY_SCAN_MODE(3, scan_mode);
+ VERIFY_SCAN_INTERVAL(4, scan_interval);
+ VERIFY_SCAN_WINDOW(5, scan_window);
+ VERIFY_ADDR_TYPE(6, addr_type);
+ VERIFY_DISCARD_RULE(7, discard_rule);
+
+ EXEC(if_gatt->client->batchscan_enb_batch_scan, client_if, scan_mode,
+ scan_interval, scan_window, addr_type, discard_rule);
+}
#endif
/* get_device_type */
@@ -2158,6 +2187,9 @@ static struct method client_methods[] = {
STD_METHODCH(batchscan_cfg_storage, "<client_if> <batch_scan_full_max>"
" <batch_scan_trunc_max>"
" <batch_scan_notify_threshold>"),
+ STD_METHODCH(batchscan_enb_batch_scan, "<client_if> <scan_mode>"
+ " <scan_interval> <scan_window> <addr_type>"
+ " <discard_rule>"),
#else
STD_METHODCH(scan, "<client_if> [1|0]"),
STD_METHODCH(connect, "<client_if> <addr> [<is_direct>]"),
--
1.9.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 5/7] android/client: Add support for gattc batchscan_dis_batch_scan cmd
2014-11-28 8:21 [PATCH 1/7] android/client: Add support for gattc multi_adv_set_inst_data cmd Grzegorz Kolodziejczyk
` (2 preceding siblings ...)
2014-11-28 8:22 ` [PATCH 4/7] android/client: Add support for gattc batchscan_enb_batch_scan cmd Grzegorz Kolodziejczyk
@ 2014-11-28 8:22 ` Grzegorz Kolodziejczyk
2014-11-28 8:22 ` [PATCH 6/7] android/client: Add support for gattc batchscan_read_reports cmd Grzegorz Kolodziejczyk
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-11-28 8:22 UTC (permalink / raw)
To: linux-bluetooth
---
android/client/if-gatt.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/android/client/if-gatt.c b/android/client/if-gatt.c
index cf55e96..df40f33 100644
--- a/android/client/if-gatt.c
+++ b/android/client/if-gatt.c
@@ -2086,6 +2086,26 @@ static void batchscan_enb_batch_scan_p(int argc, const char **argv)
EXEC(if_gatt->client->batchscan_enb_batch_scan, client_if, scan_mode,
scan_interval, scan_window, addr_type, discard_rule);
}
+
+/* batchscan disable */
+static void batchscan_dis_batch_scan_c(int argc, const char **argv,
+ enum_func *enum_func, void **user)
+{
+ if (argc == 2) {
+ *user = client_if_str;
+ *enum_func = enum_one_string;
+ }
+}
+
+static void batchscan_dis_batch_scan_p(int argc, const char **argv)
+{
+ int client_if;
+
+ RETURN_IF_NULL(if_gatt);
+ VERIFY_CLIENT_IF(2, client_if);
+
+ EXEC(if_gatt->client->batchscan_dis_batch_scan, client_if);
+}
#endif
/* get_device_type */
@@ -2190,6 +2210,7 @@ static struct method client_methods[] = {
STD_METHODCH(batchscan_enb_batch_scan, "<client_if> <scan_mode>"
" <scan_interval> <scan_window> <addr_type>"
" <discard_rule>"),
+ STD_METHODCH(batchscan_dis_batch_scan, "<client_if>"),
#else
STD_METHODCH(scan, "<client_if> [1|0]"),
STD_METHODCH(connect, "<client_if> <addr> [<is_direct>]"),
--
1.9.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 6/7] android/client: Add support for gattc batchscan_read_reports cmd
2014-11-28 8:21 [PATCH 1/7] android/client: Add support for gattc multi_adv_set_inst_data cmd Grzegorz Kolodziejczyk
` (3 preceding siblings ...)
2014-11-28 8:22 ` [PATCH 5/7] android/client: Add support for gattc batchscan_dis_batch_scan cmd Grzegorz Kolodziejczyk
@ 2014-11-28 8:22 ` Grzegorz Kolodziejczyk
2014-11-28 8:22 ` [PATCH 7/7] android/client: Add gatt server callbacks support for Android 5.0 Grzegorz Kolodziejczyk
2014-12-03 8:22 ` [PATCH 1/7] android/client: Add support for gattc multi_adv_set_inst_data cmd Szymon Janc
6 siblings, 0 replies; 8+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-11-28 8:22 UTC (permalink / raw)
To: linux-bluetooth
---
android/client/if-gatt.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/android/client/if-gatt.c b/android/client/if-gatt.c
index df40f33..b39a5ec 100644
--- a/android/client/if-gatt.c
+++ b/android/client/if-gatt.c
@@ -2106,6 +2106,28 @@ static void batchscan_dis_batch_scan_p(int argc, const char **argv)
EXEC(if_gatt->client->batchscan_dis_batch_scan, client_if);
}
+
+/* batchscan read reports */
+static void batchscan_read_reports_c(int argc, const char **argv,
+ enum_func *enum_func, void **user)
+{
+ if (argc == 2) {
+ *user = client_if_str;
+ *enum_func = enum_one_string;
+ }
+}
+
+static void batchscan_read_reports_p(int argc, const char **argv)
+{
+ int client_if;
+ int scan_mode;
+
+ RETURN_IF_NULL(if_gatt);
+ VERIFY_CLIENT_IF(2, client_if);
+ VERIFY_SCAN_MODE(3, scan_mode);
+
+ EXEC(if_gatt->client->batchscan_read_reports, client_if, scan_mode);
+}
#endif
/* get_device_type */
@@ -2211,6 +2233,7 @@ static struct method client_methods[] = {
" <scan_interval> <scan_window> <addr_type>"
" <discard_rule>"),
STD_METHODCH(batchscan_dis_batch_scan, "<client_if>"),
+ STD_METHODCH(batchscan_read_reports, "<client_if> <scan_mode>"),
#else
STD_METHODCH(scan, "<client_if> [1|0]"),
STD_METHODCH(connect, "<client_if> <addr> [<is_direct>]"),
--
1.9.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 7/7] android/client: Add gatt server callbacks support for Android 5.0
2014-11-28 8:21 [PATCH 1/7] android/client: Add support for gattc multi_adv_set_inst_data cmd Grzegorz Kolodziejczyk
` (4 preceding siblings ...)
2014-11-28 8:22 ` [PATCH 6/7] android/client: Add support for gattc batchscan_read_reports cmd Grzegorz Kolodziejczyk
@ 2014-11-28 8:22 ` Grzegorz Kolodziejczyk
2014-12-03 8:22 ` [PATCH 1/7] android/client: Add support for gattc multi_adv_set_inst_data cmd Szymon Janc
6 siblings, 0 replies; 8+ messages in thread
From: Grzegorz Kolodziejczyk @ 2014-11-28 8:22 UTC (permalink / raw)
To: linux-bluetooth
---
android/client/if-gatt.c | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/android/client/if-gatt.c b/android/client/if-gatt.c
index b39a5ec..8593fd2 100644
--- a/android/client/if-gatt.c
+++ b/android/client/if-gatt.c
@@ -982,6 +982,27 @@ static void gatts_response_confirmation_cb(int status, int handle)
haltest_info("%s: status=%d handle=0x%x\n", __func__, status, handle);
}
+/**
+ * Callback confirming that a notification or indication has been sent
+ * to a remote device.
+ */
+static void gatts_indication_sent_cb(int conn_id, int status)
+{
+ haltest_info("%s: status=%d conn_id=%d", __func__, status, conn_id);
+}
+
+/**
+ * Callback notifying an application that a remote device connection is
+ * currently congested and cannot receive any more data. An application
+ * should avoid sending more data until a further callback is received
+ * indicating the congestion status has been cleared.
+ */
+static void gatts_congestion_cb(int conn_id, bool congested)
+{
+ haltest_info("%s: conn_id=%d congested=%d", __func__, conn_id,
+ congested);
+}
+
static const btgatt_server_callbacks_t btgatt_server_callbacks = {
.register_server_cb = gatts_register_server_cb,
.connection_cb = gatts_connection_cb,
@@ -995,7 +1016,11 @@ static const btgatt_server_callbacks_t btgatt_server_callbacks = {
.request_read_cb = gatts_request_read_cb,
.request_write_cb = gatts_request_write_cb,
.request_exec_write_cb = gatts_request_exec_write_cb,
- .response_confirmation_cb = gatts_response_confirmation_cb
+ .response_confirmation_cb = gatts_response_confirmation_cb,
+#if ANDROID_VERSION >= PLATFORM_VER(5, 0, 0)
+ .indication_sent_cb = gatts_indication_sent_cb,
+ .congestion_cb = gatts_congestion_cb,
+#endif
};
static const btgatt_callbacks_t gatt_cbacks = {
--
1.9.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/7] android/client: Add support for gattc multi_adv_set_inst_data cmd
2014-11-28 8:21 [PATCH 1/7] android/client: Add support for gattc multi_adv_set_inst_data cmd Grzegorz Kolodziejczyk
` (5 preceding siblings ...)
2014-11-28 8:22 ` [PATCH 7/7] android/client: Add gatt server callbacks support for Android 5.0 Grzegorz Kolodziejczyk
@ 2014-12-03 8:22 ` Szymon Janc
6 siblings, 0 replies; 8+ messages in thread
From: Szymon Janc @ 2014-12-03 8:22 UTC (permalink / raw)
To: Grzegorz Kolodziejczyk; +Cc: linux-bluetooth
Hi Grzegorz,
On Friday 28 of November 2014 09:21:59 Grzegorz Kolodziejczyk wrote:
> ---
> android/client/if-gatt.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 51 insertions(+)
>
> diff --git a/android/client/if-gatt.c b/android/client/if-gatt.c
> index fa17eb2..5072f91 100644
> --- a/android/client/if-gatt.c
> +++ b/android/client/if-gatt.c
> @@ -1962,6 +1962,53 @@ static void multi_adv_update_p(int argc, const char **argv)
> EXEC(if_gatt->client->multi_adv_update, client_if, min_interval,
> max_interval, adv_type, chnl_map, tx_power, timeout_s);
> }
> +
> +/* set advertising data */
> +static void multi_adv_set_inst_data_c(int argc, const char **argv,
> + enum_func *enum_func, void **user)
> +{
> + if (argc == 2) {
> + *user = client_if_str;
> + *enum_func = enum_one_string;
> + }
> +}
> +
> +static void multi_adv_set_inst_data_p(int argc, const char **argv)
> +{
> + int client_if;
> + bool set_scan_rsp;
> + bool include_name, include_txpower;
> + int appearance;
> + uint16_t manufacturer_len;
> + uint8_t manufacturer_data[100];
> + uint16_t service_data_len;
> + uint8_t service_data[100];
> + uint16_t service_uuid_len;
> + uint8_t service_uuid[100];
> +
> + RETURN_IF_NULL(if_gatt);
> + VERIFY_CLIENT_IF(2, client_if);
> +
> + /* set scan response */
> + if (argc >= 4)
> + set_scan_rsp = atoi(argv[3]);
> + /* include name */
> + if (argc >= 5)
> + include_name = atoi(argv[4]);
> + /* include txpower */
> + if (argc >= 6)
> + include_txpower = atoi(argv[5]);
> +
> + VERIFY_APPEARANCE(6, appearance);
> + GET_VERIFY_HEX_STRING(7, manufacturer_data, manufacturer_len);
> + GET_VERIFY_HEX_STRING(8, service_data, service_data_len);
> + GET_VERIFY_HEX_STRING(9, service_uuid, service_uuid_len);
> +
> + EXEC(if_gatt->client->multi_adv_set_inst_data, client_if, set_scan_rsp,
> + include_name, include_txpower, appearance, manufacturer_len,
> + (char *) manufacturer_data, service_data_len,
> + (char *) service_data, service_uuid_len, (char *) service_uuid);
> +}
> #endif
>
> /* get_device_type */
> @@ -2055,6 +2102,10 @@ static struct method client_methods[] = {
> STD_METHODCH(multi_adv_update, "<client_if> <min_interval>"
> " <max_interval> <adv_type> <chnl_map> <tx_power>"
> " <timeout_s>"),
> + STD_METHODCH(multi_adv_set_inst_data, "<client_if> [<set_scan_rsp>]"
> + " <include_name> [<include_txpower>] <appearance>"
> + " [<manufacturer_data>] [<service_data>]"
> + " [<service_uuid>]"),
> #else
> STD_METHODCH(scan, "<client_if> [1|0]"),
> STD_METHODCH(connect, "<client_if> <addr> [<is_direct>]"),
>
All patches applied (after fixing warning on KK in last patch), thanks.
--
Best regards,
Szymon Janc
^ permalink raw reply [flat|nested] 8+ messages in thread