Repository: incubator-mynewt-core
Updated Branches:
  refs/heads/develop d1e8e11cf -> 56e711b8f


nimble: add offset option to read long in client

With this patch it is possible to pass TC_GAR_CL_BI_13_C and
TC_GAR_CL_BI_29_C.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/c90a3036
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/c90a3036
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/c90a3036

Branch: refs/heads/develop
Commit: c90a3036d01326b926a57dfd76303110ab7ee7c7
Parents: dd29d77
Author: Michał Narajowski <[email protected]>
Authored: Tue Dec 20 11:49:41 2016 +0100
Committer: Michał Narajowski <[email protected]>
Committed: Thu Dec 22 09:51:10 2016 +0100

----------------------------------------------------------------------
 apps/bletiny/src/bletiny.h                    |  3 ++-
 apps/bletiny/src/cmd.c                        | 13 ++++++++++++-
 apps/bletiny/src/main.c                       |  5 +++--
 net/nimble/host/include/host/ble_gatt.h       |  2 +-
 net/nimble/host/src/ble_gattc.c               |  4 ++--
 net/nimble/host/test/src/ble_gatt_conn_test.c |  6 ++++--
 net/nimble/host/test/src/ble_gatt_read_test.c | 11 +++++++----
 7 files changed, 31 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/c90a3036/apps/bletiny/src/bletiny.h
----------------------------------------------------------------------
diff --git a/apps/bletiny/src/bletiny.h b/apps/bletiny/src/bletiny.h
index 27c594a..f66ddfb 100644
--- a/apps/bletiny/src/bletiny.h
+++ b/apps/bletiny/src/bletiny.h
@@ -139,7 +139,8 @@ int bletiny_disc_full(uint16_t conn_handle);
 int bletiny_find_inc_svcs(uint16_t conn_handle, uint16_t start_handle,
                            uint16_t end_handle);
 int bletiny_read(uint16_t conn_handle, uint16_t attr_handle);
-int bletiny_read_long(uint16_t conn_handle, uint16_t attr_handle);
+int bletiny_read_long(uint16_t conn_handle, uint16_t attr_handle,
+                      uint16_t offset);
 int bletiny_read_by_uuid(uint16_t conn_handle, uint16_t start_handle,
                           uint16_t end_handle, uint8_t *uuid128);
 int bletiny_read_mult(uint16_t conn_handle, uint16_t *attr_handles,

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/c90a3036/apps/bletiny/src/cmd.c
----------------------------------------------------------------------
diff --git a/apps/bletiny/src/cmd.c b/apps/bletiny/src/cmd.c
index 8e8ae9f..5a1ca1e 100644
--- a/apps/bletiny/src/cmd.c
+++ b/apps/bletiny/src/cmd.c
@@ -1263,6 +1263,7 @@ bletiny_read_help(void)
     help_cmd_uuid("uuid");
     help_cmd_uint16("start");
     help_cmd_uint16("end");
+    help_cmd_uint16("offset");
 }
 
 static int
@@ -1272,6 +1273,7 @@ cmd_read(int argc, char **argv)
     uint16_t conn_handle;
     uint16_t start;
     uint16_t end;
+    uint16_t offset;
     uint8_t uuid128[16];
     uint8_t num_attr_handles;
     int is_uuid;
@@ -1342,9 +1344,18 @@ cmd_read(int argc, char **argv)
         return rc;
     }
 
+    offset = parse_arg_uint16("offset", &rc);
+    if (rc == ENOENT) {
+        offset = 0;
+    } else if (rc != 0) {
+        console_printf("invalid 'offset' parameter\n");
+        help_cmd_uint16("offset");
+        return rc;
+    }
+
     if (num_attr_handles == 1) {
         if (is_long) {
-            rc = bletiny_read_long(conn_handle, attr_handles[0]);
+            rc = bletiny_read_long(conn_handle, attr_handles[0], offset);
         } else {
             rc = bletiny_read(conn_handle, attr_handles[0]);
         }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/c90a3036/apps/bletiny/src/main.c
----------------------------------------------------------------------
diff --git a/apps/bletiny/src/main.c b/apps/bletiny/src/main.c
index 8234ace..63019f6 100755
--- a/apps/bletiny/src/main.c
+++ b/apps/bletiny/src/main.c
@@ -1233,11 +1233,12 @@ bletiny_read(uint16_t conn_handle, uint16_t attr_handle)
 }
 
 int
-bletiny_read_long(uint16_t conn_handle, uint16_t attr_handle)
+bletiny_read_long(uint16_t conn_handle, uint16_t attr_handle, uint16_t offset)
 {
     int rc;
 
-    rc = ble_gattc_read_long(conn_handle, attr_handle, bletiny_on_read, NULL);
+    rc = ble_gattc_read_long(conn_handle, attr_handle, offset,
+                             bletiny_on_read, NULL);
     return rc;
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/c90a3036/net/nimble/host/include/host/ble_gatt.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/include/host/ble_gatt.h 
b/net/nimble/host/include/host/ble_gatt.h
index 97e36b6..d7bee3d 100644
--- a/net/nimble/host/include/host/ble_gatt.h
+++ b/net/nimble/host/include/host/ble_gatt.h
@@ -162,7 +162,7 @@ int ble_gattc_read(uint16_t conn_handle, uint16_t 
attr_handle,
 int ble_gattc_read_by_uuid(uint16_t conn_handle, uint16_t start_handle,
                            uint16_t end_handle, const void *uuid128,
                            ble_gatt_attr_fn *cb, void *cb_arg);
-int ble_gattc_read_long(uint16_t conn_handle, uint16_t handle,
+int ble_gattc_read_long(uint16_t conn_handle, uint16_t handle, uint16_t offset,
                         ble_gatt_attr_fn *cb, void *cb_arg);
 int ble_gattc_read_mult(uint16_t conn_handle, const uint16_t *handles,
                         uint8_t num_handles, ble_gatt_attr_fn *cb,

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/c90a3036/net/nimble/host/src/ble_gattc.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_gattc.c b/net/nimble/host/src/ble_gattc.c
index 6eb0606..311c777 100644
--- a/net/nimble/host/src/ble_gattc.c
+++ b/net/nimble/host/src/ble_gattc.c
@@ -3423,7 +3423,7 @@ ble_gattc_read_long_rx_read_rsp(struct ble_gattc_proc 
*proc, int status,
  * @return                      0 on success; nonzero on failure.
  */
 int
-ble_gattc_read_long(uint16_t conn_handle, uint16_t handle,
+ble_gattc_read_long(uint16_t conn_handle, uint16_t handle, uint16_t offset,
                     ble_gatt_attr_fn *cb, void *cb_arg)
 {
 #if !MYNEWT_VAL(BLE_GATT_READ_LONG)
@@ -3444,7 +3444,7 @@ ble_gattc_read_long(uint16_t conn_handle, uint16_t handle,
     proc->op = BLE_GATT_OP_READ_LONG;
     proc->conn_handle = conn_handle;
     proc->read_long.handle = handle;
-    proc->read_long.offset = 0;
+    proc->read_long.offset = offset;
     proc->read_long.cb = cb;
     proc->read_long.cb_arg = cb_arg;
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/c90a3036/net/nimble/host/test/src/ble_gatt_conn_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/test/src/ble_gatt_conn_test.c 
b/net/nimble/host/test/src/ble_gatt_conn_test.c
index 3fd7cc3..a0c4f9f 100644
--- a/net/nimble/host/test/src/ble_gatt_conn_test.c
+++ b/net/nimble/host/test/src/ble_gatt_conn_test.c
@@ -383,6 +383,7 @@ TEST_CASE(ble_gatt_conn_test_disconnect)
     struct ble_gatt_conn_test_arg write_rel_arg      = { 0, BLE_HS_ENOTCONN };
     struct ble_gatt_attr attr;
     uint16_t attr_handle;
+    uint16_t offset = 0;
     int rc;
 
     ble_gatt_conn_test_util_init();
@@ -452,7 +453,7 @@ TEST_CASE(ble_gatt_conn_test_disconnect)
     TEST_ASSERT_FATAL(rc == 0);
 
     read_long_arg.exp_conn_handle = 2;
-    rc = ble_gattc_read_long(2, BLE_GATT_BREAK_TEST_READ_ATTR_HANDLE,
+    rc = ble_gattc_read_long(2, BLE_GATT_BREAK_TEST_READ_ATTR_HANDLE, offset,
                              ble_gatt_conn_test_read_long_cb, &read_long_arg);
     TEST_ASSERT_FATAL(rc == 0);
 
@@ -604,6 +605,7 @@ TEST_CASE(ble_gatt_conn_test_timeout)
     struct ble_gatt_attr attr;
     int32_t ticks_from_now;
     uint16_t attr_handle;
+    uint16_t offset = 0;
     int rc;
 
     ble_gatt_conn_test_util_init();
@@ -687,7 +689,7 @@ TEST_CASE(ble_gatt_conn_test_timeout)
 
     /*** Read long. */
     ble_hs_test_util_create_conn(1, peer_addr, NULL, NULL);
-    rc = ble_gattc_read_long(1, BLE_GATT_BREAK_TEST_READ_ATTR_HANDLE,
+    rc = ble_gattc_read_long(1, BLE_GATT_BREAK_TEST_READ_ATTR_HANDLE, offset,
                              ble_gatt_conn_test_read_long_cb,
                              &read_long_arg);
     TEST_ASSERT_FATAL(rc == 0);

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/c90a3036/net/nimble/host/test/src/ble_gatt_read_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/test/src/ble_gatt_read_test.c 
b/net/nimble/host/test/src/ble_gatt_read_test.c
index 299c572..6ffdc43 100644
--- a/net/nimble/host/test/src/ble_gatt_read_test.c
+++ b/net/nimble/host/test/src/ble_gatt_read_test.c
@@ -337,6 +337,7 @@ ble_gatt_read_test_misc_long_verify_good(
     int chunk_sz;
     int rem_len;
     int att_op;
+    uint16_t offset = 0;
     int off;
     int rc;
 
@@ -348,8 +349,8 @@ ble_gatt_read_test_misc_long_verify_good(
         max_reads = INT_MAX;
     }
     reads_left = max_reads;
-    rc = ble_gattc_read_long(2, attr->handle, ble_gatt_read_test_long_cb,
-                             &reads_left);
+    rc = ble_gattc_read_long(2, attr->handle, offset,
+                             ble_gatt_read_test_long_cb, &reads_left);
     TEST_ASSERT_FATAL(rc == 0);
 
     off = 0;
@@ -386,13 +387,14 @@ static void
 ble_gatt_read_test_misc_long_verify_bad(
     uint8_t att_status, struct ble_hs_test_util_flat_attr *attr)
 {
+    uint16_t offset = 0;
     int rc;
 
     ble_gatt_read_test_misc_init();
     ble_hs_test_util_create_conn(2, ((uint8_t[]){2,3,4,5,6,7,8,9}),
                                  NULL, NULL);
 
-    rc = ble_gattc_read_long(2, attr->handle,
+    rc = ble_gattc_read_long(2, attr->handle, offset,
                              ble_gatt_read_test_long_cb, NULL);
     TEST_ASSERT_FATAL(rc == 0);
 
@@ -820,6 +822,7 @@ TEST_CASE(ble_gatt_read_test_long_oom)
     int32_t ticks_until;
     int reads_left;
     int chunk_sz;
+    uint16_t offset = 0;
     int off;
     int rc;
 
@@ -830,7 +833,7 @@ TEST_CASE(ble_gatt_read_test_long_oom)
     /* Initiate a read long procedure. */
     off = 0;
     reads_left = 0;
-    rc = ble_gattc_read_long(2, attr.handle, ble_gatt_read_test_long_cb,
+    rc = ble_gattc_read_long(2, attr.handle, offset, 
ble_gatt_read_test_long_cb,
                              &reads_left);
     TEST_ASSERT_FATAL(rc == 0);
 

Reply via email to