Artigo Diretório
O processo geral de estabelecimento da conexão BLE
1. Antes de começar a se conectar com o cliente
1. ESP_GATTS_REG_EVT 注册
2. ESP_GATTS_CREATE_EVT 创建
3. ESP_GATTS_START_EVT 启动
4. ESP_GATTS_ADD_CHAR_EVT 添加特征
5. ESP_GATTS_ADD_CHAR_DESCR_EVT 添加特征描述
1) Registro: ESP_GATTS_REG_EVT
Ligue esp_ble_gap_set_device_name(char *)
para definir o nome do dispositivo Bluetooth;
Chamada esp_ble_gap_config_adv_data(esp_ble_adv_data_t *adv_data)
para configurar dados de transmissão;
Finalmente, chame a soma esp_ble_gatts_create_service(esp_gatt_if_t gatts_if, esp_gatt_srvc_id_t *service_id, uint16_t num_handle)
especificada para criar o serviço (a camada inferior implementa a criação do serviço e a chamada da função de retorno de chamada chamando). Quando o serviço é criado, a função de retorno de chamada é acionada para relatar o status e a ID do serviço. Para adições subsequentes e todos precisam ser usados. O evento é disparado ao mesmo tempo .gatts_if
service_id
btc_transfer_context()
profile
Service_id
included serivces
characteristics/descriptor
ESP_GATTS_CREATE_EVT
2) ESP_GATTS_CREATE_EVT
Ligue esp_ble_gatts_start_service(uint16_t service_handle)
para iniciar o serviço;
Ligue novamente esp_ble_gatts_add_char(uint16_t service_handle, esp_bt_uuid_t *char_uuid, esp_gatt_perm_t perm, esp_gatt_char_prop_t property, esp_attr_value_t *char_val, esp_attr_control_t *control)
para adicionar recursos (recurso UUID, permissão de atributo do descritor de valor do recurso, atributo do recurso, valor do recurso, byte de controle de resposta do atributo).
Gatilhos ESP_GATTS_START_EVT
e ESP_GATTS_ADD_CHAR_EVT
eventos.
3) ESP_GATTS_START_EVT
(levemente)
4) ESP_GATTS_ADD_CHAR_EVT
Obtenha uma chamada de valor de recurso esp_err_tesp_ble_gatts_add_char_descr(uint16_t service_handle, esp_bt_uuid_t *descr_uuid, esp_gatt_perm_tperm, esp_attr_value_t *char_descr_val, esp_attr_control_t *control)
para adicionar o descritor de recurso.
5) ESP_GATTS_ADD_CHAR_DESCR_EVT
(levemente)
2. Depois de começar a se conectar com o cliente
1. CONNECT_EVT 连接
2. ESP_GATTS_MTU_EVT
3. GATT_WRITE_EVT (client)写(server)事件
4. ESP_GATTS_CONF_EVT 配置事件
5. GATT_READ_EVT (client)读(server)事件
Referência
https://blog.csdn.net/zhejfl/article/details/85136102#comments_14573948