mirror of
https://github.com/0xFEEDC0DE64/arduino-esp32.git
synced 2025-07-12 18:26:30 +02:00
Update IDF to aaf1239 (#1539)
* fix sdmmc config * Fix warnings in EEPROM from @Curclamas * remove leftover TAG in EEPROM * Initial add of @stickbreaker i2c * Add log_n * fix warnings when log is off * i2c code clean up and reorganization * add flags to interrupt allocator * fix sdmmc config * Fix warnings in EEPROM from @Curclamas * remove leftover TAG in EEPROM * fix errors with latest IDF * fix debug optimization (#1365) incorrect optimization for debugging tick markers. * Fix some missing BT header * Change BTSerial log calls * Update BLE lib * Arduino-ESP32 release management scripted (#1515) * Calculate an absolute path for a custom partitions table (#1452) * * Arduino-ESP32 release management scripted (ready-to-merge) * * secure env for espressif/arduino-esp32 * * build tests enabled * gitter webhook enabled * * gitter room link fixed * better comment * * filepaths fixed * BT Serial adjustments * * don't run sketch builds & tests for tagged builds * Return false from WiFi.hostByName() if hostname is not resolved * Free BT Memory when BT is not used * WIFI_MODE_NULL is not supported anymore * Select some key examples to build with PlatformIO to save some time * Update BLE lib * Fixed BLE lib * Major WiFi overhaul - auto reconnect on connection loss now works - moved to event groups - some code clean up and procedure optimizations - new methods to get a more elaborate system ststus * Add cmake tests to travis * Add initial AsyncUDP * Add NetBIOS lib and fix CMake includes * Add Initial WebServer * Fix WebServer and examples * travis not quiting on build fail * Try different travis build * Update IDF to aaf1239 * Fix WPS Example * fix script permission and add some fail tests to sketch builder * Add missing space in WiFiClient::write(Stream &stream)
This commit is contained in:
30
tools/sdk/include/bluedroid/btc/btc_alarm.h
Normal file
30
tools/sdk/include/bluedroid/btc/btc_alarm.h
Normal file
@ -0,0 +1,30 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
|
||||
#ifndef __BTC_ALARM_H__
|
||||
#define __BTC_ALARM_H__
|
||||
|
||||
#include <stdint.h>
|
||||
#include "osi/alarm.h"
|
||||
|
||||
/* btc_alarm_args_t */
|
||||
typedef struct {
|
||||
osi_alarm_callback_t cb;
|
||||
void *cb_data;
|
||||
} btc_alarm_args_t;
|
||||
|
||||
void btc_alarm_handler(btc_msg_t *msg);
|
||||
|
||||
#endif /* __BTC_ALARM_H__ */
|
86
tools/sdk/include/bluedroid/btc/btc_ble_storage.h
Normal file
86
tools/sdk/include/bluedroid/btc/btc_ble_storage.h
Normal file
@ -0,0 +1,86 @@
|
||||
// Copyright (C) 2014 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
#ifndef __BTC_BLE_STORAGE_H__
|
||||
#define __BTC_BLE_STORAGE_H__
|
||||
#include "stack/bt_types.h"
|
||||
#include "common/bt_target.h"
|
||||
#include "esp_gap_ble_api.h"
|
||||
|
||||
#if (SMP_INCLUDED == TRUE)
|
||||
#define BTC_LE_LOCAL_KEY_IR (1<<0)
|
||||
#define BTC_LE_LOCAL_KEY_IRK (1<<1)
|
||||
#define BTC_LE_LOCAL_KEY_DHK (1<<2)
|
||||
#define BTC_LE_LOCAL_KEY_ER (1<<3)
|
||||
|
||||
#define BTC_BLE_STORAGE_DEV_TYPE_STR "DevType"
|
||||
#define BTC_BLE_STORAGE_ADDR_TYPE_STR "AddrType"
|
||||
#define BTC_BLE_STORAGE_LINK_KEY_STR "LinkKey"
|
||||
#define BTC_BLE_STORAGE_LE_KEY_PENC_STR "LE_KEY_PENC"
|
||||
#define BTC_BLE_STORAGE_LE_KEY_PID_STR "LE_KEY_PID"
|
||||
#define BTC_BLE_STORAGE_LE_KEY_PCSRK_STR "LE_KEY_PCSRK"
|
||||
#define BTC_BLE_STORAGE_LE_KEY_LENC_STR "LE_KEY_LENC"
|
||||
#define BTC_BLE_STORAGE_LE_KEY_LID_STR "LE_KEY_LID"
|
||||
#define BTC_BLE_STORAGE_LE_KEY_LCSRK_STR "LE_KEY_LCSRK"
|
||||
|
||||
#define BTC_BLE_STORAGE_LOCAL_ADAPTER_STR "Adapter"
|
||||
#define BTC_BLE_STORAGE_LE_LOCAL_KEY_IR_STR "LE_LOCAL_KEY_IR"
|
||||
#define BTC_BLE_STORAGE_LE_LOCAL_KEY_IRK_STR "LE_LOCAL_KEY_IRK"
|
||||
#define BTC_BLE_STORAGE_LE_LOCAL_KEY_DHK_STR "LE_LOCAL_KEY_DHK"
|
||||
#define BTC_BLE_STORAGE_LE_LOCAL_KEY_ER_STR "LE_LOCAL_KEY_ER"
|
||||
|
||||
/************************************************************************************
|
||||
** Local type definitions
|
||||
************************************************************************************/
|
||||
typedef struct
|
||||
{
|
||||
BT_OCTET16 sp_c;
|
||||
BT_OCTET16 sp_r;
|
||||
BD_ADDR oob_bdaddr; /* peer bdaddr*/
|
||||
} btc_dm_oob_cb_t;
|
||||
|
||||
|
||||
void btc_storage_save(void);
|
||||
|
||||
bt_status_t btc_storage_add_ble_bonding_key( bt_bdaddr_t *remote_bd_addr, char *key, uint8_t key_type, uint8_t key_length);
|
||||
|
||||
bt_status_t btc_storage_get_ble_bonding_key(bt_bdaddr_t *remote_bd_addr, uint8_t key_type, char *key_value, int key_length);
|
||||
|
||||
bt_status_t btc_storage_remove_ble_bonding_keys(bt_bdaddr_t *remote_bd_addr);
|
||||
|
||||
bool btc_storage_compare_address_key_value(bt_bdaddr_t *remote_bd_addr, uint8_t key_type, void *key_value, int key_length);
|
||||
|
||||
bt_status_t btc_storage_add_ble_local_key(char *key, uint8_t key_type, uint8_t key_length);
|
||||
|
||||
bt_status_t btc_storage_remove_ble_local_keys(void);
|
||||
|
||||
bt_status_t btc_storage_get_ble_local_key(uint8_t key_type, char *key_value, int key_len);
|
||||
|
||||
bt_status_t btc_storage_get_remote_addr_type(bt_bdaddr_t *remote_bd_addr, int *addr_type);
|
||||
|
||||
bt_status_t btc_storage_set_remote_addr_type(bt_bdaddr_t *remote_bd_addr, uint8_t addr_type, bool flush);
|
||||
|
||||
bt_status_t btc_storage_remove_remote_addr_type(bt_bdaddr_t *remote_bd_addr, bool flush);
|
||||
|
||||
bt_status_t btc_storage_set_ble_dev_type(bt_bdaddr_t *bd_addr, bool flush);
|
||||
|
||||
bt_status_t btc_storage_remove_ble_dev_type(bt_bdaddr_t *remote_bd_addr, bool flush);
|
||||
|
||||
bt_status_t btc_storage_load_bonded_ble_devices(void);
|
||||
|
||||
bt_status_t btc_storage_get_bonded_ble_devices_list(esp_ble_bond_dev_t *bond_dev, int dev_num);
|
||||
|
||||
int btc_storage_get_num_ble_bond_devices(void);
|
||||
|
||||
#endif ///SMP_INCLUDED == TRUE
|
||||
#endif ///__BTC_BLE_STORAGE_H__
|
35
tools/sdk/include/bluedroid/btc/btc_common.h
Normal file
35
tools/sdk/include/bluedroid/btc/btc_common.h
Normal file
@ -0,0 +1,35 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
|
||||
#ifndef __BTC_COMMON_H__
|
||||
#define __BTC_COMMON_H__
|
||||
|
||||
#include "common/bt_trace.h"
|
||||
#include "stack/bt_types.h"
|
||||
#include "osi/osi.h"
|
||||
|
||||
#define BTC_ASSERTC(cond, msg, val) if (!(cond)) { LOG_ERROR( \
|
||||
"### ASSERT : %s line %d %s (%d) ###", __FILE__, __LINE__, msg, val);}
|
||||
|
||||
#define BTC_HAL_CBACK(P_CB, P_CBACK, ...)\
|
||||
if (P_CB && P_CB->P_CBACK) { \
|
||||
LOG_INFO("HAL %s->%s", #P_CB, #P_CBACK); \
|
||||
P_CB->P_CBACK(__VA_ARGS__); \
|
||||
} \
|
||||
else { \
|
||||
BTC_ASSERTC(0, "Callback is NULL", 0); \
|
||||
}
|
||||
|
||||
#endif /* __BTC_COMMON_H__ */
|
58
tools/sdk/include/bluedroid/btc/btc_config.h
Normal file
58
tools/sdk/include/bluedroid/btc/btc_config.h
Normal file
@ -0,0 +1,58 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef __BTC_CONFIG_H__
|
||||
#define __BTC_CONFIG_H__
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#include "stack/bt_types.h"
|
||||
|
||||
typedef struct btc_config_section_iter_t btc_config_section_iter_t;
|
||||
|
||||
bool btc_config_init(void);
|
||||
bool btc_config_shut_down(void);
|
||||
bool btc_config_clean_up(void);
|
||||
|
||||
bool btc_config_has_section(const char *section);
|
||||
bool btc_config_exist(const char *section, const char *key);
|
||||
bool btc_config_get_int(const char *section, const char *key, int *value);
|
||||
bool btc_config_set_int(const char *section, const char *key, int value);
|
||||
bool btc_config_get_str(const char *section, const char *key, char *value, int *size_bytes);
|
||||
bool btc_config_set_str(const char *section, const char *key, const char *value);
|
||||
bool btc_config_get_bin(const char *section, const char *key, uint8_t *value, size_t *length);
|
||||
bool btc_config_set_bin(const char *section, const char *key, const uint8_t *value, size_t length);
|
||||
bool btc_config_remove(const char *section, const char *key);
|
||||
bool btc_config_remove_section(const char *section);
|
||||
|
||||
size_t btc_config_get_bin_length(const char *section, const char *key);
|
||||
|
||||
const btc_config_section_iter_t *btc_config_section_begin(void);
|
||||
const btc_config_section_iter_t *btc_config_section_end(void);
|
||||
const btc_config_section_iter_t *btc_config_section_next(const btc_config_section_iter_t *section);
|
||||
const char *btc_config_section_name(const btc_config_section_iter_t *section);
|
||||
|
||||
void btc_config_flush(void);
|
||||
int btc_config_clear(void);
|
||||
|
||||
// TODO(zachoverflow): Eww...we need to move these out. These are peer specific, not config general.
|
||||
bool btc_get_address_type(const BD_ADDR bd_addr, int *p_addr_type);
|
||||
bool btc_compare_address_key_value(const char *section, const char *key_type, void *key_value, int key_length);
|
||||
bool btc_get_device_type(const BD_ADDR bd_addr, int *p_device_type);
|
||||
|
||||
void btc_config_lock(void);
|
||||
void btc_config_unlock(void);
|
||||
|
||||
#endif
|
38
tools/sdk/include/bluedroid/btc/btc_dev.h
Normal file
38
tools/sdk/include/bluedroid/btc/btc_dev.h
Normal file
@ -0,0 +1,38 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef __BTC_DEV_H__
|
||||
#define __BTC_DEV_H__
|
||||
|
||||
#include "esp_bt_defs.h"
|
||||
#include "esp_bt_device.h"
|
||||
#include "btc/btc_task.h"
|
||||
|
||||
typedef enum {
|
||||
BTC_DEV_ACT_SET_DEVICE_NAME
|
||||
} btc_dev_act_t;
|
||||
|
||||
/* btc_dev_args_t */
|
||||
typedef union {
|
||||
// BTC_BT_GAP_ACT_SET_DEV_NAME
|
||||
struct set_bt_dev_name_args {
|
||||
#define ESP_DEV_DEVICE_NAME_MAX (32)
|
||||
char device_name[ESP_DEV_DEVICE_NAME_MAX + 1];
|
||||
} set_dev_name;
|
||||
} btc_dev_args_t;
|
||||
|
||||
void btc_dev_call_handler(btc_msg_t *msg);
|
||||
|
||||
#endif /* __BTC_DEV_H__ */
|
||||
|
86
tools/sdk/include/bluedroid/btc/btc_dm.h
Normal file
86
tools/sdk/include/bluedroid/btc/btc_dm.h
Normal file
@ -0,0 +1,86 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef __BTC_DM_H__
|
||||
#define __BTC_DM_H__
|
||||
|
||||
#include "btc/btc_task.h"
|
||||
#include "esp_bt_defs.h"
|
||||
#include "bta/bta_api.h"
|
||||
|
||||
typedef enum {
|
||||
BTC_DM_SEC_ACT
|
||||
} btc_dm_sec_act_t;
|
||||
|
||||
/* btc_dm_args_t */
|
||||
typedef union {
|
||||
//BTC_DM_SEC_ACT
|
||||
tBTA_DM_SEC sec;
|
||||
} btc_dm_sec_args_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool is_penc_key_rcvd;
|
||||
tBTM_LE_PENC_KEYS penc_key; /* received peer encryption key */
|
||||
bool is_pcsrk_key_rcvd;
|
||||
tBTM_LE_PCSRK_KEYS pcsrk_key; /* received peer device SRK */
|
||||
bool is_pid_key_rcvd;
|
||||
tBTM_LE_PID_KEYS pid_key; /* peer device ID key */
|
||||
bool is_lenc_key_rcvd;
|
||||
tBTM_LE_LENC_KEYS lenc_key; /* local encryption reproduction keys LTK = = d1(ER,DIV,0)*/
|
||||
bool is_lcsrk_key_rcvd;
|
||||
tBTM_LE_LCSRK_KEYS lcsrk_key; /* local device CSRK = d1(ER,DIV,1)*/
|
||||
bool is_lidk_key_rcvd; /* local identity key received */
|
||||
} btc_dm_ble_cb_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bt_bdaddr_t static_bdaddr;
|
||||
BD_ADDR bd_addr;
|
||||
btc_dm_ble_cb_t ble;
|
||||
} btc_dm_pairing_cb_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t ir[BT_OCTET16_LEN];
|
||||
uint8_t irk[BT_OCTET16_LEN];
|
||||
uint8_t dhk[BT_OCTET16_LEN];
|
||||
} btc_dm_local_key_id_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool is_er_rcvd;
|
||||
uint8_t er[BT_OCTET16_LEN];
|
||||
bool is_id_keys_rcvd;
|
||||
btc_dm_local_key_id_t id_keys; /* ID kyes */
|
||||
} btc_dm_local_key_cb_t;
|
||||
|
||||
|
||||
|
||||
// void btc_dm_call_handler(btc_msg_t *msg);
|
||||
void btc_dm_sec_evt(tBTA_DM_SEC_EVT event, tBTA_DM_SEC *data);
|
||||
void btc_dm_sec_cb_handler(btc_msg_t *msg);
|
||||
void btc_dm_sec_arg_deep_copy(btc_msg_t *msg, void *dst, void *src);
|
||||
|
||||
bt_status_t btc_dm_enable_service(tBTA_SERVICE_ID service_id);
|
||||
bt_status_t btc_dm_disable_service(tBTA_SERVICE_ID service_id);
|
||||
|
||||
#if (SMP_INCLUDED == TRUE)
|
||||
void btc_dm_load_ble_local_keys(void);
|
||||
|
||||
void btc_dm_get_ble_local_keys(tBTA_DM_BLE_LOCAL_KEY_MASK *p_key_mask, BT_OCTET16 er,
|
||||
tBTA_BLE_LOCAL_ID_KEYS *p_id_keys);
|
||||
#endif
|
||||
|
||||
#endif /* __BTC_DM_H__ */
|
64
tools/sdk/include/bluedroid/btc/btc_main.h
Normal file
64
tools/sdk/include/bluedroid/btc/btc_main.h
Normal file
@ -0,0 +1,64 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef __BTC_BT_MAIN_H__
|
||||
#define __BTC_BT_MAIN_H__
|
||||
|
||||
#include "osi/future.h"
|
||||
#include "stack/bt_types.h"
|
||||
#include "bta/bta_api.h"
|
||||
#include "btc/btc_main.h"
|
||||
#include "btc/btc_task.h"
|
||||
|
||||
typedef enum {
|
||||
BTC_MAIN_ACT_INIT = 0,
|
||||
BTC_MAIN_ACT_DEINIT,
|
||||
BTC_MAIN_ACT_ENABLE,
|
||||
BTC_MAIN_ACT_DISABLE,
|
||||
} btc_main_act_t;
|
||||
|
||||
typedef enum {
|
||||
BTC_MAIN_INIT_FUTURE = 0,
|
||||
BTC_MAIN_DEINIT_FUTURE,
|
||||
BTC_MAIN_ENABLE_FUTURE,
|
||||
BTC_MAIN_DISABLE_FUTURE,
|
||||
BTC_MAIN_FUTURE_NUM,
|
||||
} btc_main_future_type_t;
|
||||
|
||||
future_t **btc_main_get_future_p(btc_main_future_type_t type);
|
||||
|
||||
#if 0
|
||||
typedef union {
|
||||
struct btc_main_init_args {
|
||||
future_t *future;
|
||||
} init;
|
||||
struct btc_main_deinit_args {
|
||||
future_t *future;
|
||||
} deinit;
|
||||
struct btc_main_init_args {
|
||||
future_t *future;
|
||||
} enable;
|
||||
struct btc_main_init_args {
|
||||
future_t *future;
|
||||
} disable;
|
||||
} btc_main_args_t;
|
||||
|
||||
bt_status_t btc_enable_bluetooth(future_t *future);
|
||||
void btc_disable_bluetooth(future_t *future);
|
||||
bt_status_t btc_init_bluetooth(future_t *future);
|
||||
void btc_deinit_bluetooth(future_t *future);
|
||||
#endif
|
||||
|
||||
void btc_main_call_handler(btc_msg_t *msg);
|
||||
#endif /* __BTC_BT_MAIN_H__ */
|
28
tools/sdk/include/bluedroid/btc/btc_manage.h
Normal file
28
tools/sdk/include/bluedroid/btc/btc_manage.h
Normal file
@ -0,0 +1,28 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef __BTC_MANAGE_H__
|
||||
#define __BTC_MANAGE_H__
|
||||
|
||||
#include "bta/bta_api.h"
|
||||
#include "btc/btc_task.h"
|
||||
#include "esp_bt_defs.h"
|
||||
|
||||
/* reset gatt callback table */
|
||||
void esp_profile_cb_reset(void);
|
||||
|
||||
int btc_profile_cb_set(btc_pid_t profile_id, void *cb);
|
||||
void *btc_profile_cb_get(btc_pid_t profile_id);
|
||||
|
||||
#endif /* __BTC_MANAGE_H__ */
|
55
tools/sdk/include/bluedroid/btc/btc_profile_queue.h
Normal file
55
tools/sdk/include/bluedroid/btc/btc_profile_queue.h
Normal file
@ -0,0 +1,55 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Filename: btc/btc_profile_queue.h
|
||||
*
|
||||
* Description: Bluetooth remote device connection queuing
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
#ifndef __BTC_PROFILE_QUEUE_H__
|
||||
#define __BTC_PROFILE_QUEUE_H__
|
||||
|
||||
#include "common/bt_defs.h"
|
||||
#include "btc/btc_task.h"
|
||||
|
||||
typedef enum {
|
||||
BTC_PRF_QUE_CONNECT = 0,
|
||||
BTC_PRF_QUE_ADVANCE
|
||||
} btc_prf_que_act_t;
|
||||
|
||||
typedef bt_status_t (*btc_connect_cb_t) (bt_bdaddr_t *bda, uint16_t uuid);
|
||||
|
||||
typedef struct connect_node_t {
|
||||
bt_bdaddr_t bda;
|
||||
uint16_t uuid;
|
||||
bool busy;
|
||||
btc_connect_cb_t connect_cb;
|
||||
} connect_node_t;
|
||||
|
||||
/* btc_prf_que_args_t */
|
||||
typedef union {
|
||||
// BTC_PRF_QUE_CONNECT
|
||||
connect_node_t connect_node;
|
||||
} btc_prf_que_args_t;
|
||||
|
||||
bt_status_t btc_queue_connect(uint16_t uuid, const bt_bdaddr_t *bda, btc_connect_cb_t connect_cb);
|
||||
void btc_queue_advance(void);
|
||||
bt_status_t btc_queue_connect_next(void);
|
||||
void btc_queue_release(void);
|
||||
|
||||
void btc_profile_queue_handler(btc_msg_t *msg);
|
||||
#endif /* __BTC_PROFILE_QUEUE_H__ */
|
115
tools/sdk/include/bluedroid/btc/btc_sm.h
Normal file
115
tools/sdk/include/bluedroid/btc/btc_sm.h
Normal file
@ -0,0 +1,115 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Filename: btc/btc_sm.h
|
||||
*
|
||||
* Description: Generic BTC state machine API
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __BTC_SM_H__
|
||||
#define __BTC_SM_H__
|
||||
|
||||
/*****************************************************************************
|
||||
** Constants & Macros
|
||||
******************************************************************************/
|
||||
|
||||
/* Generic Enter/Exit state machine events */
|
||||
#define BTC_SM_ENTER_EVT 0xFFFF
|
||||
#define BTC_SM_EXIT_EVT 0xFFFE
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
** Type definitions and return values
|
||||
******************************************************************************/
|
||||
typedef UINT32 btc_sm_state_t;
|
||||
typedef UINT32 btc_sm_event_t;
|
||||
typedef void *btc_sm_handle_t;
|
||||
typedef BOOLEAN (* btc_sm_handler_t)(btc_sm_event_t event, void *data);
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
** Functions
|
||||
**
|
||||
** NOTE: THESE APIs SHOULD BE INVOKED ONLY IN THE BTC CONTEXT
|
||||
**
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
**
|
||||
** Function btc_sm_init
|
||||
**
|
||||
** Description Initializes the state machine with the state handlers
|
||||
** The caller should ensure that the table and the corresponding
|
||||
** states match. The location that 'p_handlers' points to shall
|
||||
** be available until the btc_sm_shutdown API is invoked.
|
||||
**
|
||||
** Returns Returns a pointer to the initialized state machine handle.
|
||||
**
|
||||
******************************************************************************/
|
||||
btc_sm_handle_t btc_sm_init(const btc_sm_handler_t *p_handlers,
|
||||
btc_sm_state_t initial_state);
|
||||
|
||||
/*****************************************************************************
|
||||
**
|
||||
** Function btc_sm_shutdown
|
||||
**
|
||||
** Description Tears down the state machine
|
||||
**
|
||||
** Returns None
|
||||
**
|
||||
******************************************************************************/
|
||||
void btc_sm_shutdown(btc_sm_handle_t handle);
|
||||
|
||||
/*****************************************************************************
|
||||
**
|
||||
** Function btc_sm_get_state
|
||||
**
|
||||
** Description Fetches the current state of the state machine
|
||||
**
|
||||
** Returns Current state
|
||||
**
|
||||
******************************************************************************/
|
||||
btc_sm_state_t btc_sm_get_state(btc_sm_handle_t handle);
|
||||
|
||||
/*****************************************************************************
|
||||
**
|
||||
** Function btc_sm_dispatch
|
||||
**
|
||||
** Description Dispatches the 'event' along with 'data' to the current state handler
|
||||
**
|
||||
** Returns Returns BT_STATUS_OK on success, BT_STATUS_FAIL otherwise
|
||||
**
|
||||
******************************************************************************/
|
||||
bt_status_t btc_sm_dispatch(btc_sm_handle_t handle, btc_sm_event_t event,
|
||||
void *data);
|
||||
|
||||
/*****************************************************************************
|
||||
**
|
||||
** Function btc_sm_change_state
|
||||
**
|
||||
** Description Make a transition to the new 'state'. The 'BTC_SM_EXIT_EVT'
|
||||
** shall be invoked before exiting the current state. The
|
||||
** 'BTC_SM_ENTER_EVT' shall be invoked before entering the new state
|
||||
**
|
||||
**
|
||||
** Returns Returns BT_STATUS_OK on success, BT_STATUS_FAIL otherwise
|
||||
**
|
||||
******************************************************************************/
|
||||
bt_status_t btc_sm_change_state(btc_sm_handle_t handle, btc_sm_state_t state);
|
||||
|
||||
#endif /* __BTC_SM_H__ */
|
92
tools/sdk/include/bluedroid/btc/btc_storage.h
Normal file
92
tools/sdk/include/bluedroid/btc/btc_storage.h
Normal file
@ -0,0 +1,92 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef __BTC_STORAGE_H__
|
||||
#define __BTC_STORAGE_H__
|
||||
|
||||
#include <stdint.h>
|
||||
#include "common/bt_defs.h"
|
||||
#include "stack/bt_types.h"
|
||||
#include "esp_gap_bt_api.h"
|
||||
|
||||
|
||||
#define BTC_STORAGE_DEV_CLASS_STR "DevClass"
|
||||
#define BTC_STORAGE_LINK_KEY_STR "LinkKey" /* same as the ble */
|
||||
#define BTC_STORAGE_LINK_KEY_TYPE_STR "LinkKeyType"
|
||||
#define BTC_STORAGE_PIN_LENGTH_STR "PinLength"
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
** Function btc_storage_add_bonded_device
|
||||
**
|
||||
** Description BTC storage API - Adds the newly bonded device to NVRAM
|
||||
** along with the link-key, Key type and Pin key length
|
||||
**
|
||||
** Returns BT_STATUS_SUCCESS if the store was successful,
|
||||
** BT_STATUS_FAIL otherwise
|
||||
**
|
||||
*******************************************************************************/
|
||||
bt_status_t btc_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
|
||||
LINK_KEY link_key,
|
||||
uint8_t key_type,
|
||||
uint8_t pin_length);
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
** Function btc_storage_remove_bonded_device
|
||||
**
|
||||
** Description BTC storage API - Deletes the bonded device from NVRAM
|
||||
**
|
||||
** Returns BT_STATUS_SUCCESS if the deletion was successful,
|
||||
** BT_STATUS_FAIL otherwise
|
||||
**
|
||||
*******************************************************************************/
|
||||
bt_status_t btc_storage_remove_bonded_device(bt_bdaddr_t *remote_bd_addr);
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
** Function btc_storage_remove_bonded_device
|
||||
**
|
||||
** Description BTC storage API - Deletes the bonded device from NVRAM
|
||||
**
|
||||
** Returns BT_STATUS_SUCCESS if the deletion was successful,
|
||||
** BT_STATUS_FAIL otherwise
|
||||
**
|
||||
*******************************************************************************/
|
||||
bt_status_t btc_storage_load_bonded_devices(void);
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
** Function btc_storage_get_num_bt_bond_devices
|
||||
**
|
||||
** Description BTC storage API - get the num of the bonded device from NVRAM
|
||||
**
|
||||
** Returns the num of the bonded device
|
||||
**
|
||||
*******************************************************************************/
|
||||
int btc_storage_get_num_bt_bond_devices(void);
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
** Function btc_storage_get_bonded_bt_devices_list
|
||||
**
|
||||
** Description BTC storage API - get the list of the bonded device from NVRAM
|
||||
**
|
||||
** Returns BT_STATUS_SUCCESS if get the list successful,
|
||||
** BT_STATUS_FAIL otherwise
|
||||
**
|
||||
*******************************************************************************/
|
||||
bt_status_t btc_storage_get_bonded_bt_devices_list(bt_bdaddr_t *bond_dev, int dev_num);
|
||||
|
||||
#endif /* BTC_STORAGE_H */
|
76
tools/sdk/include/bluedroid/btc/btc_task.h
Normal file
76
tools/sdk/include/bluedroid/btc/btc_task.h
Normal file
@ -0,0 +1,76 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef __BTC_TASK_H__
|
||||
#define __BTC_TASK_H__
|
||||
|
||||
#include <stdint.h>
|
||||
#include "common/bt_target.h"
|
||||
#include "common/bt_defs.h"
|
||||
#include "osi/thread.h"
|
||||
|
||||
typedef struct btc_msg {
|
||||
uint8_t sig; //event signal
|
||||
uint8_t aid; //application id
|
||||
uint8_t pid; //profile id
|
||||
uint8_t act; //profile action, defined in seprerate header files
|
||||
void *arg; //param for btc function or function param
|
||||
} btc_msg_t;
|
||||
|
||||
typedef enum {
|
||||
BTC_SIG_API_CALL = 0, // APP TO STACK
|
||||
BTC_SIG_API_CB, // STACK TO APP
|
||||
BTC_SIG_NUM,
|
||||
} btc_sig_t; //btc message type
|
||||
|
||||
typedef enum {
|
||||
BTC_PID_MAIN_INIT = 0,
|
||||
BTC_PID_DEV,
|
||||
BTC_PID_GATTS,
|
||||
#if (GATTC_INCLUDED == TRUE)
|
||||
BTC_PID_GATTC,
|
||||
#endif ///GATTC_INCLUDED == TRUE
|
||||
BTC_PID_GATT_COMMON,
|
||||
BTC_PID_GAP_BLE,
|
||||
BTC_PID_BLE_HID,
|
||||
BTC_PID_SPPLIKE,
|
||||
BTC_PID_BLUFI,
|
||||
BTC_PID_DM_SEC,
|
||||
BTC_PID_ALARM,
|
||||
#if CONFIG_CLASSIC_BT_ENABLED
|
||||
BTC_PID_GAP_BT,
|
||||
BTC_PID_PRF_QUE,
|
||||
BTC_PID_A2DP,
|
||||
BTC_PID_AVRC,
|
||||
BTC_PID_SPP,
|
||||
#if BTC_HF_CLIENT_INCLUDED
|
||||
BTC_PID_HF_CLIENT,
|
||||
#endif /* BTC_HF_CLIENT_INCLUDED */
|
||||
#endif /* CONFIG_CLASSIC_BT_ENABLED */
|
||||
BTC_PID_NUM,
|
||||
} btc_pid_t; //btc profile id
|
||||
|
||||
typedef struct {
|
||||
void (* btc_call)(btc_msg_t *msg);
|
||||
void (* btc_cb)(btc_msg_t *msg);
|
||||
} btc_func_t;
|
||||
|
||||
typedef void (* btc_arg_deep_copy_t)(btc_msg_t *msg, void *dst, void *src);
|
||||
|
||||
bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg_deep_copy_t copy_func);
|
||||
|
||||
int btc_init(void);
|
||||
void btc_deinit(void);
|
||||
|
||||
#endif /* __BTC_TASK_H__ */
|
50
tools/sdk/include/bluedroid/btc/btc_util.h
Normal file
50
tools/sdk/include/bluedroid/btc/btc_util.h
Normal file
@ -0,0 +1,50 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#ifndef __BTC_UTIL_H__
|
||||
#define __BTC_UTIL_H__
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "stack/bt_types.h"
|
||||
#include "common/bt_defs.h"
|
||||
#include "esp_bt_defs.h"
|
||||
|
||||
/*******************************************************************************
|
||||
** Constants & Macros
|
||||
********************************************************************************/
|
||||
#define CASE_RETURN_STR(const) case const: return #const;
|
||||
|
||||
/*******************************************************************************
|
||||
** Type definitions for callback functions
|
||||
********************************************************************************/
|
||||
typedef char bdstr_t[18];
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Functions
|
||||
********************************************************************************/
|
||||
const char *dump_rc_event(UINT8 event);
|
||||
const char *dump_rc_notification_event_id(UINT8 event_id);
|
||||
const char *dump_rc_pdu(UINT8 pdu);
|
||||
|
||||
UINT32 devclass2uint(DEV_CLASS dev_class);
|
||||
void uint2devclass(UINT32 dev, DEV_CLASS dev_class);
|
||||
void uuid128_be_to_esp_uuid(esp_bt_uuid_t *u, uint8_t* uuid128);
|
||||
|
||||
void uuid_to_string_legacy(bt_uuid_t *p_uuid, char *str);
|
||||
|
||||
esp_bt_status_t btc_hci_to_esp_status(uint8_t hci_status);
|
||||
esp_bt_status_t btc_btm_status_to_esp_status (uint8_t btm_status);
|
||||
|
||||
#endif /* __BTC_UTIL_H__ */
|
Reference in New Issue
Block a user