記事ディレクトリ
BLE接続確立の一般的なプロセス
1.クライアントとの接続を開始する前に
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)登録:ESP_GATTS_REG_EVT
esp_ble_gap_set_device_name(char *)
Bluetoothデバイスの名前を設定するために呼び出します。
esp_ble_gap_config_adv_data(esp_ble_adv_data_t *adv_data)
ブロードキャストデータを構成するために呼び出します。
最後に、esp_ble_gatts_create_service(esp_gatt_if_t gatts_if, esp_gatt_srvc_id_t *service_id, uint16_t num_handle)
指定されたgatts_if
合計service_id
を呼び出してサービスを作成します(最下層btc_transfer_context()
は、サービスの作成と、呼び出しによるコールバック関数の呼び出しを実装します)。
サービスが作成されると、コールバック関数がトリガーされprofile
、ステータスとサービスIDが報告されます。Service_id
その後の追加のためにincluded serivces
、characteristics/descriptor
すべてを使用する必要があります。イベント
は同時にトリガーされESP_GATTS_CREATE_EVT
ます。
2)ESP_GATTS_CREATE_EVT
esp_ble_gatts_start_service(uint16_t service_handle)
サービスを開始するために呼び出します。
再度呼び出し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)
て、機能(機能UUID、機能値記述子属性のアクセス許可、機能属性、機能値、属性応答制御バイト)を追加します。
トリガーESP_GATTS_START_EVT
とESP_GATTS_ADD_CHAR_EVT
イベント。
3)ESP_GATTS_START_EVT
(少し)
4)ESP_GATTS_ADD_CHAR_EVT
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)
機能記述子を追加するための機能値呼び出しを取得します。
5)ESP_GATTS_ADD_CHAR_DESCR_EVT
(少し)
2.クライアントとの接続を開始した後
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)事件
参照
https://blog.csdn.net/zhejfl/article/details/85136102#comments_14573948