|
|
@ -141,7 +141,7 @@ static const uint16_t character_declaration_uuid = ESP_GATT_UUID_CHAR_DECLARE; |
|
|
|
static const uint16_t character_client_config_uuid = ESP_GATT_UUID_CHAR_CLIENT_CONFIG; |
|
|
|
|
|
|
|
static const uint8_t char_prop_read_notify = ESP_GATT_CHAR_PROP_BIT_READ|ESP_GATT_CHAR_PROP_BIT_NOTIFY; |
|
|
|
static const uint8_t char_prop_read_write = ESP_GATT_CHAR_PROP_BIT_WRITE_NR|ESP_GATT_CHAR_PROP_BIT_READ; |
|
|
|
static const uint8_t char_prop_read_write = ESP_GATT_CHAR_PROP_BIT_WRITE_NR; |
|
|
|
|
|
|
|
#ifdef SUPPORT_HEARTBEAT |
|
|
|
static const uint8_t char_prop_read_write_notify = ESP_GATT_CHAR_PROP_BIT_READ|ESP_GATT_CHAR_PROP_BIT_WRITE_NR|ESP_GATT_CHAR_PROP_BIT_NOTIFY; |
|
|
@ -149,7 +149,7 @@ static const uint8_t char_prop_read_write_notify = ESP_GATT_CHAR_PROP_BIT_READ|E |
|
|
|
|
|
|
|
///SPP Service - data receive characteristic, read&write without response |
|
|
|
// static const uint16_t spp_data_receive_uuid = ESP_GATT_UUID_SPP_DATA_RECEIVE; |
|
|
|
static const uint8_t spp_data_receive_val[20] = {0x00}; |
|
|
|
static const uint8_t spp_data_receive_val[128] = {0x00}; |
|
|
|
|
|
|
|
///SPP Service - data notify characteristic, notify&read |
|
|
|
// static const uint16_t spp_data_notify_uuid = ESP_GATT_UUID_SPP_DATA_NOTIFY; |
|
|
@ -195,16 +195,6 @@ static const esp_gatts_attr_db_t spp_gatt_db[SPP_IDX_NB] = |
|
|
|
{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&primary_service_uuid, ESP_GATT_PERM_READ, |
|
|
|
sizeof(spp_service_uuid128), sizeof(spp_service_uuid128), (uint8_t *)&spp_service_uuid128}}, |
|
|
|
|
|
|
|
//SPP - data receive characteristic Declaration |
|
|
|
[SPP_IDX_SPP_DATA_RECV_CHAR] = |
|
|
|
{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_READ, |
|
|
|
CHAR_DECLARATION_SIZE,CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_read_write}}, |
|
|
|
|
|
|
|
//SPP - data receive characteristic Value |
|
|
|
[SPP_IDX_SPP_DATA_RECV_VAL] = |
|
|
|
{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_128, (uint8_t *)&spp_char_uuid128_rx, ESP_GATT_PERM_READ|ESP_GATT_PERM_WRITE, |
|
|
|
SPP_DATA_MAX_LEN,sizeof(spp_data_receive_val), (uint8_t *)spp_data_receive_val}}, |
|
|
|
|
|
|
|
//SPP - data notify characteristic Declaration |
|
|
|
[SPP_IDX_SPP_DATA_NOTIFY_CHAR] = |
|
|
|
{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_READ, |
|
|
@ -212,7 +202,7 @@ static const esp_gatts_attr_db_t spp_gatt_db[SPP_IDX_NB] = |
|
|
|
|
|
|
|
//SPP - data notify characteristic Value |
|
|
|
[SPP_IDX_SPP_DATA_NTY_VAL] = |
|
|
|
{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_128, (uint8_t *)&spp_char_uuid128_tx, ESP_GATT_PERM_READ, |
|
|
|
{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_128, (uint8_t *)&spp_char_uuid128_rx, ESP_GATT_PERM_READ, |
|
|
|
SPP_DATA_MAX_LEN, sizeof(spp_data_notify_val), (uint8_t *)spp_data_notify_val}}, |
|
|
|
|
|
|
|
// SPP - data notify characteristic - Client Characteristic Configuration Descriptor |
|
|
@ -220,6 +210,16 @@ static const esp_gatts_attr_db_t spp_gatt_db[SPP_IDX_NB] = |
|
|
|
{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_client_config_uuid, ESP_GATT_PERM_READ|ESP_GATT_PERM_WRITE, |
|
|
|
sizeof(uint16_t),sizeof(spp_data_notify_ccc), (uint8_t *)spp_data_notify_ccc}}, |
|
|
|
|
|
|
|
//SPP - data receive characteristic Declaration |
|
|
|
[SPP_IDX_SPP_DATA_RECV_CHAR] = |
|
|
|
{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_WRITE, |
|
|
|
CHAR_DECLARATION_SIZE,CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_read_write}}, |
|
|
|
|
|
|
|
//SPP - data receive characteristic Value |
|
|
|
[SPP_IDX_SPP_DATA_RECV_VAL] = |
|
|
|
{{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_128, (uint8_t *)&spp_char_uuid128_tx, ESP_GATT_PERM_WRITE, |
|
|
|
SPP_DATA_MAX_LEN,sizeof(spp_data_receive_val), (uint8_t *)spp_data_receive_val}}, |
|
|
|
|
|
|
|
// //SPP - command characteristic Declaration |
|
|
|
// [SPP_IDX_SPP_COMMAND_CHAR] = |
|
|
|
// {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_READ, |
|
|
@ -526,6 +526,8 @@ static void gatts_profile_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_ |
|
|
|
} |
|
|
|
break; |
|
|
|
case ESP_GATTS_WRITE_EVT: { |
|
|
|
static uint8_t i = 0; |
|
|
|
ESP_LOGE(GATTS_TABLE_TAG, "i = %d\n", i++); |
|
|
|
res = find_char_and_desr_index(p_data->write.handle); |
|
|
|
if(p_data->write.is_prep == false){ |
|
|
|
ESP_LOGI(GATTS_TABLE_TAG, "ESP_GATTS_WRITE_EVT : handle = %d\n", res); |
|
|
@ -584,6 +586,7 @@ static void gatts_profile_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_ |
|
|
|
} |
|
|
|
case ESP_GATTS_MTU_EVT: |
|
|
|
spp_mtu_size = p_data->mtu.mtu; |
|
|
|
ESP_LOGI(GATTS_TABLE_TAG, "------------spp_mtu_size %d --------------\n",spp_mtu_size); |
|
|
|
break; |
|
|
|
case ESP_GATTS_CONF_EVT: |
|
|
|
break; |
|
|
|