]> granicus.if.org Git - esp-idf/commitdiff
component/bt : fix rsp convert
authorTian Hao <tianhao@espressif.com>
Mon, 21 Nov 2016 04:11:47 +0000 (12:11 +0800)
committerTian Hao <tianhao@espressif.com>
Mon, 21 Nov 2016 04:11:47 +0000 (12:11 +0800)
components/bt/bluedroid/api/include/esp_gatt_defs.h
components/bt/bluedroid/btc/profile/std/gatt/btc_gatt_util.c
components/bt/bluedroid/btc/profile/std/gatt/btc_gatts.c

index ee7df8c410e20b3a4c102db22cdf0d3509aebb14..1e9d5a7835d70692bcf6c502d5512792865bc698 100644 (file)
@@ -114,7 +114,7 @@ typedef enum {
        ESP_GATT_CHAR_PROP_BIT_EXT_PROP         =       (1 << 7),       /* 0x80 */
 } esp_gatt_char_prop_t;
 
-#define ESP_GATT_MAX_ATTR_LEN  600
+#define ESP_GATT_MAX_ATTR_LEN  600 //as same as GATT_MAX_ATTR_LEN
 typedef struct {
     uint8_t           value[ESP_GATT_MAX_ATTR_LEN];
     uint16_t          handle;
index 4e03c6bca05840345804616de5aa6a8b2748aa12..c4693380af52777b7d356e6ef3906e5b0f867e1f 100644 (file)
@@ -100,9 +100,13 @@ void bta_to_btc_srvc_id(esp_gatt_srvc_id_t *p_dest, tBTA_GATT_SRVC_ID *p_src)
        bta_to_btc_gatt_id(&p_dest->id, &p_src->id);
 }
 
-void btc_to_bta_response(tBTA_GATTS_RSP *rsp_struct, esp_gatt_rsp_t *p_rsp)
+void btc_to_bta_response(tBTA_GATTS_RSP *p_dest, esp_gatt_rsp_t *p_src)
 {
-       memcpy(rsp_struct, p_rsp, sizeof(esp_gatt_rsp_t));
+    p_dest->attr_value.auth_req = p_src->attr_value.auth_req;
+    p_dest->attr_value.handle   = p_src->attr_value.handle;
+    p_dest->attr_value.len      = p_src->attr_value.len;
+    p_dest->attr_value.offset   = p_src->attr_value.offset;
+    memcpy(p_dest->attr_value.value, p_src->attr_value.value, ESP_GATT_MAX_ATTR_LEN);
 }
 
 uint16_t get_uuid16(tBT_UUID *p_uuid)
index c9b878b6261459f3e8135d3d2f958ee6b5bd1723..f28ab8faeaf2dd1817e58ba2c596c87ea2323a14 100644 (file)
@@ -285,7 +285,7 @@ void btc_gatts_cb_handler(btc_msg_t *msg)
                param.create.service_handle = p_data->create.service_id;
                param.create.service_id.is_primary = p_data->create.is_primary;
                param.create.service_id.id.inst_id = p_data->create.svc_instance;
-               memcpy(&param.create.service_id.id.uuid, &p_data->create.uuid, sizeof(esp_bt_uuid_t));
+               bta_to_btc_uuid(&param.create.service_id.id.uuid, &p_data->create.uuid);
                BTC_GATTS_CB_TO_APP(ESP_GATTS_CREATE_EVT, &param);
                break;
        case BTA_GATTS_ADD_INCL_SRVC_EVT:
@@ -301,7 +301,7 @@ void btc_gatts_cb_handler(btc_msg_t *msg)
                param.add_char.gatt_if = p_data->add_result.server_if;
                param.add_char.attr_handle = p_data->add_result.attr_id;
                param.add_char.service_handle = p_data->add_result.service_id;
-               memcpy(&param.add_char.char_uuid, &p_data->add_result.char_uuid, sizeof(esp_bt_uuid_t));
+               bta_to_btc_uuid(&param.add_char.char_uuid, &p_data->add_result.char_uuid);
 
                BTC_GATTS_CB_TO_APP(ESP_GATTS_ADD_CHAR_EVT, &param);
                break;
@@ -310,7 +310,7 @@ void btc_gatts_cb_handler(btc_msg_t *msg)
                param.add_char_descr.gatt_if = p_data->add_result.server_if;
                param.add_char_descr.attr_handle = p_data->add_result.attr_id;
                param.add_char_descr.service_handle = p_data->add_result.service_id;
-               memcpy(&param.add_char_descr.char_uuid, &p_data->add_result.char_uuid, sizeof(esp_bt_uuid_t));
+               bta_to_btc_uuid(&param.add_char_descr.char_uuid, &p_data->add_result.char_uuid);
 
                BTC_GATTS_CB_TO_APP(ESP_GATTS_ADD_CHAR_DESCR_EVT, &param);
                break;