You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ma...@apache.org on 2017/03/07 00:05:01 UTC
[06/50] incubator-mynewt-core git commit: MYNEWT-642 Eddystone UID
format is incorrect
MYNEWT-642 Eddystone UID format is incorrect
The tx power and reserved bytes were missing.
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/0c354af2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/0c354af2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/0c354af2
Branch: refs/heads/1_0_0_dev
Commit: 0c354af2d39efa652e8c4211e65968d15b35ac9d
Parents: 4f154cd
Author: Christopher Collins <cc...@apache.org>
Authored: Mon Feb 27 20:25:53 2017 -0800
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Mon Mar 6 15:48:13 2017 -0800
----------------------------------------------------------------------
net/nimble/host/src/ble_eddystone.c | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/0c354af2/net/nimble/host/src/ble_eddystone.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_eddystone.c b/net/nimble/host/src/ble_eddystone.c
index e6e15c3..6132b78 100644
--- a/net/nimble/host/src/ble_eddystone.c
+++ b/net/nimble/host/src/ble_eddystone.c
@@ -127,12 +127,28 @@ ble_eddystone_set_adv_data_uid(struct ble_hs_adv_fields *adv_fields, void *uid)
return BLE_HS_ENOTSUP;
#endif
- void *svc_data;
+ uint8_t *svc_data;
+ int8_t tx_pwr;
int rc;
+ /* Eddystone UUID and frame type (0). */
svc_data = ble_eddystone_set_svc_data_base(BLE_EDDYSTONE_FRAME_TYPE_UID);
- memcpy(svc_data, uid, 16);
- rc = ble_eddystone_set_adv_data_gen(adv_fields, 16);
+
+ /* Ranging data (Calibrated tx power at 0 meters). */
+ rc = ble_hs_hci_util_read_adv_tx_pwr(&tx_pwr);
+ if (rc != 0) {
+ return rc;
+ }
+ svc_data[0] = tx_pwr;
+
+ /* UID. */
+ memcpy(svc_data + 1, uid, 16);
+
+ /* Reserved. */
+ svc_data[17] = 0x00;
+ svc_data[18] = 0x00;
+
+ rc = ble_eddystone_set_adv_data_gen(adv_fields, 19);
if (rc != 0) {
return rc;
}