BLE接続確立の一般的なプロセス



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 serivcescharacteristics/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_EVTESP_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

おすすめ

転載: blog.csdn.net/weixin_39591031/article/details/112785326