diff --git a/main/ble_spp_server_demo.c b/main/ble_spp_server_demo.c index cbe5bd1..0bda2a2 100644 --- a/main/ble_spp_server_demo.c +++ b/main/ble_spp_server_demo.c @@ -214,25 +214,25 @@ static const esp_gatts_attr_db_t spp_gatt_db[SPP_IDX_NB] = { {ESP_UUID_LEN_128, (uint8_t *)&spp_char_uuid128_tx, ESP_GATT_PERM_READ | 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, CHAR_DECLARATION_SIZE, CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_read_write}}, +// // 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, CHAR_DECLARATION_SIZE, CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_read_write}}, - // // SPP - command characteristic Value - // [SPP_IDX_SPP_COMMAND_VAL] = {{ESP_GATT_AUTO_RSP}, - // {ESP_UUID_LEN_16, (uint8_t *)&spp_command_uuid, ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE, SPP_CMD_MAX_LEN, sizeof(spp_command_val), (uint8_t *)spp_command_val}}, +// // SPP - command characteristic Value +// [SPP_IDX_SPP_COMMAND_VAL] = {{ESP_GATT_AUTO_RSP}, +// {ESP_UUID_LEN_16, (uint8_t *)&spp_command_uuid, ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE, SPP_CMD_MAX_LEN, sizeof(spp_command_val), (uint8_t *)spp_command_val}}, - // // SPP - status characteristic Declaration - // [SPP_IDX_SPP_STATUS_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_notify}}, +// // SPP - status characteristic Declaration +// [SPP_IDX_SPP_STATUS_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_notify}}, - // // SPP - status characteristic Value - // [SPP_IDX_SPP_STATUS_VAL] = {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&spp_status_uuid, ESP_GATT_PERM_READ, SPP_STATUS_MAX_LEN, sizeof(spp_status_val), (uint8_t *)spp_status_val}}, +// // SPP - status characteristic Value +// [SPP_IDX_SPP_STATUS_VAL] = {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&spp_status_uuid, ESP_GATT_PERM_READ, SPP_STATUS_MAX_LEN, sizeof(spp_status_val), (uint8_t *)spp_status_val}}, - // // SPP - status characteristic - Client Characteristic Configuration Descriptor - // [SPP_IDX_SPP_STATUS_CFG] = {{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_status_ccc), - // (uint8_t *)spp_status_ccc}}, +// // SPP - status characteristic - Client Characteristic Configuration Descriptor +// [SPP_IDX_SPP_STATUS_CFG] = {{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_status_ccc), +// (uint8_t *)spp_status_ccc}}, #ifdef SUPPORT_HEARTBEAT // SPP - Heart beat characteristic Declaration @@ -498,26 +498,27 @@ static void gatts_profile_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_ esp_ble_gatts_create_attr_tab(spp_gatt_db, gatts_if, SPP_IDX_NB, SPP_SVC_INST_ID); break; case ESP_GATTS_READ_EVT: - res = find_char_and_desr_index(p_data->read.handle); - if (res == SPP_IDX_SPP_STATUS_VAL) { - // TODO:client read the status characteristic - } + // res = find_char_and_desr_index(p_data->read.handle); + // if (res == SPP_IDX_SPP_STATUS_VAL) { + // // TODO:client read the status characteristic + // } break; case ESP_GATTS_WRITE_EVT: { 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); - if (res == SPP_IDX_SPP_COMMAND_VAL) { - uint8_t *spp_cmd_buff = NULL; - spp_cmd_buff = (uint8_t *)malloc((spp_mtu_size - 3) * sizeof(uint8_t)); - if (spp_cmd_buff == NULL) { - ESP_LOGE(GATTS_TABLE_TAG, "%s malloc failed\n", __func__); - break; - } - memset(spp_cmd_buff, 0x0, (spp_mtu_size - 3)); - memcpy(spp_cmd_buff, p_data->write.value, p_data->write.len); - xQueueSend(cmd_cmd_queue, &spp_cmd_buff, 10 / portTICK_PERIOD_MS); - } else if (res == SPP_IDX_SPP_DATA_NTF_CFG) { + // if (res == SPP_IDX_SPP_COMMAND_VAL) { + // uint8_t *spp_cmd_buff = NULL; + // spp_cmd_buff = (uint8_t *)malloc((spp_mtu_size - 3) * sizeof(uint8_t)); + // if (spp_cmd_buff == NULL) { + // ESP_LOGE(GATTS_TABLE_TAG, "%s malloc failed\n", __func__); + // break; + // } + // memset(spp_cmd_buff, 0x0, (spp_mtu_size - 3)); + // memcpy(spp_cmd_buff, p_data->write.value, p_data->write.len); + // xQueueSend(cmd_cmd_queue, &spp_cmd_buff, 10 / portTICK_PERIOD_MS); + // } else if (res == SPP_IDX_SPP_DATA_NTF_CFG) { + if (res == SPP_IDX_SPP_DATA_NTF_CFG) { if ((p_data->write.len == 2) && (p_data->write.value[0] == 0x01) && (p_data->write.value[1] == 0x00)) { enable_data_ntf = true; } else if ((p_data->write.len == 2) && (p_data->write.value[0] == 0x00) && (p_data->write.value[1] == 0x00)) {