]> granicus.if.org Git - esp-idf/commitdiff
component bt: Added the param len & connect API to the bt project
authoryulong <yulong@yulong-mac.(none)>
Tue, 25 Oct 2016 13:12:10 +0000 (09:12 -0400)
committeryulong <yulong@yulong-mac.(none)>
Tue, 25 Oct 2016 13:12:10 +0000 (09:12 -0400)
examples/06_bluedroid_demos/components/bluedroid_demos/app_core/bt_app_api.c
examples/06_bluedroid_demos/components/bluedroid_demos/include/bt_app_api.h
examples/06_bluedroid_demos/components/bluedroid_demos/include/bt_app_defs.h

index 3ecf3012e4a547a6b1900581ee3f46c79ad4243b..71dce9f558f0d158aeacad9b581f283aa82ff859 100644 (file)
@@ -14,6 +14,8 @@
 \r
 #include "bt_app_api.h"\r
 #include "btm_ble_api.h"\r
+//#include "btm_ble_int.h"\r
+\r
 \r
 void API_Ble_AppConfigAdvData(tESP_BLE_ADV_DATA *adv_data,\r
                                                                                        tAPI_SET_ADV_DATA_CMPL_CBACK *p_adv_data_cback)\r
@@ -69,6 +71,99 @@ void API_Ble_AppStartAdvertising(tESP_API_BLE_ADV_PARAMS_ALL *ble_adv_params)
 }\r
 \r
 \r
+void API_Ble_SetScanParams (tESP_BLE_SCAN_PARAMS *scan_params, tGATT_IF client_if,\r
+                                                   tBLE_SCAN_PARAM_SETUP_CBACK scan_param_setup_cback)\r
+{\r
+       if (API_BLE_ISVALID_PARAM(scan_params->scan_intv, BTM_BLE_SCAN_INT_MIN, BTM_BLE_SCAN_INT_MAX) &&\r
+        API_BLE_ISVALID_PARAM(scan_params->scan_win, BTM_BLE_SCAN_WIN_MIN, BTM_BLE_SCAN_WIN_MAX) &&\r
+       (scan_params->scan_type == BTM_BLE_SCAN_MODE_ACTI || scan_params->scan_type == BTM_BLE_SCAN_MODE_PASS))\r
+       {\r
+               BTA_DmSetBleScanFilterParams(client_if, \r
+                                                                       scan_params->scan_intv,\r
+                                                                       scan_params->scan_win,\r
+                                                                       scan_params->scan_type,\r
+                                                                       scan_params->scan_fil_policy,\r
+                                                                       scan_params->addr_type_own,\r
+                                                                       scan_param_setup_cback);\r
+       }\r
+}\r
+\r
+\r
+void API_Ble_StartScanning (UINT8 duration, tBTA_DM_SEARCH_CBACK *p_results_cb)\r
+{\r
+       if((duration != 0) && (p_results_cb != NULL))\r
+       {\r
+               ///Start scan the device\r
+               BTA_DmBleObserve(true, duration, p_results_cb); \r
+       }else{\r
+               LOG_ERROR("The scan duration or p_results_cb invalid\n");\r
+       }\r
+}\r
+\r
+void API_Ble_AppStopAdvertising(void)\r
+{\r
+       bool stop_adv = true;\r
+       \r
+       BTA_DmBleBroadcast(stop_adv);\r
+}\r
+\r
+void API_Ble_AppUpdateConnectionParams(BD_ADDR bd_addr, UINT16 min_int, \r
+                                                                                               UINT16 max_int, UINT16 latency, UINT16 timeout)\r
+{\r
+       if (min_int > max_int){\r
+               min_int = max_int;\r
+       }\r
+\r
+       if (min_int < BTM_BLE_CONN_INT_MIN || max_int > BTM_BLE_CONN_INT_MAX){\r
+               LOG_ERROR("Invalid interval value.\n");\r
+       }\r
+\r
+        BTA_DmBleUpdateConnectionParams(bd_addr, min_int, max_int,\r
+                                     latency, timeout);\r
+       \r
+}\r
+\r
+void API_Ble_SetPacketDataLength(BD_ADDR remote_device, UINT16 tx_data_length)\r
+{\r
+       if (tx_data_length > BTM_BLE_DATA_SIZE_MAX){\r
+       tx_data_length =  BTM_BLE_DATA_SIZE_MAX;\r
+       }else if (tx_data_length < BTM_BLE_DATA_SIZE_MIN){\r
+       tx_data_length =  BTM_BLE_DATA_SIZE_MIN;\r
+       }\r
+\r
+       BTA_DmBleSetDataLength(remote_device, tx_data_length);\r
+}\r
+\r
+\r
+void API_Ble_SetRandAddress(BD_ADDR rand_addr)\r
+{\r
+       if (rand_addr != NULL){\r
+               BTA_DmSetRandAddress(rand_addr);\r
+       }else{\r
+               LOG_ERROR("Invalid randrom address.\n");\r
+       }\r
+}\r
+\r
+void API_Ble_ConfigLocalPrivacy(BOOLEAN privacy_enable)\r
+{\r
+        BTA_DmBleConfigLocalPrivacy(privacy_enable);\r
+}\r
+\r
+\r
+\r
+\r
+void API_Ble_GATTC_AppRegister(tBT_UUID *p_app_uuid, tBTA_GATTC_CBACK *p_client_cb)\r
+{\r
+       if (p_app_uuid != NULL)\r
+       {\r
+               BTA_GATTC_AppRegister(p_app_uuid, *p_client_cb);\r
+       }else{\r
+               LOG_ERROR("The app uuid invalid.\n");\r
+       }\r
+}\r
+\r
+\r
+\r
 \r
 \r
 \r
index e26bd398bc8cf33cb3eb15ab02235ee1709e5d21..3cb14974ab45817b6eeb0086cb9d4b2c5ca88c73 100644 (file)
@@ -14,6 +14,7 @@
 \r
 #include "bt_types.h"\r
 #include "bt_app_defs.h"\r
+#include "bta_gatt_api.h"\r
 \r
 typedef tBTA_SET_ADV_DATA_CMPL_CBACK tAPI_SET_ADV_DATA_CMPL_CBACK  ;\r
 typedef        tBTA_STATUS tAPI_STATUS;\r
@@ -42,5 +43,7 @@ extern void API_Ble_SetRandAddress(BD_ADDR rand_addr);
 \r
 extern void API_Ble_ConfigLocalPrivacy(BOOLEAN privacy_enable);                                                                                        \r
 \r
+extern void API_Ble_GATTC_AppRegister(tBT_UUID *p_app_uuid, tBTA_GATTC_CBACK *p_client_cb);\r
+\r
 \r
 void API_Ble_PrfEnable(); \r
index eeb036d32a0800a5b0b921c0c553060f72c7e961..d2aa9c2f4abe151b0d7ad1f2c1bd1756b28a492f 100644 (file)
@@ -64,6 +64,15 @@ typedef struct
        tBLE_BD_ADDR                    *p_dir_bda;
 }tESP_API_BLE_ADV_PARAMS_ALL;
 
+typedef struct
+{
+       UINT8           scan_type;
+       UINT16          scan_intv;
+       UINT16          scan_win;
+       UINT8           addr_type_own;
+       UINT8           scan_fil_policy;
+}tESP_BLE_SCAN_PARAMS;
+
 
 extern void ESP_AppBleConfigadvData(tESP_BLE_ADV_DATA *adv_data,
                                                                                                tBTA_SET_ADV_DATA_CMPL_CBACK *p_adv_data_cback);