From dc6ab90eec6b5b92b86e312b3f605a12094c1797 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Tue, 25 Mar 2014 12:35:30 +0100 Subject: [PATCH] android/gatt: Add support for fake read RSSI This will ease testing until kernel support is added. --- android/gatt.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/android/gatt.c b/android/gatt.c index a33ce259b..15e788acc 100644 --- a/android/gatt.c +++ b/android/gatt.c @@ -2546,10 +2546,32 @@ failed: static void handle_client_read_remote_rssi(const void *buf, uint16_t len) { + const struct hal_cmd_gatt_client_read_remote_rssi *cmd = buf; + struct hal_ev_gatt_client_read_remote_rssi ev; + uint8_t status; + DBG(""); + if (!queue_find(gatt_clients, match_client_by_id, + INT_TO_PTR(cmd->client_if))) { + status = HAL_STATUS_FAILED; + goto failed; + } + + /* TODO fake RSSI until kernel support is added */ + ev.client_if = cmd->client_if; + memcpy(ev.address, cmd->bdaddr, sizeof(ev.address)); + ev.status = HAL_STATUS_SUCCESS; + ev.rssi = -50 - (rand() % 40); + + ipc_send_notif(hal_ipc, HAL_SERVICE_ID_GATT, + HAL_EV_GATT_CLIENT_READ_REMOTE_RSSI, sizeof(ev), &ev); + + status = HAL_STATUS_SUCCESS; + +failed: ipc_send_rsp(hal_ipc, HAL_SERVICE_ID_GATT, - HAL_OP_GATT_CLIENT_READ_REMOTE_RSSI, HAL_STATUS_FAILED); + HAL_OP_GATT_CLIENT_READ_REMOTE_RSSI, status); } static void handle_client_get_device_type(const void *buf, uint16_t len) -- 2.47.3